- 博客(34)
- 收藏
- 关注

原创 airbnb北京民宿运营情况分析
airbnb运营状况分析airbnb北京民宿运营状况分析导入数据step1查看数据结构,处理缺失值#查看各个数据结构step2 统计民宿分布情况step3 去除离群值,做相关性分析step4 查看价格分布情况step5 找出运营状况良好的民宿并分析原因词云分析运营状况最好的民宿分布图一个简单的svm分类器, 预测房屋的运营状况, 标签列:good为1, worse为0总结airbnb北京民宿运营状况分析导入数据import numpy as npimport matplotlib.pyplot as
2020-07-11 11:57:54
2601
原创 python 实现假设检验
假设检验步骤建立原假设H0 和 备假设 H1确定检验统计量确定拒绝区域用样本计算z分数 or t分数 以及 p值接受原假设或者拒绝原假设利用sklearn里的iris数据做假设验证# 导入数据iris = datasets.load_iris()X = iris.data y = iris.targetiris.target_names>> ['setosa', 'versicolor', 'virginica']iris.feature_names>>
2020-08-19 21:23:04
910
原创 游戏数据分析报告--<野蛮时代>
游戏数据分析报告数据来源:DC游戏玩家付费金额预测大赛数据包含近229万条记录和109个字段。比赛任务是用前7天数据预测前45天付费金额,本篇博客主要关注在数据探索分析。一些重要字段:bd_stronghold_level:要塞等级,相当于游戏账号等级register_time: 注册时间pay_price: 付费金额avg_online_minutes: 在线时长pvp_battle_count: 人人对战次数pvp_win_count: 人人对战胜利次数pve_battle_c
2020-07-27 18:23:23
1982
2
原创 依存句法分析(NLTK--stanford parser)
依存句法分析句法分析(syntactic parsing)是自然语言处理中的关键技术之一,它是对输入的文本句子进行分析以得到句子的句法结构的处理过程。对句法结构进行分析,一方面是语言理解的自身需求,句法分析是语言理解的重要一环,另一方面也为其它自然语言处理任务提供支持。例如句法驱动的统计机器翻译需要对源语言或目标语言(或者同时两种语言)进行句法分析;语义分析通常以句法分析的输出结果作为输入以便获得更多的指示信息。parser和model的下载地址NLTK 中的parse模块已经将斯坦福大学句法分
2020-07-27 14:15:05
4773
4
原创 多样本t值检验:分析样本均值与总体均值的不同
单样本t检验目的:分析样本均值与总体均值的不同比较分布: t分布标准差: σ=SN−1\sigma = \frac{S}{\sqrt{N-1}}σ=N−1S样本t值: t = x‾−μσ\frac{\overline{x}-\mu}{\sigma }σx−μ自由度: N-1; α\alphaα (小概率事件)例题:新闻报道某大学学生平均学习时间是2.5小时,要核实这个数字对不对,随机采访了16个学生, 平均学习时间是3.2小时,方差是0.57,新闻报道是否正确?step1:H1
2020-07-26 11:44:01
3241
1
原创 Kaggle PUBG吃鸡数据集--数据分析可视化
PUBG数据集数据集分为两个部分数据集1:agg数据: 15 字段date: 时间game_size:队伍数量match_id:比赛match_mode: 对局模式(第一人称还是第三人称)party_size:组队模式(单人赛、双人赛、四人赛)player_assists:助攻次数player_dbno:击倒人数player_dist_ride:载具移动距离player_dist_walk:行走距离player_dmg:伤害数值player_kills:击杀人数player_
2020-07-23 22:40:50
2829
2
原创 leetcode打家劫社简单实现--python
给定一个数组代表每家的金钱:[1, 2, 0, 4, 6]不可以抢劫相邻两家的金钱, 可以抢劫相隔的两家, 求最大值1+0+6 = 72+4 = 6max = 7思路:动态规划, 遍历数组, 当i =2 时, 比较 dp[i-2] + dp[i] 和 dp[i-1], 选择大的更新dp数组def robber(arr): if len(arr) == 0: return None elif len(arr) == 1: return arr[0] else:
2020-07-19 14:23:35
121
原创 买卖股票的最佳时机简单实现--python
买卖股票的最佳时机给定一个数组:[7, 1, 3, 5, 6]输出最大利润5思路:初始化最大利润0找到 i 时刻 i 左边的最小值, 用i-最小值更新最大利润def stocking(arr): minp = arr[0] maxprofit = 0 for i in arr: minp = min(minp, i) maxprofit = max(maxprofit, i-minp) return maxprofittest = [7, 1, 2, 4,
2020-07-19 11:16:15
143
原创 链表中间节点简单实现--python
链表中间节点给一个链表 1 -> 2-> 3-> 4-> 5返回中间节点3如果是偶数个数, 中间节点有2个, 返回第2个思路:两个指针,slow, fastslow指针每次走一步, fast指针每次走两步, fast走到结尾时, slow指针正好指到中间节点。class Node: def __init__(self, x): self.val = x self.next = None def find_mid(phead): if p
2020-07-19 10:55:27
548
原创 奇偶链表拼接简单实现方式--python
奇偶链表给一个链表:1-> 2-> 3-> 4-> 5将奇数位置的节点拼成新链表偶数位置的节点拼成新链表偶数链表接到奇数链表后*第一个位置是1不是0思路:让odd 节点的下一个链接到 odd.next.next, 将指针指到odd.nexteven节点同理注意要先保存even节点的第一个节点,因为最后需要把first even接到last odd节点上class Node: def __init__(self, x): self.val = x
2020-07-19 10:38:39
422
原创 删除链表重复元素简单实现方法--python
删除链表重复元素给定链表1 -> 1 -> 3 -> 4删除1新链表:1->3->4思路, 判断当前节点和next节点的val相等不相等, 如果相等, 跳过下一个节点curr.next = curr.next.nextclass Node: def __init__(self, x): self.val = x self.next = Nonedef deletdup(phead): curr = phead while curr
2020-07-18 19:59:36
375
原创 最大子数组Max Subarray 最简单的实现方式--python
最大子数组给定一个数组(可能包含负数),求连续的和最大的子数组例:[-1, 0, 2, 3, -4, 8]返回9因为0+2+3+(-4)+8=9思路:比较下标t时刻的值和t+ t-1 时刻的值, 如果t时刻大于 t-1 + t时刻的和, 则选择重新开始计算, 否则就继承前边的值0时刻: -11时刻: 比较1时刻(0)和 0时刻+ 1时刻: (-1), 大于, 重新开始计算,当前值为02时刻: 比较(2) 和t + t-1 : (0+2 ), 不大于, 继承3时刻: 比较(3)
2020-07-18 18:47:32
617
原创 二分查找最简单的实现方式--python
二分查找给定一个已排序数组:[-1 ,0, 2, 3, 5]目标值:0返回目标值下标: 1二分查找,先找到数组的中间数mid, left+(right-left)//2, 这种写法为防止整数溢出。left =0, right=len(arr)-1比较mid与目标值, 如果mid大于目标值,则说明目标值可能在左半部分,此时right 变成 mid-1 , 否则left 变成mid+1如果arr[mid] 等于目标值, 则返回下标。当left <= right时, 循环上述过程, 时间
2020-07-18 18:04:14
175
原创 斐波那契数列动态规划实现--python
斐波那契数列求第n项的值只要保存n-1项,n-2项的结果就可以。def fib(n): a,b = 0,1 for i in range(n-1): a = a+b a,b = b,a return b 测试:fib(10)55
2020-07-18 10:18:05
410
原创 最长回文字符串中心扩散法--python
最长回文字符串中心扩散法给一个字符串,返回他的最长回文子字符串例:‘abac’‘aba’中心扩散:选定中心, ‘b’, 比较左边和右边, 如果左边的index大于0,右边的index小于字符串长度,并且左边字符等于右边字符,则left -=1, right+=1, 即满足三个条件左右扩大一次。遍历字符串,每个字符都做一次中心,选出最长的字符。但是有一个问题,如果碰到’abbac’,这种情况, 那么选定中心b, 发现左边是b,右边是a,不符合条件,则不能扩张,但是实际上他的中心应该在两个b的
2020-07-17 21:49:25
430
原创 滑窗方法,连续最长不重复字符串最简单的实现方法--python
连续最长不重复字符串给定一个字符串, 返回连续最长不重复子字符串的长度‘abbac’3思路:step1: 两个指针i,jstep2: 一个初始化的最大长度0step3; 一个list存储当前遍历的字符串step4: 移动i, 如果字符str[i] 在list中,则删除str[j], 并且j走一步, 如果不在,则把字符str[i]加入列表step5: 返回最大长度代码:def max_norepeat(s): maxlen=0 temp = [] i,j = 0,0
2020-07-17 20:19:43
227
原创 leetcode两数之和最简单的解决方法--python
两数之和题目:给一个数组array,一个目标值target返回array中和为目标值的下标,如果没有返回-1思路:用一个hashmap存储array中的数,以{num:index} 格式存储遍历array, 如果target-array的值存在于hashmap中, 则返回当前的遍历的位置和hashmap的value。def twosum(arr, target): d = {} for ind, num in enumerate(arr): if (target-num) i
2020-07-17 19:41:16
134
原创 怎样创建自己的包并导入--python
python 中一个拥有名为__init__.py 文件的文件夹就是一个包, 文件夹的名字就是包的名字。假设创建名为MyMath的包, 这个包有两个功能, 求最大值,求平均值。那么应该构建一个如下图一样的文件结构。测试文件应该放在和包同级的路径。---MyMath |---- __init__.py |---- getmax.py |----getavg.py---test.py#__init__.py 中的内容__author_ = 'xxx'__all__ = ['功能1
2020-07-17 14:05:58
752
原创 Glove词向量核心内容介绍--NLP
Glove尽管现在基于transformer的巨型模型也可以得到词向量。但是在一些基础的计算文本相似的任务中传统的静态词向量依然是非常好用的。Glove就是其中的一个代表。2014年, Empirical Methods in Natural Language Processing (EMNLP)的论文:GloVe: Global Vectors for Word Representation 介绍了这种词向量。正如论文的名字一样,GloVe是一个基于全局词频统计(count-based &
2020-07-15 20:43:42
942
原创 股票最大利润简单实现--python
股票最大利润input: 价格序列 [1, 3, 2, 8, 6]output: 7思路:找到第n天前最小价格计算第n天的最大利润maxpro = price[i] - min_priceprice = [1, 3, 2, 8, 6]def max_profit(arr): if len(arr) <= 1: return 0 max_pro = 0 min_pri = arr[0] for i in arr[1:]: min_pri = min(m
2020-07-15 12:48:55
696
原创 100行代码做一个周杰伦歌词生成器--python
100行代码做一个周杰伦歌词生成器数据-从网上找到周杰伦歌词大全txt模型既然是100行,那就用最简单的rnn模型来生成RNN生成文本的思路很简单,就是将输入的每个序列,t时刻的token挪到t+1时刻,这样就有了input-target, 我们要做的就是输入T时, 输出e, 输入(T,e)时,输出n… 依次类推。这样就是一个循环神经网络的结构, 如果时序过长,会有梯度消失问题, 但是我们这次处理的是歌词, 歌词通常一句话大概十几个词,所以不会出现梯度消失。代码部分import nump
2020-07-15 09:43:19
1954
1
原创 归并排序最简单的实现方式--python
归并排序归并排序是分治方法的一个经典运用,通过把一个大数组从中间递归的分割成两半,再把小的数组通过比较数组内部的元素组合成有序数组, 不断迭代这个过程最终实现整个数组的排序。def merge(a,b): c=[] h=j=0 while j<len(a) and h<len(b): if a[j]<b[h]: c.append(a[j]) j+=1 else: c.append(b[h]) h += 1
2020-07-14 20:31:17
313
原创 二叉树的镜像最简单的实现方法--python
二叉树的镜像class node: def __init__(self, x): self.val = x self.left = None self.right = Nonedef mirror(root): if not root: return None root.left, root.right = root.right, root.left if root.left: mirror(root.left) if root.right:
2020-07-14 19:25:42
173
原创 单链表删除指定节点最简单的实现方法--python
python 实现单链表指定节点删除class node: def __init__(self, x): self.val=x self.next=Nonedef deleteNode(head, val): if not head: return None if head.val ==val: # 如果head节点就是要删除的,直接返回下个节点就可以 return head.next node =head while node and
2020-07-14 13:34:02
525
原创 二叉树先序遍历最简单的实现--python
class node: def __init__(self, x): self.val = x self.left = None self.right = Nonedef preorder(root): if root==None: return [] stack =[] seq = [] while len(stack)!=0 or root!=None: if root != None: stack.append(root)
2020-07-13 20:27:35
119
原创 递归找零钱最简单的实现方式--python
递归方法实现找零钱step1:初始化最小次数,最小次数不会比要找的零钱还大step2:递归跳出条件,如果剩下要找的零钱再硬币面值中step3:递归找零钱def coin_change(coins, change): min_count = change if change in coins: return 1 for value in [i for i in coins if i<change]: count = 1+ co
2020-07-13 19:47:11
954
原创 最通俗易懂的LSTM讲解--NLP
最通俗易懂的LSTM讲解LSTM 是一种带有门控机制的RNN模型,他的提出是为了解决RNN的梯度消失问题。LSTM与RNN不同的地方在于LSTM每次向下传递两个状态, 一个是和RNN一样的隐藏状态 hiddenthidden_{t}hiddent, 一个是此刻的信息 celltcell_{t}celltLSTM 通过遗忘门zfz^{f}zf, 输入门ziz^{i}zi, 输出门zoz^{o}zo,三个门控制信息的流入流出量。这三个门又是怎么得到的呢?拼接t时刻的输入x 和 前一时刻的隐藏状
2020-07-13 19:17:42
816
原创 用最少的公式看懂Attention机制原理
AttentionEncoder-Decoder模型enco-deco模型是seq2seq任务的一种实现方式,比如在英翻中任务中,encoder模块用来编码一句英文句子,在最后一个时刻用一个context-vector存储整句话的信息。在decoder部分,通过context-vector解码出每个时刻对应的中文单词。因为这一结构,encoder-decoder有一些固有的弊端:1: context-vector可能不能覆盖输入句子的所有信息,先输入的信息会被后输入的信息覆盖。2: 在deco
2020-07-12 22:09:15
2701
2
原创 链表中倒数第k个节点最简单的实现方式--python
思路:设置2个指针,第一个指针先走k步,第二个指针开始走,这样在第一个指针走到末尾时,第二个指针刚好指向倒数第K个节点class listnode(object): def __init__(self, x): self.val=x self.next=Nonedef findkth(head, k): if not head or not k: return p1,p2 = head, head for i in range(k-1): if p1
2020-07-12 20:20:39
410
原创 冒泡排序最简单的实现方式--python
比较排序方法, 每次比较两个元素,大的放右边,小的放左边,每走完一次数组可以保证最大的数放在最右边def bubble(arr): n = len(arr) for i in range(n): for j in range(n-i-1): #因为每一趟排序之后都可以保证最大值放在最右边,所以每次外循环之后都有i个元素不需要被比较 if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j]
2020-07-12 19:41:50
554
原创 反转链表最简单的实现方式--python
class linkedlist(object): def __init__(self, x): self.val=x self.next=Nonedef reverse(phead): if not phead or not phead.next: return phead last =None #头节点变尾节点,所以下一个节点是空 while phead: tmp = phead.next #先保存头节点的下一个节点
2020-07-12 19:28:16
237
原创 反转二叉树最简单的实现--python
class treenode(object): def __init__(self, x): self.val=x self.left=None self.right=Nonedef invertTree(root): if root==None: return newRoot = treenode(root.val) newRoot.left = invertTree(root.right) newRoot.right = invertTree(r
2020-07-12 19:15:03
498
原创 快速排序最简单的实现方法--python
快速排序step1: 选定一个pivotstep2: 定义两个指针指向数组的开头和结尾step3: 移动指针比较所指的值和pivot关系,将比pivot大的全部放在右边, 比pivot小的全部放在左边, pivot放在中间step4: 递归左半部分子数组和右半部分子数组def quicksort(arr, left, right): if left >=right: return low =left high =right key = arr[low] whi
2020-07-12 18:48:33
348
原创 最长公共子数组-动态规划-python
leetcode 最长公共子数组输入:数组 A [1, 2, 3, 4, 2]数组 B [2, 3, 6, 1]输出: 2动态规划解法def find_max_len(a,b): if len(a)==0 or len(b)==0: return 0 row, column = len(a)+1, len(b)+1 dp = [[0 for j in range(column)] for i in range(row)] #构建dp矩阵 res = 0 fo
2020-07-12 18:16:04
211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人