
机器学习
文章平均质量分 62
Jiede1
专注与数据挖掘和人工智能
Github: https://github.com/Jiede1
展开
-
详解熵, 交叉熵,KL散度,互信息
首先介绍几个信息论中的概念。熵, 表示某个概率分布的不确定度:H(x)=−∑p(x)logp(x)H(x) = - \sum p(x) log p(x)H(x)=−∑p(x)logp(x)联合熵,两个变量联合分布的不确定度:H(x,y)=∑∑p(x,y)logp(x,y)H(x,y) = \sum \sum p(x,y) log p(x,y)H(x,y)=∑∑p(x,y)logp(x,y)条件熵,在X确定后,Y的不确定度:H(Y∣X)=∑p(xi)H(Y∣X=xi)=∑∑p(x,y)原创 2021-06-06 15:49:09 · 1666 阅读 · 0 评论 -
通俗易懂的解释评分卡刻度原理
违约概率:p比率(违约概率/正常概率): odds=p/(1-p)评分卡分值:表示为比率对数的线性表达式Score=A-B*log(odds)A、B是常数,负号的作用使得违约概率越低,分数越高。Logistic回归模型:Log(odds)=β+β1x1+…+βpxp其中,用建模参数拟合模型可以得到模型参数β(截距),β1,…,βp.两个假设:1.在某个特定的比率设定特定的预期分值(设定比率为θ的特定点的分值为P);2.指定比率翻番的分数(PDO)(比率为2θ的点的分值为P+PDO).转载 2021-02-24 17:14:59 · 2122 阅读 · 2 评论 -
用户画像算法TF_IDF,TextRank实战
TF_IDF算法#coding:utf-8import jieba.analyse#基于 TF-IDF(term frequency–inverse document frequency) 算法的关键词抽取print('*****案例一********')txt='该项目采用盆栽与田间试验相结合的研究方法,揭示了冀南矿粮复合区矿井水的不同灌溉方式对冬小麦和夏玉米轮作体系中粮食产量与品质的影响,探明了矿井水直接用于灌溉抑制冬小麦和夏玉米作物的光合作用,导致作物减产,降低作物的籽粒品质;发现了矿井水原创 2021-02-02 20:05:55 · 1059 阅读 · 0 评论 -
深度学习推荐系统 学习笔记--Chapter 2.2
承接深度学习推荐系统 学习笔记–Chapter 2.1一文逻辑回归模型的表达能力不够强大,会造成信息的损失,无法做很灵活的特征交叉。因此诞生了FM模型家族,加入了大量的特征交叉思想。因子分解机(Factorization Machine, FM)是由Steffen Rendle提出的一种基于矩阵分解思想的机器学习算法,FM的提出是为了解决大规模稀疏数据中的特征组合问题。POLY2模型POLY2=∑j1=1n∑j2=j1+1nwh(j1,j2)xj1xj2POLY2 = \sum^n_{j1=1.原创 2020-06-18 17:43:37 · 266 阅读 · 0 评论 -
深度学习推荐系统 学习笔记--Chapter 2.1
章节2前言即使在深度学习空前流行的今天,协同过滤,矩阵分解,因子分解机等传统推荐模型依旧可凭其解释性强,硬件环境要求低,易于快速训练和部署等不可替代的优势,拥有大量适用的场景传统推荐模型是深度学习推荐模型的基础。在很多出名的推荐系统框架里,都能看到传统推荐模型的影子或思想。传统推荐模型模型的演进关系图传统推荐模型分为几个大族:协同过滤算法族:分为ItemCF,UserCF,但上面两个算法的泛化能力都比较弱,头部效应过于明显,因此后面延伸除了矩阵分解模型MF。逻辑回归模型族:LR相原创 2020-06-17 10:34:34 · 420 阅读 · 0 评论 -
机器学习库积累(持续更新)
1. 常用数据集下载网址http://archive.ics.uci.edu/ml/ 下载方式实例(wine数据集): df_wine = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data', header=None) # 加载葡萄酒数据集http://www.landma原创 2017-05-08 21:36:18 · 451 阅读 · 0 评论 -
经典算法详解--CART分类决策树、回归树和模型树
Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Regression Tree),本文介绍了CART用于离散标签分类决策和连续特征回归时的原理。决策树创建过程分析了信息混乱度度量Gini指数、连续和离散特征的特殊处理、连续和离散特征共存时函数的特殊处理和后原创 2017-07-24 18:26:29 · 52412 阅读 · 2 评论 -
机器学习在线学习算法--迭代器实现
import numpy as npimport matplotlib.pyplot as plt%matplotlib inlineimport pandas as pdfrom sklearn import cluster, datasetsfrom sklearn import metricsimport randomnp.random.seed(0)#传输进来的data,tar原创 2017-07-12 15:45:28 · 2584 阅读 · 0 评论 -
深度学习入门---PCA,白化 Python实现
深度学习入门—PCA,白化 已经完整阐述了PCA和白化算法的原理,这篇博客更新其算法的Python实现。代码有很完整的注释。#implement PCAfile=open('/notebooks/pcaData.txt','r')dataSet=[]for text in file: tt=text.strip().split() line=[] for t in tt原创 2017-08-10 10:31:56 · 3578 阅读 · 1 评论 -
深度学习入门---PCA,白化
引言主成分分析(PCA)是一种能够极大提升无监督特征学习速度的数据降维算法。更重要的是,理解PCA算法,对实现白化算法有很大的帮助,很多算法都先用白化算法作预处理步骤。 假设你使用图像来训练算法,因为图像中相邻的像素高度相关,输入数据是有一定冗余的。具体来说,假如我们正在训练的16x16灰度值图像,记为一个256维向量 x∈R256\textstyle x \in \Re^{256} ,其中特征值翻译 2017-08-10 10:15:31 · 5051 阅读 · 1 评论 -
深度学习入门 ---softmax回归
该算法的Python实现,可以查看 深度学习入门—softmax回归 Python实现。本文论述算法原理Softmax可以理解为logistic在多类上的扩展。模型如下:假设我们拥有数据:(x(i),y(i)),m=0,1,2,...{(x^{(i)},y^{(i)}),m=0,1,2,...},此时我们对每一样本,都有假设: 其中 θ1,θ2,…,θk∈Rn+1\theta_1, \theta_转载 2017-08-07 15:45:20 · 1082 阅读 · 0 评论 -
梯度检验---实例代码
在完成神经网络或softmax回归时,需要进行梯度检验。实际上,所有利用到求代价函数的偏导数的算法都需要利用到梯度检验。通过梯度检验,可以判断求得的偏导数是否正确。梯度检验最核心的目的是,检验下面的式子是否成立: 其中,J是代价函数,g是代价函数的求导值。至于更多梯度下降的说明,读者可以参考这篇文章代码如下:def simple_quadratic_function(x): value原创 2017-08-09 10:28:13 · 827 阅读 · 0 评论 -
机器学习实践中应避免的七种常见错误
转载自:http://www.52cs.org/?p=879统计建模和工程开发很相似。在工程开发中,人们有多种方法搭建一套键-值存储系统,每种设计针对使用模式有一套不同的假设。在统计建模中,也有很多算法来构造一个分类器,每种算法对数据也有各自的假设集合。当处理少量数据时,因为实验成本很低,我们尽可能多的尝试各种算法,从而选出效果最优的算法。但提到“大数据”,提前分析数据,然后设计相应“管道”模型(预转载 2017-07-23 13:33:36 · 523 阅读 · 0 评论 -
深度学习入门---softmax回归 Python实现
在深度学习入门 —softmax回归博客里,我详细说明了softmax回归的算法原理和应用场景,这篇博客会利用Python实现softmax回归算法,包括几个部分:代价函数J(),返回代价值和其对w求导结果梯度检验函数check_gradient(),打印出每个wijw_{ij}对应的偏导结果与检验之后的差异值训练函数train(),预测函数predict()from sklearn.dat原创 2017-08-09 13:44:29 · 3500 阅读 · 0 评论 -
深度学习入门 ---稀疏自编码器
在学习稀疏自编码器之前,需要读者有BP神经网络的基础1. 为什么要用稀疏自编码器 对于没有带类别标签的数据,由于为其增加类别标记是一个非常麻烦的过程,因此我们希望机器能够自己学习到样本中的一些重要特征。通过对隐藏层施加一些限制,能够使得它在恶劣的环境下学习到能最好表达样本的特征,并能有效地对样本进行降维。这种限制可以是对隐藏层稀疏性的限制。 如果给定一个神经网络,我们假设其输出与输入是相同原创 2017-08-06 12:53:58 · 22343 阅读 · 1 评论 -
深度学习入门 --- 自我学习与半监督学习
该章节参考ufldl1.什么是自我学习(Self-Taught Learning)与半监督学习首先,什么是半监督学习?当你手头上拥有在大量未标注数据和少量的已标注数据,那这种场景就可以说是半监督学习。自我学习和半监督学习的场景一样,不过有个细节不一样。自学习(self-taught learning) 是更为一般的、更强大的学习方式,它不要求未标注数据 和已标注数据有同样的分布。而半监督学习不一样原创 2017-08-06 20:55:27 · 24992 阅读 · 0 评论 -
记--结合业务从零实现一个推荐系统
有空再写原创 2019-07-30 00:00:49 · 1484 阅读 · 0 评论 -
为什么spark中只有ALS
前言spark平台推出至今已经地带到2.1的版本了,很多地方都有了重要的更新,加入了很多新的东西。但是在协同过滤这一块却一直以来都只有ALS一种算法。同样是大规模计算平台,Hadoop中的机器学习算法库Mahout就集成了多种推荐算法,不但有user-cf和item-cf这种经典算法,还有KNN、SVD,Slope one这些,可谓随意挑选,简繁由君。我们知道得是,推荐系统这个应用本身并没有过时...转载 2019-02-22 18:56:44 · 534 阅读 · 0 评论 -
Python cffi 初探
新建立一个 ext_build.py 用于生成扩展# ext_build.pyimport numpy as npimport cffiffi = cffi.FFI()ffi.cdef("""int add(int a, int b);""")ffi.cdef("""int sub(int a, int b);&am转载 2018-11-18 11:00:17 · 2196 阅读 · 0 评论 -
用户网站访问行为预测-----Nupic算法简单Demo
之前介绍了两篇Nupic的技术细节—-脑皮层学习算法 —nupic的深入学习(一),脑皮层学习算法 —nupic的深入学习(二),但缺少了利用Nupic的具体实例。这篇文章会利用Nupic算法,基于已有的用户访问网站类别数据,预测用户的访问网站的类别。1. 数据说明数据,代码都在Github上。可下载。 列表中的元素就是网站类别PAGE_CATEGORIES = [ "f...原创 2018-06-22 17:14:36 · 3398 阅读 · 14 评论 -
使用python来操作redis用法
1、redis连接redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。redis连接实例是线程安全的,可以直接将redis连接实例设置为一个全局变量,直接使用。如果需要另一个Redis实例(or Redis数据库...转载 2018-04-03 17:55:17 · 1032 阅读 · 0 评论 -
脑皮层学习算法 ---nupic的深入学习(二)
在脑皮层学习算法 —nupic的深入学习(一)中大致分析了HTM算法的架构,在接下来的篇幅会详细学习空间池和时间池的大概。首先复习下htm算法的大概经过:构建输入的稀疏离散表征 近端树突接受encoder输入,将二进制的向量变成稀疏离散表征(SDR),柱状区域会全部激活 潜在突触:在有先前输入的环境中构建输入的表征 若一个柱状区域被激活,如果有一个或多个细胞已经处于预测状态,激活...原创 2018-02-28 10:19:25 · 2467 阅读 · 5 评论 -
脑皮层学习算法 ---nupic的深入学习(一)
1.nupic简介1.1 背景说到AI,我们首先就会想到深度学习,tensorflow等。目前以深层的神经网络占据了AI的半壁江山。从本质上来说,深度学习所表述的神经网络,其实是源自于一个“类脑”的想法—通过模仿人类大脑的神经元的相互连接,结合权重,反向传播等数学知识所构成。但深度学习的神经网络运作仍与人类大脑真实运作情况相去甚远。nupic是一个在github上开源了的AI算法平台,...原创 2018-02-05 14:45:42 · 5430 阅读 · 6 评论 -
机器学习算法---随机森林实现(包括回归和分类)
1.随机森林回归和分类的不同:随机森林可以应用在分类和回归问题上。实现这一点,取决于随机森林的每颗cart树是分类树还是回归树。如果cart树是分类数,那么采用的计算原则就是gini指数。随机森林基于每棵树的分类结果,采用多数表决的手段进行分类。基尼指数( CART算法 —分类树) 定义:基尼指数(基尼不纯度):表示在样本集合中一个随机选中的样本被分错的概率。Gini指数越小表示集合中被选中的原创 2017-10-16 00:00:26 · 103846 阅读 · 18 评论 -
sklearn 流水线(pipeline)使用
利用pipeline生成机器学习整个流程的流水线。在下面的例子中,我们利用pipeline结合gridSearchCV(自动调优)寻找出最好的机器学习流程。我们所讨论的流程只包括:分类器参数选择,PCA降维维度选择。因此还不是完整的机器学习流程。更多可参考pipeline。import numpy as npimport matplotlib.pyplot as pltfrom sklearn i原创 2017-07-23 12:38:36 · 1616 阅读 · 0 评论 -
机器学习算法总结(上)
写在前面:学习机器学习也有了一段时间,现在想总结一下常用的机器学习算法,主要是说明原理,以及代码实现算法核心逻辑1. 线性回归线性回归的目标是,通过选择参数w,构建起假设$y=wx+b$,w是一个向量,以此预测出自变量x对应的因变量。 代价函数: $$J(\theta)=\frac{1}{2*m}(h_{\theta}(x^{(i)})-y^{(i)})^2$$ 梯度下降算法: $$\the原创 2017-07-09 19:39:57 · 818 阅读 · 0 评论 -
深度学习研究和进展
1.研究背景和理论基础1958年,Rosenblatt提出感知机模型(ANN) 1986年,Hinton提出多隐层构造深层神经网络(MNN) 2006年,Hinton提出深度置信网络(DBN),成为深度学习的主要框架 然后,此算法的高效性由Bengio实验验证成功2.深度学习的3类模型2.1 生成深层模型 以DBN为代表详细介绍。DBN模型是一种深层混合网络,以RBN为基本单元串联堆叠而成。原创 2017-01-27 11:22:04 · 1725 阅读 · 0 评论 -
DeepLearning之RNN和LSTM详解及实现
RNN1. 什么是RNNs RNNs的目的使用来处理序列数据。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNNs之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网原创 2017-02-28 14:29:05 · 29351 阅读 · 0 评论 -
数据清洗实例分析
一.数据清洗工作数据清洗:如填充缺失数据、消除噪声数据等,主要是通过分析“脏数据”的产生原因和存在形式,利用现有的数据挖掘手段和方法去清洗“脏数据”,将“脏数据”转化为满足数据质量要求或应用要求的数据,从而提高数据集的质量,满足现阶段数据分析的需求。DataEye数据清洗流程如下图: DataEye数据清洗方案及实践案例(一)噪声数据(异常值)清洗1.利用数据分布特征及箱转载 2017-02-05 10:54:18 · 17459 阅读 · 2 评论 -
Adaboost算法
AdaBoost是一种“集成方法”,通过将同一个弱分类器串行训练后,得到一个强分类器,进而实现较高精度的分辨能力。算法流程:假定给定一个二元分类的训练数据集 T={(x1,y1),(x2,y2),...(xN,yN)} T=\{ (x_1,y_1),(x_2,y_2),...(x_N,y_N)\} \ 其中,y∈{−1,1}y\in\{-1,1\}初始化训练数据的权值分布原创 2017-02-04 15:04:14 · 470 阅读 · 0 评论 -
scikit-learn 学习图谱
下面是scikit-learn的学习图谱,包括了监督和无监督学习的常见算法原创 2016-12-28 13:01:14 · 640 阅读 · 0 评论 -
协同过滤算法处理用户推荐问题(源代码)
问题是要解决系统根据用户已有电影评分信息,对未知用户的评分进行推测#Y——所有用户对所有电影的评分值#R——记录用户是否对电影进行过评分,1代表是,0代表否#coding:utf-8import numpy as np import pandas as pd import matplotlib.pyplot as plt #import seaborn as sb from sc翻译 2016-11-23 14:29:45 · 1221 阅读 · 0 评论 -
ROC和AUC介绍以及如何计算AUC
ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,对两者的简单介绍请自行百度。这篇博文简单介绍ROC和AUC的特点,以及更为深入地,讨论如何作出ROC曲线图以及计算AUC。ROC曲线 需要提前说明的是,我们这里只讨论二值分类器。对于分类器,或者说分类算法,评价指标主要有precision,转载 2016-12-05 17:33:26 · 501 阅读 · 0 评论 -
BP神经网络python实现
之前在我的另外一篇博客做了BP神经网络的理论介绍,这次使用python语言来实现。具体细节可能有点不同。符号说明 (一) 输入层 X=⎡⎣⎢⎢⎢(x1)T⋮(xm)T⎤⎦⎥⎥⎥X= \begin{bmatrix} (x^{1})^T\\ \vdots \\ (x^{m})^T \end{bmatrix}X是数据集,维度是(m*(nIn)),其原创 2016-12-14 00:36:44 · 2154 阅读 · 0 评论 -
基于无监督学习的自编码器实现
无监督学习介绍及部分函数实现内容简介目前许多有监督学习算法,如SVM,DNN或是boosting,决策树等,都在工业界分类或决策任务上取得了不错的成果。但是这些有监督学习需要大量带标签的数据,对数据进行上标签又是一个需耗费人力与时间的任务。有许多数据都是不带标签的,因此我们可利用无监督学习对其进行聚类或特征提取。利用无监督学习得到的特征结果也可应用到带标记数据较少的有监督学习任务中,提高其分类性能翻译 2016-12-11 23:15:25 · 11144 阅读 · 0 评论 -
python 实现TXT数据读写例子(源代码)
先是实现创建txt文件,储存 0 到 2000 的数据,然后保存 ,重新读取#coding:utf-8import randomfrom numpy import *import osprint(os.getcwd())os.chdir('D:\\')f=open('f.txt','w')def random_int_list(start, stop, length):#产生start原创 2016-11-10 20:30:49 · 3220 阅读 · 0 评论 -
CART与ID3的区别&C4.5离散化的过程
一、CART与ID3的区别 通过之前的研究发现,CART与ID3算法都是基于信息论的决策树算法,CART算法是一种通过计算Diversity(整体)-diversity(左节点)-diversity(右节点)的值取最佳分割的算法。ID3和CART算法的区别主要集中在树的生成和树的修剪方面,但是ID3算法只能处理离散型的描述性属性。C4.5算法是ID3算法的后续算法,它能够处理连续型数据。转载 2017-02-15 16:31:24 · 3494 阅读 · 0 评论 -
几种分类问题的区别:多类分类,多标签分类,多示例学习,多任务学习
转载自http://lib.youkuaiyun.com/article/machinelearning/34703多类分类(Multiclass Classification) 一个样本属于且只属于多个类中的一个,一个样本只能属于一个类,不同类之间是互斥的。典型方法: One-vs-All or One-vs.-rest: 将多类问题分成N个二类分类问题,训练N个二类分类器,对第i个类来说,所有属于第i转载 2017-03-03 16:46:22 · 4493 阅读 · 0 评论 -
不容错过的50道机器学习面试题及答案
转载自http://www.ppvke.com/Blog/archives/381751.什么是机器学习机器学习是为了应对系统程序设计,属于计算机科学类的学科,它能根据经验进行自动学习和提高。例如:一个由程序操纵的机器人,它能根据从传感器搜集到的数据,完成一系列的任务和工作。它能根据数据自动地学习应用程序。2.机器学习与数据挖掘的区别机器语言是指在没有明确的程序指令的情况下,给予计算机学习能力,使它转载 2017-03-04 14:20:26 · 13556 阅读 · 1 评论 -
pandas 增加一行数据
import pandas as pddf = pd.DataFrame(columns=('lib', 'qty1', 'qty2'))>>> for i in range(5):>>> df.loc[i] = [randint(-1,1) for n in range(3)]>>>>>> print(df) lib qty1 qty20 0 0原创 2017-06-13 16:01:17 · 40409 阅读 · 0 评论