- 博客(14)
- 收藏
- 关注
原创 基于物品的协同过滤算法
基于物品的协同过滤算法 (item_based collaborative filtering)是应用较多的算法。 ItemCF不是通过物品间的属性直接去计算它们的相似程度, 而是通过用户的行为记录去计算物品之间的相似度。物品的协同过滤算法主要分为两个步骤:(1)通过用户之间的行为记录去分析两个用户之间的相似度。(2)根据用户的相似度和用户的历史行为给用户生成推荐表。 ...
2018-12-08 11:50:30
6622
原创 基于用户的协同过滤算法·
在一个线上的个性化推荐系统中,当一个用户需要个性化推荐时, 找到与用户有相同的兴趣爱好的用户来进行推荐物品是一个不错的选择。 基于用户的协同过滤推荐算法主要包括两个步骤:(1)找到和目标用户兴趣相似的用户集合。(2)找到此相似集合中用户没有购买过, 但是可能喜欢的商品进行推荐。 步骤(1):对于相似用户的查找,就需要用一个方法去衡量这个相似...
2018-12-07 18:46:45
612
原创 Python最简单版本的MergeSort (归并排序)
def MergeSort(l, left, right): if left >= right: return mid = left + (right - left) // 2 #注意这里的写法 MergeSort(l, left, mid) MergeSort(l, mid+1, right) list_temp = lis...
2018-09-11 14:20:48
2208
原创 Python装饰器
def fun1(): print ('This is function 1')当fun1 不能在满足我们当前的需求 需要在实现这个函数的同时加入其它功能,我们又想要去保存他的源码,那么我们需要去用到装饰器。def fun2(): print ('This is function 2')def fun1(): print ('This is function 3')我们可以考虑一...
2018-06-09 08:17:47
142
原创 神经网络梯度消失或爆炸
神经网络梯度的消失在于多层的求偏导后,值越来越小,导致梯度非常接近于0. 造成这个现象的主要原因在于激活函数:从上图我们可以看到常用激活函数Sigmoid, Tanh, 以及Relu 的倒数的取值范围都在 0~1 之间,所以在多层神经网络以后这个梯度会出现消失现象:比如说 每一层的梯度都是0.8, 在经过 50层以后 0.8**50 = 0.0000143. 所以整个模型的学习进程会非常慢。但是通...
2018-06-01 07:49:13
329
原创 机器学习之线性回归(linear regression)
线性回归 的理念就是通过找到一个方程 y = ∑ an*Gn(x) + b 去拟合我们的训练集。对于每一个样本点xi, 我们都希望预测值 yi‘ = ∑ an*Gn(xi) + b 与样本的真值 yi 的差距尽量小通常我们用 yi‘ 和 yi 之间差的平方作为损失函数(Loss function), 其中 Gn(xi) 是基函数(Basis function)当我们优化出最小的Lo
2018-01-11 01:25:34
696
原创 机器学习之KNN(K近邻算法)
KNN - K nearest neighbor 算法利用的数学思想极少思想:对于一个新来的点,根据判断k个最近的点,来判断新来的点的类别。过程:1)先计算新来的点与样本中每一个点的距离(欧拉距离)2)找到最近的k个点 (可以用np.argsort)3)找到k个点中类别最多的点的类所以k邻近算法可以说是没有模型的算法,也可以说训练集数据就是模型
2018-01-10 03:43:21
513
原创 python读写csv, json, xml, excel等数据
读写csv数据:1)读需要导入标准库中的csvimport csvfile = open('xxxx.csv') //首先打开文件reader = csv.reader(file)然后就得到了迭代器reader可以通过next或者for去读取每一行的数据2)写import csvdatacsv = open('data_copy.csv','w')w
2018-01-04 03:16:32
300
原创 Python3.x IO处理
在python3之后的版本中,str字符串类型的东西都自动编码为utf8的格式,若我们想要让字符串以bytes的类型存在 我们可以在字符串前面加一个b比如b'bjdhg‘这个字符串就是以byte的格式编码的。读写文件:写入文件:可以用f = open('xxxx.txt', 'wt', encoding = 'utf8') #这里的t表示文本模式读取文件:
2017-12-29 07:12:07
712
原创 python字符串处理技巧
1、判断字符串a是否以字符串b为开头或结尾可以利用字符串的startswith 或者 endswith 方法来判断, 范围的是bool类型的值。2、替换字符串中特殊格式的字符可以用正则表达式,利用re.sub比如我们要将yyyy-mm-dd的格式修改为mm/dd/yyyy的格式,我们可以这么做:import rea = '2015-12-25'm = re.s
2017-12-28 06:06:40
162
原创 关于python中collections包下的常用功能的使用
python 中的collections包下面有很多实用的工具1、namedtuple(给元组中的元素命名) 元组常常被使用是因为存储空间占用小,访问的速度很快但是在我们平时的元组中只有值得存储,没有存在名字 使用namedtuple会帮我们解决这个问题我们的做法是如下:from collections import namedtuple Human = n
2017-11-10 03:17:21
455
原创 Python3.6中多个字典中找到公共key
这个问题有多个解法:1、实用set的技巧,取到交集就好d1 = {'f': 4, 'e': 1, 'b': 2}d2 = {'b': 3, 'f': 2, 'c': 2, 'e': 1}d3 = {'e': 1, 'c': 4, 'd': 3}实用dict中的keys() 方法可以罗列出 各个dict的key值实用 d1.keys() & d2.keys() &
2017-11-09 04:22:19
565
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人