机器学习
文章平均质量分 60
JepsonWong
专注计算机底层,喜欢算法。
展开
-
交叉熵 相对熵
(1)熵的本质是香农信息量()的期望。(2)现有关于样本集的2个概率分布p和q,其中p为真实分布,q非真实分布。按照真实分布p来衡量识别一个样本的所需要的编码长度的期望(即平均编码长度)为:H(p)=。(3)如果使用错误分布q来表示来自真实分布p的平均编码长度,则应该是:H(p,q)=。因为用q来编码的样本来自分布p,所以期望H(p,q)中概率是p(i)。H(p,q)我们称原创 2017-03-24 17:02:19 · 373 阅读 · 0 评论 -
DM和ML的区别
1. DM更应用化,ML更偏研究与算法(所以公司一般有数据挖掘工程师,机器学习研究员) 2. ML的问题经常是明确定义的,包括数据集及目标(且数据集是固定的);DM通常只定义目标,甚至连目标也没有(给你一堆数据,给我找出有价值、有意思的东西出来);在定义了目标的情况下,DM可以使用非固定的数据源 3. ML只是DM使用的方法的一种,DM还可以使用其他的方法(比如统计,比如直接看数据)转载 2017-05-13 14:20:13 · 5406 阅读 · 0 评论 -
sklearn:随机划分训练集和测试集
一、sklearn.model_selection.train_test_split作用:随机划分训练集和测试集 官网文档:http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html#sklearn.model_selection.train_test原创 2017-05-25 11:06:51 · 12996 阅读 · 0 评论 -
Python机器学习库
Python是学习(和实现)机器学习技术最好的语言之一,其原因主要有以下几点:语言简单:如今,Python成为新手程序员首选语言的主要原因是它拥有简单的语法和庞大的社区。功能强大:语法简单并不意味着它功能薄弱。Python同样也是数据科学家和Web程序员最受欢迎的语言之一。Python社区所创建的库可以让你做任何你想做的事,包括机器学习。丰富的ML库:目前有大量面向Python的机器学习库原创 2017-05-25 14:40:54 · 772 阅读 · 0 评论 -
sklearn:GBDT
一、GBDT分类(1)模型参数初始化:from sklearn.ensemble import GradientBoostingClassifiergbdt = GradientBoostingClassifier( init=None, learning_rate=0.1, loss='deviance', max_depth=3, max原创 2017-05-26 16:06:28 · 1938 阅读 · 0 评论 -
sklearn:SVM
from sklearn import svm一、SVM分类(1)模型参数初始化clf = svm.SVC(C=0.6, kernel='linear', degree=3, gamma='auto', coef0=0.0, shrinking=True, probability=False, tol=0.01, cache_size=200, class_原创 2017-05-26 16:32:45 · 589 阅读 · 0 评论 -
Python2.7编码问题
一、unicode、encode、decode字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2原创 2017-05-26 18:47:53 · 860 阅读 · 0 评论 -
sklearn:朴素贝叶斯(naïve beyes)
朴素贝叶斯的原理:基于朴素贝叶斯公式,比较出后验概率的最大值来进行分类,后验概率的计算是由先验概率与类条件概率的乘积得出,先验概率和类条件概率要通过训练数据集得出,即为朴素贝叶斯分类模型,将其保存为中间结果,测试文档进行分类时调用这个中间结果得出后验概率。一、基本定义分类是把一个事物分到某个类别中。一个事物具有很多属性,把它的众多属性看作一个向量,即x=(x1,x2,x3,…,原创 2017-05-27 13:07:59 · 2795 阅读 · 0 评论 -
sklearn:使用GBDT选择特征
(1)如何在numpy数组中选取若干列或者行? >>>import numpy as np>>>tmp_a = np.array([[1,1], [0.4, 4], [1., 0.9]]) >>>tmp_a>>>tmp_a[[0,1],:]#选第0、1行 >>>tmp_a[np.array([True, False, True]),:]# 选第0、2行>>>tmp_a[:原创 2017-05-27 17:02:35 · 15621 阅读 · 0 评论 -
sklearn:点互信息和互信息
1、点互信息PMI机器学习相关文献里面,经常会用到点互信息PMI(Pointwise Mutual Information)这个指标来衡量两个事物之间的相关性(比如两个词)。其原理很简单,公式如下:在概率论中,我们知道,如果x跟y不相关,则p(x,y)=p(x)p(y)。二者相关性越大,则p(x, y)就相比于p(x)p(y)越大。用后面的式子可能更好理解,在y出现的情原创 2017-06-03 00:07:53 · 22998 阅读 · 3 评论 -
用LDA处理文本(Python)
一、LDA介绍LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,也称为一个三层贝叶斯概率模型,包含词、主题和文档三层结构。所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到。文档到主题服从多项式分布,主题到词服从多项式分布。LDA是一种非监督机器学习技术,可以用来识别原创 2017-06-20 09:49:40 · 8299 阅读 · 2 评论 -
如何快速构建用户画像?
一、什么是用户画像( personas)?Alan Cooper (交互设计之父)最早提出了 persona 的概念:“Personas are a concrete representation of target users.”Persona 是真实用户的虚拟代表,通过一系列的真实数据分析,得出的目标用户模型。通过调研,根据用户的目标、行为和观点的差异,将他们区转载 2017-05-13 13:43:58 · 4079 阅读 · 0 评论 -
特征工程(补充)--特征组合
特征组合变化也属于特征选择的一种手段,这部分工作可发挥的空间就看你的想像力和经验了。这里的组合变化远不限于把已有的特征加减乘除(比如Kernel Tricks之类)。 举个比较有想像力的例子——现在市面上社交网络里面“你可能认识的人”的推荐算法几乎都是基于补全网络的办法,这样推荐的人可能只是单纯的补充和完善朋友圈,推荐的人可能很无趣,这样会导致推荐效果不好让用户失去接受推荐的兴趣。斯坦转载 2017-05-13 13:28:16 · 8319 阅读 · 1 评论 -
降维
为什么要降维?找出规律,压缩数据量。(1)特征值与特征向量M矩阵,λ常数,e非零列向量Me = λe (e为unit vector,第一个非零元素为正)特征向量是单位向量;特征向量之间正交;特征向量矩阵E的特点,E*E^T = E^T*E = I。(2)PCA(主成分分析)利用特征向量进行降维。原理:将矩阵与一个正交单位向量矩阵相乘,意味着在欧式空间上的原创 2017-05-23 01:40:11 · 645 阅读 · 0 评论 -
深入浅出机器学习
1、机器学习与人类思考的类比:人类在成长、生活过程中积累了很多的历史与经验。人类定期地对这些经验进行“归纳”,获得了生活的“规律”。当人类遇到未知的问题或者需要对未来进行“推测”的时候,人类使用这些“规律”,对未知问题与未来进行“推测”,从而指导自己的生活和工作。 机器学习中的“训练”与“预测”过程可以对应到人类的“归纳”和“推测”过程。通过这样的对应,我们可以发现,机器学习的思转载 2017-05-23 10:30:03 · 1180 阅读 · 0 评论 -
先验概率 后验概率 贝叶斯法则 贝叶斯公式
1、先验、后验在拉丁文中指“来自先前的东西”,或稍稍引申指“在经验之前”。近代西方传统中,认为先验指无需经验或先于经验获得的知识。它通常与后验知识相比较,后验意指“在经验之后”,需要经验。这一区分来自于中世纪逻辑所区分的两种论证,从原因到结果的论证称为“先验的”,而从结果到原因的论证称为“后验的”。2、先验概率、后验概率先验概率是指根据以往经验和分析得到的概率,如全概率原创 2017-05-04 16:29:13 · 999 阅读 · 0 评论 -
似然函数 最大后验假设 最大似然估计
1、似然函数统计学中,似然函数是一种关于统计模型参数的函数。给定输出x时,关于参数θ的似然函数L(θ|x)(在数值上)等于给定参数θ后变量X的概率: L(θ|x)=P(X=x|θ)。似然函数在推断统计学(Statistical inference)中扮演重要角色,尤其是在参数估计方法中。在教科书中,似然常常被用作“概率”的同义词。但是在统计学中,二者有截然不同的用法。概率描述了已知原创 2017-05-04 16:56:44 · 1278 阅读 · 0 评论 -
特征工程(1)--特征工程是什么?
有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。通过总结和归纳,人们认为特征工程包括以下方面: 特征处理是特征工程的核心部分,sklearn提供了较为完整的特征处理方法,包括数据预处理,特征选择,降维等。首次接触到sklearn转载 2017-05-12 22:49:46 · 2194 阅读 · 0 评论 -
特征工程(2)--数据采集、数据清洗、数据采样
一、数据采集:数据采集前需要明确采集哪些数据,一般的思路为:哪些数据对最后的结果预测有帮助?数据我们能够采集到吗?线上实时计算的时候获取是否快捷? 举例1:我现在要预测用户对商品的下单情况,或者我要给用户做商品推荐,那我需要采集什么信息呢? -店家:店铺的评分、店铺类别…… -商品:商品评分、购买人数、颜色、材质、领子形状…… -用户:历史信息(购买商品的原创 2017-05-13 12:02:50 · 4696 阅读 · 0 评论 -
特征工程(补充)--机器学习数据集里的不均衡数据问题
开头我们举个例子。例如:“现在我正在运行一个分类模型。在我的数据集里面一共有3类数据,这里我们称它们分别为A,B和C,但是在我的训练数据集里面A,B和C三类数据分别占了90%,5%和5%。在大多数情况下,结果都过度拟合A类数据。”在数据不均衡的情况下,我们得到90%的准确率(比如包含90%的数据类型一的实例)是因为我们的模型观察数据并且智能地总是根据数据类型一的数据进行预测(A类数据),并原创 2017-05-13 12:37:55 · 1704 阅读 · 0 评论 -
特征工程(3)--特征处理
转自https://www.zhihu.com/question/29316149/answer/110159647通过特征提取,我们能得到未经处理的特征,这时的特征可能有以下问题:不属于同一量纲:即特征的规格不一样,不能够放在一起比较。无量纲化可以解决这一问题。信息冗余:对于某些定量特征,其包含的有效信息为区间划分,例如学习成绩,假若只关心“及格”或不“及格”,那么需要将定量的考分,转载 2017-05-13 12:57:03 · 1715 阅读 · 0 评论 -
特征工程(4)--特征选择
特征选择和机器学习算法两者存在紧密的联系,根据特征选择中子集评价标准和后续学习算法的结合方式可分为嵌入式(Embedded)、过滤式(Filter)和封装式(Wrapper)式三种。嵌入式特征选择集成法,先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。在嵌入式特征选择中,特原创 2017-05-13 13:08:28 · 2990 阅读 · 0 评论 -
特征工程(5)--降维
当特征选择完成后,可以直接训练模型了,但是可能由于特征矩阵过大,导致计算量大,训练时间长的问题,因此降低特征矩阵维度也是必不可少的。常见的降维方法除了上篇提到的基于L1惩罚项的模型以外,另外还有主成分分析法(PCA)和线性判别分析(LDA),线性判别分析本身也是一个分类模型。PCA和LDA有很多的相似点,其本质是要将原始的样本映射到维度更低的样本空间中,但是PCA和LDA的映射目标不一样:PC转载 2017-05-13 13:20:22 · 524 阅读 · 0 评论 -
代价函数
代价函数1. 方差代价函数代价函数经常用方差代价函数(即采用均方误差MSE),比如对于一个神经元(单输入单输出,sigmoid函数),定义其代价函数为: 其中y是我们期望的输出,a为神经元的实际输出【 a=σ(z), where z=wx+b 】。2. 交叉熵代价函数公式对应一个神经元,多输入单输出 其中y为期望的输出,a为神经元实际输出【a=σ(z), where z=∑Wj*Xj+b原创 2017-07-30 21:30:36 · 804 阅读 · 0 评论