- 博客(16)
- 收藏
- 关注
原创 python实现FM算法
1、通常我们在做逻辑回归或者线性回归的时候一般都是没有考虑特征之间相乘产出的情况(特征交叉) 假设有3个特征x1,x2,x3,那么就会有3中特征相乘的组合x1*x2,x1*x3,x2*x3,如果变量的维度比较少,我们是可以先计算这些特征组合在进行求相关的参数,但是如果遇到维度特别大的时候而且特征又是比较稀疏的时候可以考虑用FM算法2、FM算法的原理其实很简单,只是利用这个简单的公式---=,具体的原理以及导数的求解https://www.jianshu.com/p/40c7358...
2020-12-25 17:49:53
1174
1
原创 python实现xgboost回归
1、本文实现的是一个简易版的xgboost回归例子,只是为了帮助理解xgboost底层原理,大部分的代码与gbdt类似2、与gbdt不同的是xgboost的新cart树生成的残差为W = G / (H + lambd),其中G为一阶导数:2 * (y - ypred),H为二阶导等于23、由于xgboost的分裂条件还有依赖与Gain,本文主要是为了验证残差部分,就忽略了代码import numpy as npfrom collections import Counterimport
2020-07-07 21:48:34
5771
1
原创 python实现DQN
1、原理 利用贝尔曼方程更新Q表 对于s可以到达s1的Q(s,a) := R + gamma * max(Q(s+1)) 对于s不可以到达s1的Q(s,a) :=R注意的是,在刚刚开始训练的时候应该尽可能的让agent尝试不同的action,随着训练的增加在慢慢选择最大Q的action2、代码import gymimport numpy as npimport tensorflow as tffrom collections import deque...
2020-06-29 18:11:38
4552
4
原创 python实现pagerank
import numpy as npfrom functools import reduce# 有向图,[1,2]表示1指向2edges = [[1, 2], [3, 2], [3, 4], [1, 3], [2, 3], [3, 1], [4, 1]]feat_len = len(list(reduce(lambda x,y:set(x) | set(y),edges)))arr = np.zeros(shape=[feat_len,feat_len])# 统计对于每个节点指向该节点.
2020-06-02 18:24:40
262
原创 python利用似然比进行参数检验
在用sklearn进行逻辑回归的时候,如果想要查看变量的p值是否足够小,那么就只能自己计算p值。似然比是逻辑回归参数检验的一种方法 假设我们的逻辑回归有n个特征,需要对其中的x1特征对于的参数w1做参数检验 1、计算包含全部特征的预测概率似然估计L0 2、扣除x1特征进行重新拟合逻辑回归,计算新的逻辑回归模型的似然估计L1 3、计算2*ln(L0 / L1)服从自由度为1的卡方分布import copydef likelihood(pred,y)...
2020-05-27 18:44:18
2836
原创 python利用numpy、tensorflow计算ks
1、numpydef calc_ks_np(y_true,y_pred): y_true = y_true.reshape(-1,) y_pred = y_pred.reshape(-1,) sort_index = np.argsort(y_pred, kind="mergesort")[::-1] y_pred = y_pred[sort_index] ...
2020-04-29 14:59:03
471
原创 python 进程池实现
import timefrom multiprocessing import Pool,Processimport osclass A: def pp(self,i): n = 0 while n < 4: print(self," %s is running..." %i,os.getpid()) ...
2020-04-26 16:14:33
248
原创 centos7上安装talib、mysql8、git服务器
centos7上安装talib源码安装 wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz tar -zxvfta-lib-0.4.0-src.tar.gz cdta-lib-0.4.0 ./configure --prefix=/usr make &am...
2020-03-05 16:55:14
495
原创 centos7上安装mediawiki
为了记录遇到过的坑,这里是基于Apache2服务器1、安装apr-1.7.0 wgethttp://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz tar xvfapr-1.7.0.tar.gz cdapr-1.7.0 ./configure --prefix=/usr/local/...
2019-12-20 17:21:47
239
原创 利用tensorflow实现自编码
1、原理 监督神经网络的本质就是对特征的不断学习挖掘的过程,而中间层就可以理解为对上一层特征的提取,自编码就是对神经网络中间层的提取,所以我们可以把高维的数据经过几层映射到低维,在进行还原的过程2、测试数据 构建2个三维的球,将其映射到2维,查看数据分布def make_ball(R = 2,a=0,b=0,c=0): points = [] for ...
2019-06-14 17:27:37
199
原创 马氏距离与欧式距离
1、欧式距离,其中x,y为空间的两个点,表示的空间两个点的绝对距离,不考虑特征之间的相关性如何,而实际上特征之间是经常有相关性的。如果我们要衡量一个点到一个集合的距离,我们很可能就直接计算这个点x到这个集合的质心y的距离,那这样我们就忽略了这个集合的分布了2、标准欧式距离其中s为各个特征的方差,标准欧式距离没有考虑特征之间的相关性3、马氏距离,其中是协方差的逆矩阵,所以马氏距离...
2019-06-12 18:42:16
1982
原创 利用python实现GBDT回归树
1、关于GBDT回归树的原理参考这篇博文https://blog.csdn.net/zpalyq110/article/details/79527653,但想要深入理解算法的原理最好应该自己动手实现整个过程,本篇主要是用python简单实现了gbdt回归同时推导了下每次学习的残差与上一次迭代的关系2、构建测试数据,做一个简单线性回归def create_data(): X = [...
2019-05-29 18:23:46
4113
2
原创 推荐算法学习--矩阵分解FunkSVD
对于FunkSVD算法,网络上资料一大堆,但总觉得应该要自己去实现一下。理论的推导过程https://www.cnblogs.com/pinard/p/6351319.html这篇文章说的很清楚了,同时也可以参考该篇文章http://www.cnblogs.com/shenxiaolin/p/8637794.html需要注意的是kt参数是超参数,是需要调的,可以根据交叉验证或者损失函数来确...
2019-05-09 14:24:50
1683
1
原创 决策树cart分类
本篇文章主要是学习<<机器学习实战>>利用cart决策树进行分类,利用基尼系数作为数据切分的依据,最后利用递归函数构建决策树测试数据import numpy as npfrom collections import Counterimport mathmarry = ['single','single','married','single','married...
2019-04-11 11:23:01
1007
原创 利用聚类分析分离验证码图片的字符并识别
本文识别的验证码来源于http://www.miitbeian.gov.cn/getVerifyCode?80,类型如下:由于这些验证码的不同的字符大部分的色彩差异比较大,所以就试着对这些验证码进行kmeans聚类同时做一些简单的干扰线清除可得到如下结果:最后在利用简单训练的卷积神经网络进行识别,准确率大概在45%左右,可以往模型中加点噪声,还需要改进!!!图片分离部分...
2018-11-15 15:23:15
1106
原创 利用python爬取电影天堂搜索部分,并利用pyqt可视化
爬虫部分def crawls_home(film_name): name = film_name.encode('gb2312') name = str(name)[1:] name = re.sub(r'\\x','%',name) name = eval(name).upper() #关键字处理 url = "http://s.ygdy8.com/p...
2018-11-02 13:47:21
1867
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人