
鹏鹏哥哥的机器学习
金融风控与机器学习
鹏鹏哥哥的小红帽
一个热衷于新技术的煮饭阿姨
展开
-
SVM中的KKT条件和拉格朗日对偶
首先,我们要理解KKT条件是用来干嘛的?KKT条件用来判断一个解是否属于一个非线性优化问题。求最优解:约束条件分为1、等式约束2、不等式约束对于等式约束的优化问题,可以直接应用拉格朗日乘子法去求取最优值;对于含有不等式约束的优化问题,可以转化为在满足 KKT 约束条件下应用拉格朗日乘子法求解。拉格朗日求得的并不一定是最优解,只有在凸优化的情况下,才能保证得到的是最优解,所以...原创 2019-04-16 17:35:55 · 2527 阅读 · 0 评论 -
奇异值分解(SVD)简述
奇异值分解SVD思维导图奇异值分解是什么奇异值分解(Singular Value Decomposition,SVD),是一种提取信息的方法。比如有一份记录用户关于餐馆观点的数据,要对其进行处理分析,提取背后的因素,这个因素可能是餐馆的类别,烹饪配料等,然后利用这些因素估计人们对没有去过的餐馆的看法,从而进行推荐,提取这些信息的方法就叫奇异值分解法。奇异值分解的作用是什么奇...转载 2018-12-20 00:30:31 · 2121 阅读 · 0 评论 -
协方差矩阵简述
协方差矩阵均值描述的是样本集合中的平衡点。 标准差描述的是样本集合中各个样本点到均值之间距离的平均值,即数据的分散程度。方差是标准差的平方。方差是协方差的一种特殊情况,即当两个变量是相同的情况 。引出协方差前面的标准差,方差一般用来描述一维的,现实中我们遇到的大多是多维的,这时候虽然可以每一维独立计算出方差,但信息单一,这就引出协方差。简单地说:协方差就是这样一种用来度量两个随...转载 2018-12-20 00:10:27 · 5497 阅读 · 0 评论 -
[Python嗯~机器学习]---对决策树和随机森林的补充说明
决策树和随机森林补充首先,我们从熵开始讲起~~~第一个公式说明:给定 X 的条件下 Y 的信息熵等于 X,Y 的联合熵减去 X 自己的熵。建立决策树的三种算法:信息增益就是先算出数据本身 D 的熵,然后减去某一个特征 A 下面的条件熵,得到的就算是信息增益,把所有的特征的条件熵都算出来,选最大的就是 ID3 的做法。信息增益其实就是数据本身和某个特征之间的互信息。选择跟当前的数据互信息...原创 2019-01-21 11:42:00 · 607 阅读 · 0 评论 -
[Python嗯~机器学习]---决策树和随机森林
决策树和随机森林首先,明白两个概念:Bagging和Boosting。两者都是将现有的分类或者回归算法组合在一起,行程一个更强大的分类器的一种方法。Bagging(bootstrap aggregating):算法过程:1、从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共...原创 2019-01-16 21:27:49 · 1924 阅读 · 0 评论 -
[Python嗯~机器学习]---EM算法的基本理解
EM算法的基本理解为什么要用EM算法(最大期望算法)?在机器学习中,我们观察样本,建立模型,然后训练,进行预测。这是一个正常的流程,但是我们想一个问题,现实生活中一定有很多因素使我们无法观测的,也就是隐含数据?怎么办?算法。。。如果,只有模型而没有模型参数,那么1、先猜想隐含数据(算法的步)。2、接着基于观察数据和猜测的隐含数据一起来极大化对数似然,求解我们的模型参数(算...原创 2019-03-01 11:18:45 · 759 阅读 · 0 评论 -
[Python嗯~机器学习]---对于音乐推荐引擎的基本理解
音乐推荐引擎 数据集百万歌曲数据库百万歌曲数据量可以在https://labrosa.ee.columbia.edu/millionsong/ 上下载。原始的数据包含了多年间上百万首歌曲的量化音频特征。它实际上是The Echonest和LABRosa的一个合作项目。这里我们不会使用整个数据集,而只会使用它们中的一部分。基于这个数据库,还衍生出了一些其他的数据集。其中一个就是T...原创 2019-02-18 14:59:02 · 4523 阅读 · 5 评论 -
[Python嗯~机器学习]---贝叶斯网络
贝叶斯网络首先,我们再想一下,相对熵和互信息相对熵是表示两个随机分布之间的距离,也是最大期望算法(EM)的损失函数,是一个大于等于 0 的值。互信息是设两个随机变量 的联合分布为 ,边际分布分别为 ,互信息 是联合分布 与乘积分布 的相对熵。概率公式: 具体应用例子:http://blog.sciencenet.cn/blog-82650-255141.html 参考...原创 2019-02-04 18:47:51 · 2268 阅读 · 0 评论 -
[Python嗯~机器学习]---对互信息的理解
互信息通过上图可以看出,所谓互信息就是两个事件都有的信息量。于是,在互信息定义的基础上使用jessen不等式,我们可以证明 是非负的,因此 ,这里我们给出 的详细推导:上面其他性质的证明类似。 直观地说,如果把熵 看作一个随机变量不确定度的量度,那么 就是 没有涉及到的 的部分的不确定度的量度。这就是“在 已知之后 的剩余不确定度的量”,于是第一个等式的右边就...原创 2019-01-25 11:18:22 · 3709 阅读 · 1 评论 -
[Python嗯~机器学习]---对熵、条件熵、相对熵的补充
熵、条件熵、相对熵、交叉熵熵首先,我们可以理解熵是一个量化信息量的东西,用来度量信息的多少。一件事情的信息量和不确定性是有关系的,信息量越大就表示不确定性越大。举一个例子:中国运动员将在2020年东京奥运会赢得短跑冠军。这个例子中,因为大家都知道几乎是不可能的,所以就不需要去查阅和引入很多信息,信息量就很少,熵就很小。反之,亦然。这时候,我们把上面的例子泛化成一个事件 ,那么 发生的...原创 2019-01-25 10:47:44 · 2024 阅读 · 0 评论 -
[Python嗯~机器学习]---sklearn中对于梯度提升树GBDT和随机森林RF的参数调优
GBDT参数调优框架参数n_estimators: 弱学习器的最大迭代次数,或者说最大的弱学习器的个数。 learning_rate: 每个弱学习器的权重缩减系数ν,ν的取值范围为0<ν≤1。 subsample: 子采样,取值为(0,1]。 init: 即初始化的时候的弱学习器。 loss: 即我们GBDT算法中的损失函数。 alpha:这个参数只有GradientBoos...原创 2019-01-23 14:02:50 · 2867 阅读 · 0 评论 -
[Python嗯~机器学习]---集成学习基础
集成学习原文作者:刘建平Pinard集成学习(ensemble learning)本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。也就是我们常说的“博采众长”。集成学习可以用于分类问题集成,回归问题集成,特征选取集成,异常点检测集成等等。基本思路对于训练集数据,我们通过训练若干个个体学习器,通过一定的结合策略,就可以最终形成一个强学习器,以达到博采众...原创 2019-01-22 16:03:44 · 832 阅读 · 0 评论 -
[Python嗯~机器学习]---对聚类算法的进阶补充
对聚类算法的进阶补充聚类我们应该都知道它的用途,大体上的聚类我们的思路都是通过计算不同样本点的距离来进行分类。入门算法:k-means算法层次聚类:密度聚类:边界和噪声:谱聚类:拉普拉斯矩阵:总结:谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀...原创 2019-01-21 17:19:51 · 237 阅读 · 0 评论 -
[Python嗯~机器学习]---用python3来分析共享单车投放量
共享单车投放量预测数据集https://archive.ics.uci.edu/ml/datasets/Bike+Sharing+Dataset字段信息hour.csv和day.csv都有如下的字段,不过day.csv中不会有hr。instant: 样本编号 dteday: 日期 season: 季节(1-春季;2-夏季;3-秋季;4-冬季) yr: 年份(0-2011;1-20...原创 2019-01-15 17:17:22 · 5165 阅读 · 4 评论 -
[Python嗯~机器学习]---用python3来分析和预测加州房价
加州房价分析和预测步骤1、分析工作内容2、获得数据3、分析和预处理数据4、选择模型并训练5、参数调优6、描述我们最终方案7、上线我们的系统数据集的几个来源1、加州大学欧文分校机器学习数据库 2、Kaggle数据库 3、亚马逊AWS开源数据库 等等。。。我们用的数据集基于加州人口普查数据的美国加州房价数据集开始我们的工作第一步分析工作内容利用加州的...原创 2019-01-14 09:52:54 · 13309 阅读 · 2 评论 -
[Python嗯~机器学习]---用python3来描述sklearn的基本使用
sklearn介绍基于Python 实现了几乎所有主流机器学习算法 简单易用的API定义 2010年末首次开源 高度活跃 Python,Cython,Wrapper scikit-learn / sklearn用sklearn数据集描述¶In [1]:from sklearn import datasetsasets # 引入skl...原创 2019-01-04 16:06:27 · 682 阅读 · 0 评论 -
[Python嗯~机器学习]---用python3来描述协同过滤
协同过滤推荐系统In [1]:import numpy as npfrom scipy.optimize import minimizeimport pandas as pdIn [2]:def getRecommender(Y, R, params=None, n=10, theLambda=10, maxIter=100): """ Args: ...原创 2019-01-02 19:17:00 · 1413 阅读 · 2 评论 -
[Python嗯~机器学习]---用python3做一个简单的异常检测模型
异常检测In [1]:import numpy as np评估指标,准确率和召回率(F1 score)In [2]:def F1(predictions, y): # 预测值和真实标签值 TP = np.sum((predictions == 1) & (y == 1)...原创 2018-12-22 00:08:10 · 2428 阅读 · 1 评论 -
[Python嗯~机器学习]---构建一个大规模的机器学习系统
大规模机器学习我们基本讨论了应用中的机器学习算法,但是生产中要跟大数据结合,对于大数据我们如何处理呢?前面我们讨论过,在机器学习中并不是谁有最好的算法谁就能赢,而是谁拥有更多的数据谁才会赢。我们在前面的博客称之为”算法虽好,数据决胜!”所以,如果我们能有办法获得大量数据的话,我们就希望能够利用这样大量的数据来训练我们的模型。不过,当数据集变得很大的时候就会遇到计算量的问题。比如,我们...原创 2018-12-21 21:26:52 · 1190 阅读 · 0 评论 -
[Python嗯~机器学习]---机器学习推荐系统简述
推荐系统这个博客我们讨论一个有用的算法,也就是大家感兴趣的能变现的算法----推荐算法。现在,当我们浏览网页的时候,服务器都会记录用户的行为,来分析我们的喜好并且推荐相关的信息。举个例子吧,电影评分~~~假设,我们运营了一家视频点播网站,就类似爱奇艺、优酷。在这种网站里面,用户会对电影、电视剧等的进行评分,一般都是1星到 5 星的。觉得好看就给五星,觉得不好看就给 1 星之类的。而...原创 2018-12-21 08:01:26 · 646 阅读 · 0 评论 -
[Python嗯~机器学习]---机器学习中的异常监测简述
异常监测前面博客中我们学习了聚类算法,就是用机器学习方法把不同的无标签样本分成几类。那么,我们还是用一个问题引出我们的讨论,如果我们的样本基本就是一类,很难会出现不同一类,这时候怎么分?说白了,对大量的数据进行训练,如果有一个新的样本跟训练样本聚一类就是正常,偏离训练集就是异常。如何定义异常监测?假设有一些数据,从x1到xm,我们通常假定这m个样本都是正常的,然后我们需要一个算法来判断...原创 2018-12-21 06:26:48 · 1061 阅读 · 0 评论 -
[Python嗯~机器学习]---用python3实现主成分分析法(PCA算法)
PCA算法降维In [1]:from sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.decomposition import PCAfrom sklearn.linear_model import Logisti...原创 2018-12-20 23:21:25 · 3431 阅读 · 1 评论 -
[Python嗯~机器学习]---降维和PCA算法
降维和PCA算法现在我们考虑一个问题,现实生活中的一个事务的特征是非常多的,有可能是上百维或者更高的,有的特征与特征之间也有一定的联系,庞大的特征和样本集就使得我们的训练需要大量的时间,这时候我们就想有没有办法加快我们的训练减少时间呢?引入我们今天的概念----降维,进行数据压缩,使用更少的计算机内存或磁盘,加快学习算法。如何进行降维?数据压缩:对于一个事物的特征我们取出两个...原创 2018-12-19 22:18:14 · 1285 阅读 · 0 评论 -
[Python嗯~机器学习]---用python3来说明k-means(K均值)算法
k-means算法In [1]:import numpy as np读数据集In [2]:def loadDataSet(filename): """ 读取数据集 Args: filename: 文件名 Returns: dataMat: 数据样本矩阵 """ dataMat = [] ...原创 2018-12-18 00:19:49 · 773 阅读 · 0 评论 -
[Python嗯~机器学习]---无监督学习和聚类-k-means算法
无监督学习前面的博客我们讨论的都是有监督学习,也就是数据集中有样本的输出结果,如,预测值或者是否关系。那么,假如数据没有标注,那么我们怎么对数据进行分类?有没有一种算法可以自动的把我们的数据分成不同的数据集合? k-means算法(k均值)简述:没有标注的样本数据集,用肉眼我们大概可以分成两类,所以我们也希望能聚成两个类。我们随机初始化两个点,这两个点我们称他们为类簇中心点。...原创 2018-12-17 23:37:33 · 1172 阅读 · 0 评论 -
[Python嗯~机器学习]---用python3和鸢尾花数据集来描述SVM
线性核函数In [1]:import numpy as npimport matplotlib.pyplot as pltfrom sklearn import svm # 直接用sklearn中的包from sklearn.datasets import make_blobs # 生成样本点数据,生成聚类的数据In [2]:...原创 2018-12-17 21:33:10 · 7189 阅读 · 0 评论 -
[Python嗯~机器学习]---简述支持向量机(SVM)和核函数
简述支持向量机这一个博客我们还是讨论监督学习和分类问题-----支持向量机 / SVM还是用问题引出我们的内容。我们在逻辑回归中通过对概率值的惩罚来判断决策边界,那么我我们在SVM中怎么分类?在线性不可分的高维度情况下,我们对样本进行分类?这样就引出了我们支持向量机中的最重要的两个内容1、顾名思义的支持向量(离决策边界最近的点)~~~2、引入核函数,使线性不可分的内容线性可分...原创 2018-12-15 08:04:05 · 4553 阅读 · 0 评论 -
[Python嗯~机器学习]---用python3来做机器学习模型诊断
诊断机器学习我们用代码来回顾一下上一个博客中关于参数选择的问题In [1]:import numpy as npimport matplotlib.pyplot as plt # 画图from scipy.io import loadmat # 用scipy中的模块加载matl...原创 2018-12-13 22:20:49 · 645 阅读 · 0 评论 -
[Python嗯~机器学习]---设计一个简单的机器学习系统和准确率、召回率
设计一个简单的机器学习系统首先,快速实现的最简单的算法,比如花一天时间来快速地搭建出一个可以运行的简单系统,即使效果不好也无所谓。之后,我们通过画出学习曲线来观察训练集误差和交叉验证集误差,确定是否有高bias问题,或者高variance问题,或者什么别的问题。这样,我们就可以决定是否需要获取更多的训练样本,或者加入更多的特征,或者其他手段来提高算法的效果。误差分析,意思是在我们构建...原创 2018-12-13 20:48:30 · 1318 阅读 · 0 评论 -
[Python嗯~机器学习]---如何调试一个简单的机器学习算法?
调试一个机器学习算法在机器学习中,我们学习了最简单的模型以及构建方式,那么怎么调试来使得我们的算法更有效呢?从房价预测讲起~~~上图中我们可以看出代价函数可以分成两部分。我们暂时这么想,前一部分表示模型拟合能力(取决于高阶项次数),后一项表示摩西复杂度(通过 λ 来表示对模型参数的惩罚能力)。如何来调整这些参数呢?这时候要引出过拟合和欠拟合的问题。上图中,如果只有房价和面积...原创 2018-12-13 19:26:01 · 687 阅读 · 0 评论 -
[Python嗯~机器学习]---用python3来阐述神经网络
神经网络首先,我们实现一个神经网络有6个步骤1、构建一个神经网络,然后随机初始化权值,通常我们把权值初始化为很小的值,接近于0,但不是0 。 2、执行前向传播算法,也就是对于该神经网络的任意一个输入xi,计算出对应的hx值,也就是一个输出值y的向量。 3、通过代码计算出代价函数 jΘ 。 4、执行反向传播算法,来计算出这些偏导数,或者叫偏微分项,也就是 jΘ 关于参数 Θ 的偏微分。...原创 2018-12-13 00:43:34 · 342 阅读 · 0 评论 -
[Python嗯~机器学习]---神经网络的原理和BP算法
神经网络的原理和BP算法上一篇博客中,我们简述了神经网络,中间我们假设有一个合适的 θ 矩阵,来完成我们的前向传播,那么我们如何来选择 θ 呢?开始我们的讨论内容,构造一个神经网络,使用反向传播求解 θ 。神经网络模型:说明:L :神经网络层数Sl:第 l 层神经元个数K :输出的多分类情况中的分类数这时候,要求一个好的神经网络就要对所有的边权 θ 进行优化,这时候我们想到...原创 2018-12-12 17:44:41 · 1084 阅读 · 0 评论 -
[Python嗯~机器学习]---简述神经网络
神经网络前面的博客我们讨论了分类问题的时候用的是逻辑回归,那么为什么能用逻辑回归了还要研究神经网络?首先,我们回想一下,我们用逻辑回归对于一个非线性的分类问题是不是要构造一个有很多个多项式项和高阶项的分类边界?如果这个样本有很多个特征怎么办?是不是多项式项和高阶项就会难以想象的多?再次,如果我们用所有的多项式和高阶项拟合决策边界是不是会过拟合?要是人为删掉一些是不是会欠拟合?带...原创 2018-12-11 10:02:31 · 343 阅读 · 0 评论 -
[Python嗯~机器学习]---最大熵模型和多分类
最大熵模型和多分类熵可以看做是用来描述信息量的。最大熵模型属于运用最大熵原理的多分类模型。熵是随机变量不确定性的度量,不确定性越大,熵越大。给定一定条件的最大熵:在给定期望和方差的基础上,均匀分布的熵最大。带约束的极值问题,用拉格朗日函数来解决。最大熵模型给定约束条件的求极值问题,用拉格朗日函数函数求解。总结:最大熵模型和logistic回归:逻辑回归就是...原创 2018-12-08 10:35:12 · 1402 阅读 · 1 评论 -
[Python嗯~机器学习]---凸优化和拉格朗日函数
凸优化和拉格朗日函数对偶问题和拉格朗日函数:拉格朗日函数对于乘子是线性的或者放射的。对x属于域中的所有函数值取下界,就剩下了关于 λ 和 υ 的函数。拉格朗日函数值是小于我们假设函数最有解的。对于λ 和 υ 来说拉格朗日对偶函数是一个凹函数。 重点:在优化问题求假设函数最小值的时候,原函数不是一个凸函数,这时候给它加两个项构造一个拉格朗日函数,取下确界获得拉格朗日对偶函...原创 2018-12-07 23:59:14 · 1803 阅读 · 0 评论 -
[Python嗯~机器学习]---一句话解释机器学习中的极大似然估计和最小二乘法
极大似然估计和最小二乘法用先验分布是高斯分布的噪声做一下问题假设我们给定了样本,用一个直线或平面或其他的数学形式描述,但是真实的点和模型的上的点总是有误差,我们把误差作为噪声,看做是一个符合高斯分布的一组误差。样本是独立的,我们的噪声也是独立的,所以就是独立同分布的一组数据。因为影响误差的是大量的相互影响的因素决定的,按照中心极限定理误差就是最正常状态的分布,就是正态分布,也叫高斯...原创 2018-12-07 23:12:02 · 434 阅读 · 0 评论 -
[Python嗯~机器学习]---用python实现逻辑回归
逻辑回归引入我们的模块 显示中文In [1]:import numpy as npfrom matplotlib import pyplot as plt # import matplotlib.pyplot as pltimport matplotlibmatplotlib.rcParams['font.sans-serif'] = ['Sim...原创 2018-12-07 20:34:42 · 503 阅读 · 0 评论 -
[Python嗯~机器学习]---L1正则化和L2正则化
正则化解决过拟合问题正则化(Regularization)是机器学习中一种常用的技术,其主要目的是控制模型复杂度,减小过拟合。最基本的正则化方法是在原目标(代价)函数 中添加惩罚项,对复杂度高的模型进行“惩罚”。数学表达式:式中 、 为训练样本和相应标签, 为权重系数向量; 为目标函数, 即为惩罚项,可理解为模型“规模”的某种度量;参数 控制控制正则化强弱。不同的 函数对权重...转载 2018-12-06 22:33:51 · 7116 阅读 · 0 评论 -
[Python嗯~机器学习]---过拟合的解决思路和正则化
过拟合问题前面我们在博客中讨论了线性回归和逻辑回归,这两种算法都是为了通过大量数据训练之后得到一个假设函数模型来预测我们未来添加的样本。这时候就会出现一个问题 ,我们的假设函数有的时候太逼近真实值中的每一个点,几乎完美的拟合了训练集所有的数据点,那么预测一个没有出现过的数据样本就可能产生一个很大误差,(训练集上误差很低,测试集上误差很高)这种情况下就是很好的拟合了数据,但是具有很低...原创 2018-12-06 20:34:30 · 1635 阅读 · 0 评论 -
[Python嗯~机器学习]---多分类问题
多分类现实生活中的分类不只有二分类,比如一封邮件,要分成广告邮件、工作邮件、家庭邮件等。。。天气预报有雨、雪、晴、阴等各种分类。这时候,我们可以看出多分类就需要下图右侧这种多个决策边界。这时候,可以把要得到的一类看做一种类,其他的看做另一类,这时候我们有一个类就构造出专门判断某一类的分类器~~~,有很多的假设函数分类器。第一个类的假设函数判断给的测试样本属于第一个分类的概率,依次其他...原创 2018-12-06 17:22:18 · 1955 阅读 · 1 评论