机器学习
文章平均质量分 65
IT独白者
这个作者很懒,什么都没留下…
展开
-
决策树算法 python实现
lz最近在研究机器学习十大算法中的决策树算法(decision tree dt),这是一种用于分类的算法。首先需要有具体的数据集,数据集中包含很多的特征属性和具体的类的判别。一、信息熵和信息增益信息熵是用于衡量样本集中纯度的一种常用的指标。假定当前样本集d中第k类样本所占的比例为pk,则d的信息熵为 公式并且信息熵越小,则其纯度越高。假定离散属性a有v个可能取值的属性,原创 2017-12-09 12:15:19 · 580 阅读 · 0 评论 -
递归式特征消除:Recursive feature elimination(RFE)
此算法是用来进行特征选择,属于包装法特征选择算法的其中一种。递归消除特征法使用一个机器学习模型来进行多轮训练,每轮训练结束后,消除若干权值系数对应的特征,再基于新的特征集进行下一轮训练。那么在以经典的SVM-RFE算法中来讨论此算法。首先,在每一轮训练过程中,会选择所有特征来进行训练,继而得到了分类的超平面w*x+b=0,如果有n个特征,那么SVM-RFE会选择出w中分量的平方值最小的那个序号i对...转载 2018-06-30 09:53:54 · 20342 阅读 · 0 评论 -
python的=拷贝、浅拷贝copy和deepcopy深拷贝
当你a=1000的时候a指向一个新的类,内容为1000,而b仍然指向原来指向的内容,因为你没有叫它指向其他内容。你使用=符号,使得a和b指向同一个内容,而copy则是将b的内容复制后让c指向这个拷贝的内容上了。看下面图种运行的结果。b=a,使用a改变"age",b和a中的都改变了。而c采用copy,不受影响。等会儿画个图补充上来就更容易理解了。 C从来没有改变过。c中age的值一直保持在copy...转载 2018-07-12 20:40:31 · 1438 阅读 · 0 评论 -
机器学习实战—第5章:Logistic回归中程序清单5-1中的数学推导
如图中梯度上升法给出的函数代码。 假设函数为: 1、梯度上升算法(参数极大似然估计值): 通过查看《统计学习方法》中的模型参数估计,分类结果为类别0和类别1的概率分别为: 则似然函数为: 对数似然函数为: 最大似然估计求使得对数似然函数取最大值时的参数θθ 对L(θ)求导得: 即为: 则单个特征系数的梯度上升法的迭代公式为: 对整个...转载 2018-07-24 20:36:27 · 1374 阅读 · 0 评论 -
机器学习“特征编码”解析
1 为什么要进行特征编码?我们拿到的数据通常比较脏乱,可能会带有各种非数字特殊符号,比如中文。下面这个表中显示了我们最原始的数据集。而实际上机器学习模型需要的数据是数字型的,因为只有数字类型才能进行计算。因此,对于各种特殊的特征值,我们都需要对其进行相应的编码,也是量化的过程。2 特征编码类型本篇,我们主要说一下分类型特征的编码方式。对于分类型数据的编码,我们通常会使用两种方式来实...转载 2018-09-04 06:57:34 · 14034 阅读 · 2 评论 -
knn算法与kd树实现
最近邻法和k-近邻法 下面图片中只有三种豆,有三个豆是未知的种类,如何判定他们的种类? 提供一种思路,即:未知的豆离哪种豆最近就认为未知豆和该豆是同一种类。由此,我们引出最近邻算法的定义:为了判定未知样本的类别,以全部训练样本作为代表点,计算未知样本与所有训练样本的距离,并以最近邻者的类别作为决策未知样本类别的唯一依据。但是,最近邻算法明显是存在缺陷的,比如下面的例子:有一个未知形状...转载 2018-10-04 15:27:54 · 1127 阅读 · 0 评论 -
线性判别分析LDA原理总结
在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结。这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结。LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解下它的算法原理。 在学习LDA之前,有必要将其自然语言处理领域的LDA区别开来,在自然...转载 2018-10-14 16:50:32 · 377 阅读 · 0 评论 -
CART回归树算法过程
CART决策树算法是一种分类及回归树算法,既可以用于分类,也可以用于回归。但是在李航老师的《统计学习方法》一书中,并没有详细介绍回归树,更多的是介绍分类树,所以有必要对CART回归树进行简单介绍,有利于对CART树用于回归的操作,因为后续GBDT算法也是在CART回归树的基础上进行的,所以深入理解CART回归树非常重要。回归树:使用平方误差最小准则训练集为:D={(x1,y1), (x2,...转载 2018-10-15 12:27:52 · 12026 阅读 · 1 评论 -
《机器学习实战》第5章逻辑斯蒂回归数学推导
在《机器学习实战》一书的第5章逻辑斯蒂回归的代码介绍中,p79中开头有一句,“此处略去了一个简单的数学推导”,那么到底略去了哪一个简单的数学推导呢?本着要将这个算法彻底搞明白的态度,笔者在百度上搜了好多资料,终于找到了相关的资料,以供参考。从上图中按照逻辑斯蒂回归算法,利用梯度下降法求解其最值的方法,可以看到,最后求得的w如上图最后更新迭代所示。那么《机器学习实战》一书中,通过代码理解...转载 2018-10-08 22:25:07 · 648 阅读 · 0 评论 -
【机器学习】k-fold cross validation(k-折叠交叉验证)
交叉验证的目的:在实际训练中,模型通常对训练数据好,但是对训练数据之外的数据拟合程度差。用于评价模型的泛化能力,从而进行模型选择。交叉验证的基本思想:把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set),首先用训练集对模型进行训练,再利用验证集来测试模型的泛化误差。另外,现实中数据...转载 2018-10-09 22:50:34 · 7354 阅读 · 0 评论 -
《机器学习实战》二分-kMeans算法(二分K均值聚类)
首先二分-K均值是为了解决k-均值的用户自定义输入簇值k所延伸出来的自己判断k数目,其基本思路是:为了得到k个簇,将所有点的集合分裂成两个簇,从这些簇中选取一个继续分裂,如此下去,直到产生k个簇。伪代码:初始化簇表,使之包含由所有的点组成的簇。repeat 从簇表中取出一个簇。 {对选定的簇进行多次二分试验} for i=1 to 试验次数 do 使...转载 2018-10-16 21:49:28 · 5245 阅读 · 3 评论 -
为什么svm算法在求解过程中,需要将原始问题转化为对偶问题?
对偶问题将原始问题中的约束转为了对偶问题中的等式约束 方便核函数的引入 改变了问题的复杂度。由求特征向量w转化为求比例系数a,在原始问题下,求解的复杂度与样本的维度有关,即w的维度。在对偶问题下,只与样本数量有关。 求解更高效,因为只用求解比例系数a,而比例系数a只有支持向量才为非0,其他全为0....原创 2018-11-11 21:56:53 · 3782 阅读 · 1 评论 -
【机器学习】LR的分布式(并行化)实现——理论篇
逻辑回归(Logistic Regression,简称LR)是机器学习中十分常用的一种分类算法,在互联网领域得到了广泛的应用,无论是在广告系统中进行CTR预估,推荐系统中的预估转换率,反垃圾系统中的识别垃圾内容……都可以看到它的身影。LR以其简单的原理和应用的普适性受到了广大应用者的青睐。实际情况中,由于受到单机处理能力和效率的限制,在利用大规模样本数据进行训练的时候往往需要将求解LR问题的过程进...转载 2019-01-06 09:35:23 · 1941 阅读 · 0 评论 -
AUC计算方法总结
在机器学习的分类问题中,尤其是二分类问题中,常常需要有评判标准,那么在这些评判标准中,最常用的就是准确率、召回率、ROC和AUC。其中,在实际使用中,我们往往使用AUC作为评判标准,那么如何计算AUC就是非常重要的。在常见的方法中,最常用的就是通过计算ROC,然后计算ROC下与X轴围成的面积作为AUC的值,但是这种方法非常简单,不会用于实际计算中。所以我们需要另外寻找方法来计算。那么,这就出现...转载 2019-01-20 20:04:47 · 3759 阅读 · 0 评论 -
梯度下降之MiniBatch与并行化方法
问题的引入:考虑一个典型的有监督机器学习问题,给定m个训练样本S={x(i),y(i)},通过经验风险最小化来得到一组权值w,则现在对于整个训练集待优化目标函数为:其中为单个训练样本(x(i),y(i))的损失函数,单个样本的损失表示如下:引入L2正则,即在损失函数中引入,那么最终的损失为:注意单个样本引入损失为(并不用除以m):正则化的解释这里的正则化项可...转载 2019-01-20 20:13:06 · 1845 阅读 · 1 评论 -
CTR中的特征哈希
在CTR预估中,一种做法是采用人工来做feature engineering,将一些非线性的feature转换为线性的feature,然后喂给LR之类的线性model来做在线学习,在这个过程中,对于一些categorical feature,比如user_id,advertisement_id,直接做one-hot encoding(一般还会对feature做笛卡尔积)会导致维度爆炸,hashin...原创 2019-01-20 20:42:09 · 2256 阅读 · 4 评论 -
FM算法研究及python代码实现
1. 什么是FM?FM即Factor Machine,因子分解机。2. 为什么需要FM?1、特征组合是许多机器学习建模过程中遇到的问题,如果对特征直接建模,很有可能会忽略掉特征与特征之间的关联信息,因此,可以通过构建新的交叉特征这一特征组合方式提高模型的效果。2、高维的稀疏矩阵是实际工程中常见的问题,并直接会导致计算量过大,特征权值更新缓慢。试想一个10000*100的表,每一列都...转载 2019-01-16 11:45:15 · 1452 阅读 · 0 评论 -
特征工程之特征选择
特征工程是数据分析中最耗时间和精力的一部分工作,它不像算法和模型那样是确定的步骤,更多是工程上的经验和权衡。因此没有统一的方法。这里只是对一些常用的方法做一个总结。本文关注于特征选择部分。后面还有两篇会关注于特征表达和特征预处理。1. 特征的来源 在做数据分析的时候,特征的来源一般有两块,一块是业务已经整理好各种特征数据,我们需要去找出适合我们问题需要的特征;另一块是我们从业务特征中自己去...转载 2018-06-30 08:30:31 · 2002 阅读 · 0 评论 -
knn邻近算法
knn算法即为k邻近算法,是一种监督式的机器学习算法,且它是用来进行分类的。注意此算法需要和k-means算法进行区别,因为都有个k。工作原理是:存在一个样本数据集合,也称作训练样本集,且样本集中每个数据都存在标签,知道样本集中与所属分类的对应关系。输入没有定义的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般而言,原创 2017-12-03 22:35:35 · 659 阅读 · 0 评论 -
矩阵、向量求导法则
复杂矩阵问题求导方法:可以从小到大,从scalar到vector再到matrix。 x is a column vector, A is a matrixd(A∗x)/dx=A d(xT∗A)/dxT=A d(xT∗A)/dx=AT d(xT∗A∗x)/dx=xT(AT+A) pract转载 2017-12-05 13:39:18 · 276 阅读 · 0 评论 -
机器学习中梯度下降法的分类及对比分析(附源码)
引言 梯度下降法 (Gradient Descent Algorithm,GD) 是为目标函数J(θ),如代价函数(cost function), 求解全局最小值(Global Minimum)的一种迭代算法。本文会详细讨论按照准确性和耗费时间(accuracy and time consuming factor)将梯度下降法进行分类。这个算法在机器学习中被广泛用来最小化目标转载 2017-12-05 15:17:34 · 1793 阅读 · 0 评论 -
逻辑斯蒂回归模型
一、问题背景逻辑斯蒂回归模型是一种分类模型,其目的解决分类问题而非回归问题。logistic回归是一个判别模型,直接学习后验概率分布,其学习算法可以理解为极大似然估计法。模型分类算法通过定义一个分离超平面来分割不同类别的数据,用sigmoid函数作为后验概率分布函数来对输入数据进行分类。模型的学习算法通过对样本进行极大似然估计获得似然函数,通过梯度下降法求解似然函数中的参数,也就是分离超平转载 2017-12-17 17:20:50 · 2054 阅读 · 0 评论 -
TypeError: unhashable type: 'matrix'解决方法
因为使用的Python3的缘故,所以使用《机器学习实战》里面的代码总是遇到各种问题,这次是第9章程序清单9-2回归树切分函数里的一行:[python] view plain copyfor splitVal in set(dataSet[:,featIndex]): 出现的错误是:[plain]转载 2018-01-21 09:10:47 · 2265 阅读 · 0 评论 -
机器学习 决策树算法探究
一、前沿决策树是一种非常常用的机器学习算法,可以应用于分类和回归中,其中比较著名的有三种:ID3、C4.5和Cart算法。对于前两种只能针对分类,即离散数据集,且可以是多叉分类树;最后一种CART算法是分类决策树,既可以用于分类树,也可以用于回归树。决策树由节点和有向边组成。节点又分为内部节点和叶子节点。内部节点表示一个特征或属性;叶子节点表示一个分类。接下来通过一一介绍这三个算法来分析决原创 2018-01-21 11:15:48 · 1983 阅读 · 0 评论 -
《机器学习实战》——预测数值型数据:回归
这是基于《机器学习实战》一书的第八章内容总结而成的知识,有一些案例和相关的代码,即可获取。8.1 用线性回归找到最佳拟合曲线假设输入数据存放在矩阵X中,而回归系数存放在向量w中,那么对于给定的数据X1,预测结果将会通过Y1=X1.T×w给出。如何找出误差最小的W,一般采用平方误差最小,即最小二乘法。平方误差可以写做:用矩阵表示还可以写做(y-x*转载 2018-01-14 14:20:53 · 1586 阅读 · 0 评论 -
机器学习实战——ch8.2 回归之预测乐高玩具价格
基于《机器学习实战》第八章的案例,乐高玩具预测的实例,但是因为原始的Google网页已经失效,所以这里用新的网页进行提取。完整的代码及注释:#-*- coding: utf-8 -*-from numpy import *from BeautifulSoup import BeautifulSoup# 从页面读取数据,生成retX和retY列表def scrapePage转载 2018-01-14 14:24:38 · 1764 阅读 · 0 评论 -
机器学习中的各种距离
机器学习中,经常需要计算各个样本之间的距离,用于做分类,根据距离的远近,将不同的样本归为一类;但是在目前的机器学习算法中,距离计算方式层出不穷,那么这篇博客主要就来梳理下目前机器学习中,常用的距离算法。 本文的目的就是对常用的相似性度量作一个总结。本文目录:1. 欧氏距离2. 曼哈顿距离3. 切比雪夫距离4. 闵可夫斯基距离5转载 2018-02-12 09:42:50 · 1382 阅读 · 0 评论 -
KMeans和二分KMeans
聚类算法是机器学习中的一类无监督学习方法,用于将无标签的数据进行聚类划分。最简单的也最典型的一类算法就是KMeans算法。此处的K表示划分成K个聚类。利用各个点到质心之间的距离的平方和作为将节点划分到不同类的标准。当然也可以采用其他的距离计算方法,不一定是欧式距离方法。一、KMeans此方法一般是在数据分析前期使用,选取适当的K,将数据聚类后,研究不同聚类下数据的特点。算法原理:(原创 2018-02-06 23:16:40 · 5605 阅读 · 1 评论 -
PCA算法详解
1. PCA原理PCA的思想是将nn维特征映射到kk维空间上k<nk<n,这kk维特征是全新的正交特征,是重新构造出来的kk维特征,而不是简单地从nn维特征中去除其余n−kn−k维特征。那么如何衡量投影向量的优劣呢?在数学上有三种方法衡量投影的优劣!PCA可以被定义为数据在低维线性空间上的正交投影,这个线性空间被称为主⼦空间(principal subspace),使得投影数据的⽅差被...转载 2018-03-10 16:30:32 · 9040 阅读 · 1 评论 -
sklearn学习决策树算法
python有一个非常棒的机器学习依赖包sklearn,用于实现机器学习的很多算法,本文将介绍用sklearn中的决策树的接口来实现决策树。决策树是一种用于分类的算法,是一种监督学习算法,具体有id3、c4.5和cart三种算法组成。首先通过csv来导入数据集,注意csv格式是按照每一列以逗号为分隔符的形式。但是因为调用sklearn的包时,需要将数据集的表现格式进行转化,也就是通过也就是比如某一...原创 2018-03-24 08:12:28 · 2950 阅读 · 0 评论 -
逻辑斯蒂回归用sigmoid函数的原因?
sigmoid函数的数学公式 sigmoid函数的因变量x取值范围是-∞到+∞,(-∞,+∞),但是sigmoid函数的值域是(0, 1)。不管x取什么值其对应的sigmoid函数值一定会落到(0,1)范围内~~~漂亮的logistic 曲线sigmoid函数对应的图形就是logistic曲线,logistic曲线对应的函数就是sigmoid函数。...转载 2018-06-23 07:02:11 · 8140 阅读 · 2 评论 -
在mac上安装Xgboost Python库
最近在mac上用到xgboost库,安装时遇到颇多大坑,网上查了很多答案几乎都是win上的问题,没遇到理想的,自己也就摸着石头把几个大坑给填了,总结一下,给后人少走点弯路。1.错误倘若直接 pip install xgboost时,会出现Command "python setup.py egg_info" failed with error code 1的错误提示,还是乖乖使用Github源代码安...转载 2018-06-23 16:05:35 · 1837 阅读 · 0 评论 -
Python超参数自动搜索模块GridSearchCV上手
1. 引言当我们跑机器学习程序时,尤其是调节网络参数时,通常待调节的参数有很多,参数之间的组合更是繁复。依照注意力>时间>金钱的原则,人力手动调节注意力成本太高,非常不值得。For循环或类似于for循环的方法受限于太过分明的层次,不够简洁与灵活,注意力成本高,易出错。本文介绍sklearn模块的GridSearchCV模块,能够在指定的范围内自动搜索具有不同超参数的不同模型组合,有效解...转载 2018-06-24 21:49:59 · 2455 阅读 · 0 评论 -
论文精读-DeepFM
转载一篇博客文章https://blog.csdn.net/zynash2/article/details/79348540DNN部分的详细推导见:https://blog.csdn.net/zynash2/article/details/79360195转载 2019-06-02 10:49:36 · 420 阅读 · 0 评论