机器学习
文章平均质量分 87
Machine Learning学习笔记。
大桔骑士v
微软程序员,B站账号:大桔骑士v
展开
-
【ML学习笔记】25:PCA及绘制降维与恢复示意图
主成分分析简述主成分分析意在学习一个映射UreduceU_{reduce}Ureduce,能将高维数据投射到低维空间上(在矩阵表示中即将数据的列变少),PCA后的低维空间数据可通过映射UreduceTU_{reduce}^TUreduceT还原成高维数据的近似。PCA意在使得在指定维度的低维表示中,投射误差总是最小。在ML中即用于将mmm个样本的特征数目从nnn减少到kkk。归一化设样...原创 2018-11-30 12:05:31 · 9129 阅读 · 0 评论 -
【ML学习笔记】24:白皮书ID3决策树的注解
继续跟着白皮书学习。ID3本质是一种贪心算法,总是选取熵下降最快的特征作为划分标准。对决策树算法而言,如果提供的是数值型数据,应手动划分成标称型数据。go.py引导脚本。#!/usr/local/bin/python3.5import ID3import treePlot#隐形眼镜数据集with open('lenses.txt','r') as fr: da原创 2018-02-05 01:34:19 · 427 阅读 · 0 评论 -
【ML学习笔记】23:用python绘制决策树
继续跟着白皮书学习,对上面的代码做了不少改动,现在能正确绘制了。先不谈决策树的算法,现在仅仅是依据字典表示树来绘制决策树的图形。go.py引导脚本。#!/usr/local/bin/python3.5import treePlotmyTree0=treePlot.getTstTree(0)myTree1=treePlot.getTstTree(1)myTree0['no surfacing'原创 2018-02-02 21:06:25 · 770 阅读 · 0 评论 -
【ML学习笔记】22:尝试PCA主成分分析和性能比较
说”尝试PCA”实在不敢说”认识PCA”,关于PCA这部分迟早要恶补一下。降维后分类性能好差,先记录下来这些代码。对样本集降维以后,再使用Bayes和Fisher分类器做分类。go.py引导脚本。#!/usr/local/bin/python3.5import myPCAmyPCA.Go()myPCA.py主成分分析降维和调用其它分类器。#!/usr/l原创 2018-02-01 00:27:01 · 943 阅读 · 0 评论 -
【ML学习笔记】21:kNN与剪辑近邻(随机二分方式)
简述剪辑近邻能够除去kNN训练集中样本交错位置附近的样本,即从分类器中去除可能影响分类效果或造成overfitting的样本点,使分类面更平滑。近邻法的渐进错误率上界是2倍贝叶斯错误率,剪辑近邻的渐进错误率近似等于贝叶斯错误率。代码实现#-*-coding:utf-8-*-from numpy import *import operatorimport matplotli...原创 2018-01-25 01:12:38 · 1754 阅读 · 2 评论 -
【ML学习笔记】20:kNN与分类面绘制
在python3上实现起来挺不适应。代码实现#-*-coding:utf-8-*-from numpy import * #科学计算包import operator #运算符模块import matplotlibmatplotlib.use('TkAgg')from matplotlib import pyplot as pltimport operatorfrom mpl_t原创 2018-01-24 02:20:11 · 688 阅读 · 0 评论 -
【ML学习笔记】19:原始的LDA线性判别式分析
简述LDALDA线性判别式分析也叫Fisher线性判别,其思路和感知机不同。感知机是根据自己的分类错误去调整决策线的位置,而Fisher线性判别的思想是把空间中的样本点向一个向量上投影,最终在这个向量确定的一维空间中就可以根据点的散布确定阈值,从而做线性判别了。 显然这个投影方向应尽可能让投影后的点类间相隔较远,而类内比较聚集,这样才能较好地分类。原样本空间如样本i的特征向量是xi: 其d个原创 2018-01-08 22:44:58 · 605 阅读 · 0 评论 -
【ML学习笔记】18:原始的Perceptron(感知机)
感知机的决策面感知机用来获取样本特征空间中的一个超平面,以对样本进行分类,属于线性分类器。这样的分类问题比较经典,如某一个参加非诚入扰的女士(分类器)评判自己会不会给非诚勿扰的各个男嘉宾(样本)留灯(1或者-1),男嘉宾作为样本,有多个特征,如身高、月收入、长相得分等。女嘉宾的内心对这些特征会有一个权重,她想的是:把这些特征乘以权重(当然对某些特征的权重是负的,比如每周抽烟的数目)加起原创 2018-01-05 19:13:37 · 2704 阅读 · 0 评论 -
【ML学习笔记】17:多元正态分布下极大似然估计最小错误率贝叶斯决策
简述多元正态分布下的最小错误率贝叶斯如果特征的值向量服从d元正态分布,即其概率密度函数为: 即其分布可以由均值向量和对称的协方差矩阵 唯一确定。如果认为样本的特征向量在类内服从多元正态分布: 即对于每个类i,具有各自的类内的均值向量和协方差矩阵。如之前所学,最小错误率贝叶斯的判别函数的原始形式是: 类条件概率密度服从多元正态分布,带入,得: 因为是比较大小用的,去掉与类号i无关原创 2018-01-03 10:36:18 · 5673 阅读 · 1 评论 -
【ML学习笔记】16:单变量极大似然估计+最小错误率贝叶斯决策
简述极大似然估计在前面做的朴素贝叶斯做文档分类问题中,因为文档中的词(每个特征)不过是出现(1)和不出现(0)两种情况。不管使用词集模型还是词袋模型,对于一个词(特征)而言,其类条件概率只需要用训练集的那一类中出现总的次数,除以训练集中那一类的词的总数目即可。但是当特征取更多的值甚至是连续的值时,这种方法显得不管用,对于特征取连续的值,类条件概率其实是类条件概率密度函数,只能尝试去估计这个函数。极大原创 2018-01-01 14:02:55 · 1493 阅读 · 0 评论 -
【ML学习笔记】15:朴素贝叶斯算法做文档特征分类
延续上一次的demo,书上给出了两个例子,一个是从下载好的txt文档读入样本集,另一个则是在网络RSS源上读取信息。具体的步骤解释写在代码注释中。从txt文件读入+词集模型这个例子所用的样本集有25个txt是垃圾邮件,有25个txt是普通邮件内容,做的事情是读入它们,切分文本。 和之前的demo基本一样,用词集模型去训练分类器,最后用留存验证的方式去看看测试错误率,也就是在样本集中拿出一部分作原创 2017-12-30 13:19:08 · 684 阅读 · 0 评论 -
【ML学习笔记】14:朴素贝叶斯算法的demo
碍于这学期课程的紧迫,现在需要尽快从课本上掌握一些ML算法,我本不想经过danger zone,现在看来却只能尽快进入danger zone,数学理论上的缺陷只能后面找时间弥补了。 如果你在读这篇文章,希望你不要走像我一样的道路,此举实在是出于无奈,尽量不要去做一个心急的程序员,应当分清楚哪些资源是过了学生时期就不再容易获得的。朴素贝叶斯算法简述不同于前面说的k-近邻算法,贝叶斯分类器是一种概原创 2017-12-29 11:00:45 · 1280 阅读 · 0 评论 -
【ML学习笔记】13:k-近邻算法做数值特征分类
继续跟着机器学习白皮书学习k-近邻算法,这个例子给的样本集是三个特征一个标签的。问题描述这个问题讲的是一个女生想给自己约会的男生分类,特征是:ffMiles:每年获得的飞行常客里程数percentTats:玩视频游戏消耗的时间百分比iceCream:每周消费的冰淇淋公斤数标签的值是:①不怎么好②比较一般③较为不错为了方便,在给出的样本集里用数字1/2/3来表示: 模块实现#-*-codin原创 2017-12-26 23:15:09 · 560 阅读 · 2 评论 -
【ML学习笔记】12:k-近邻算法的demo
k-近邻算法(KNN)是一种有监督学习的分类算法,属于非概率分类器。其基本思路就是,实例的每一个特征都可以赋予一个值去度量,如果有n个特征,那么也就是相当于实例在n维空间中(n个方向各自不同,显然这种假定是建立在我们认为这些特征互不相关的基础上的)。而k-近邻算法也就是,把这个投入到学习机器去做预测的实例的特征向量,认定是表达了n维空间上的一个点,这个空间不见得是欧式空间,然后去寻找训练集中k个和这原创 2017-12-22 21:14:53 · 493 阅读 · 0 评论 -
【ML学习笔记】11:Accuracy/FAR/FRR/Precision/Recall/ROC/AUC
accuracy准确率 准确率(accuracy)≠精确率(precision) 准确率=正确率准确率是最传统、最符合我们日常思维的评估方式。在分类问题中,对于任一个实例,在学习机器上跑过以后,如果预测到的标签和其真实标签一样,我们就认为这次预测是准确(accuracy)的。所以准确率即是: P(匹配正确)=num(真实标签=预测标签)用来测试的实例总数P(匹配正确)=\frac{nu原创 2017-12-16 02:01:10 · 4591 阅读 · 0 评论 -
【ML学习笔记】10:机器学习中的数学基础7(张集,秩,维度,行阶梯形)
对线代的很多知识理解仍很浅薄,继续恶补。向量的本质在线代里,我们习惯说的向量都是指列向量。向量虽然是一列数,但是因为有次序,所以每个数在其所处的位置也会携带信息,可以理解为向量是有n个独立维度的数学对象。在线性空间(即向量空间)中,向量就是从原点出发,沿着每个维度走其数值上的距离,最终所指代的那个点,所以向量可以表示线性空间中对象的位置。空间的本质空间是定义了某些概念,并满足某些性质的集合。空间的本原创 2017-12-10 19:18:35 · 2424 阅读 · 2 评论 -
【ML学习笔记】9:认识Decision Tree决策树
简述决策树的基本思想决策树算法属于有监督学习,即需要训练集给出各个样本的特征和标签值: 决策树以信息熵及其相关的量为度量指标,构造一棵熵下降最快的树,在叶节点处熵比较小(具体多小也要考虑overfitting的问题),这时每个叶节点下的实例被认为处于同一类(标签相同)。注意不同叶子下的实例标签未必不同,这在下面的例子里就能看到。 决策树会在每个非叶结点做判别,每个叶结点都是标签的一种取值。每原创 2017-12-09 17:24:13 · 1034 阅读 · 0 评论 -
【ML学习笔记】8:PAC可能近似正确
简述PAC的意思Probably Approximate Correct直译过来就是”可能近似正确”,这里面用了两个描述”正确”的词,可能和近似。 “近似”是在取值上,只要和真实值的偏差小于一个足够小的值就认为”近似正确”;”可能”是在概率上,即只要”近似正确”的概率足够大就认为”可能近似正确”。 泛化误差随学习复杂性变大上节查漏补缺中了解到了,如果训练集不是很大,也就是用来给学习机器学习的样本原创 2017-12-08 22:19:49 · 3322 阅读 · 1 评论 -
【ML学习笔记】7:查漏补缺1(期望风险,经验风险,过学习,结构风险)
目前把花书和清华大学出版社的《机器学习和视觉感知》一起看,这本书里用数学的方式讲了一些具体的机器学习模型。定义与地位机器学习是研究人工智能算法的科学,旨在如何在经验学习中改善具体算法的性能,即通过经验提高其自动性。 按应用领域分类这本书简述了对机器学习区分类别的几种方式,目前只有这种方式比较能看懂。机器学习目前大部分的应用集中在这两个部分: ①分类任务:根据已知的分类知识对输入的未知模式确定其原创 2017-12-07 12:18:22 · 1642 阅读 · 0 评论 -
【ML学习笔记】6:机器学习中的数学基础6(对角矩阵,对称矩阵,正交矩阵,特征分解)
对角矩阵对角矩阵不一定是个方阵,只要i≠j的位置元素值为0即可。但一般说对角矩阵,考虑的都是方阵的情况,对于方阵,那就是只有主对角线上的元素可以不为0,其它元素都是0。 主对角元从左上角到右下角的次序常常记为一个列向量: 然后以它们为主对角元的对角方阵就可以记为diag(v): 对角方阵和向量的标准乘积对角矩阵和向量的乘积比较方便,可以表示成Hadamard乘积(元素对应乘积): 也原创 2017-11-24 21:34:54 · 9339 阅读 · 0 评论 -
【ML学习笔记】5:机器学习中的数学基础5(张量,哈达玛积,生成子空间,超平面,范数)
向量/矩阵/张量向量向量可以表示成一维数组,每个分量可以理解为向量所表示的点在空间中坐标的分量。矩阵矩阵可以表示成二维数组,上节理解了矩阵可以理解为线性映射在特定基下的一种定量描述。张量张量可以表示成任意维的数组,张量是向量概念向更高阶次的推广,向量是一维张量。 但不能把矩阵简单的看成二维张量,张量是几何的,矩阵是代数的。二阶张量和矩阵概念不同,但可以建立联系,矩阵可以描述二阶张量的一些特性(在确原创 2017-11-22 22:57:56 · 3740 阅读 · 0 评论 -
【ML学习笔记】4:机器学习中的数学基础4(线性变换的矩阵描述)
线性空间线性空间即向量空间,如果空间中有一个原点O,那么空间中的所有点都可以用向量来表示,这些向量及其运算构成的即是向量空间。基基是线性空间里的一组向量,使得该线性空间中任何一个向量都可以唯一表示成这组基的线性组合。 如则(a,b)就是P点在这个线性空间下以X向量和Y向量为基的坐标。要成为基要满足一些条件,首先这些向量要属于这个线性空间: 并且这些向量v1…vk线性无关,而且k=n,那么这些原创 2017-11-20 23:43:17 · 1024 阅读 · 0 评论 -
【ML学习笔记】3:机器学习中的数学基础3(特征值,特征向量,认识SVD)
矩阵乘以向量的几何意义 实际上也就是 所以,它还可以写成 那么把原来的矩阵按照列视图来看,也就是 而[x]和[y]作为1x1的矩阵,在刚刚那个式子里可以看成一个标量,也就变成了 所以矩阵乘以一个列向量,可以看成把这个列向量的每一个分量当做一个权重,而把刚刚那个矩阵分成几个列向量,用这些权重去对这些分解出的列向量做一定的线性组合,然后得到了一个新的列向量。 而(x,y)也就原创 2017-11-10 18:41:21 · 1711 阅读 · 0 评论 -
【ML学习笔记】2:机器学习中的数学基础2(琴生不等式,概率公式,统计量)
琴生不等式下凸函数的一个良好的性质就是满足琴生不等式,因为: 它的加权形式即琴生不等式: 如果将这些权都视为概率,它们加起来为1,那么还能写成数学期望的形式: f(E(x))<=E(f(x)) 也就是说,对于下凸函数,自变量期望的函数值不大于函数值的期望。此外,对于上凸函数,也有类似的性质,只不过不等号要反过来。概率公式这三个公式在概率论学过,复习一下。条件概率在已知B发生了的基础上原创 2017-11-08 21:30:49 · 3263 阅读 · 4 评论 -
【ML学习笔记】1:机器学习中的数学基础1(方向导数,梯度,下凸函数)
机器学习分类[1]监督学习(SL)包括分类预测、回归分析等。监督学习中基于一个训练集(特征1,,特征2,…,特征n,已知目标)训练出一个监督学习算法,去计算仅知道特征的测试集(特征1,特征2,…,特征n,未知目标)中未知目标的值。如果目标值是离散的(如是男还是女),就是分类问题,否则是回归问题。 例如有一个(身高,发长,性别)的训练集,去计算出一个(身高,发长)的测试集中每一个元素的性别,这就原创 2017-11-03 12:13:10 · 2436 阅读 · 1 评论