机器学习-12-——聚类
聚类聚类算法的概念一种典型的无监督学习算法,主要用于将相似的样本自动归到一个类别中。
在聚类算法中根据样本之间的相似性,将样本划分到不同的类别中,对于不同的相似度计算方法,会得到不同的聚类结果,常用的相似度计算方法有欧式距离法。
聚类算法实现流程k-means其实包含两层内容:
K : 初始中心点个数(计划聚类数)means:求中心点到其他数据点距离的平均值
k-means聚类步骤:
1、随机设置K个特征空间内的点作为初始的聚类中心
2、对于其他每个点计算到K个中心的距离,未知的点选择最近的一个聚类中心点作为标记类别
3、接着对着标记的聚类中心之后,重新计算出每个聚类的新中心点(平均值)
4、如果计算得出的新中心点与原中心点一样(质心不再移动),那么结束,否则重新进行第二步过程
案例练习
1、随机设置K个特征空间内的点作为初始的聚类中心(本案例中设置p1和p2)
2、对于其他每个点计算到K个中心的距离,未知的点选择最近的一个聚类中心点作为标记类别
3、接着对着标记的聚类中心之后,重新计算出每个聚类的新中心点(平均值)
4、如果计算得出的新中心点与原中心点一样(质 ...
机器学习-11-——逻辑回归
逻辑回归逻辑回归(Logistic Regression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归,但是它与回归之间有一定的联系。由于算法的简单和高效,在实际中应用非常广泛。是解决二分类问题的利器。
输入
逻辑回归的输入就是一个线性回归的结果。
激活函数sigmoid函数
逻辑回归公式:
输出:[0,1]区间的概率值,默认0.5作为阀值注:g(z)为sigmoid函数e: 2.71Z =回归的结果
逻辑回归即使用线性回归的思想去做二分类问题,也即将分类问题转化为概率问题,用sigmoid的目的是为了保证每一处都是连续可导的。
输出结果解释(重要):假设有两个类别A,B,并且假设我们的概率值为属于A(1)这个类别的概率值。现在有一个样本的输入到逻辑回归输出结果0.6,那么这个概率值超过0.5,意味着我们训练或者预测的结果就是A(1)类别。那么反之,如果得出结果为0.3那么,训练或者预测结果就为B(0)类别。
所以接下来我们回忆之前的线性回归预测结果我们用均方误差衡量,那如果对于逻辑回归,我们预测的结果不对该怎么去衡量这个损失呢?我们来看这样一张图
...
机器学习-10-——拟合与正则化
欠拟合和过拟合定义
过拟合:一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在测试数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。(模型过于复杂)
欠拟合:一个假设在训练数据上不能获得更好的拟合,并且在测试数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。(模型过于简单)
原因以及解决办法
欠拟合原因以及解决办法
原因:学习到数据的特征过少
解决办法:
1)添加其他特征项,有时候我们模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。例如,“组合”、“泛化”、“相关性”三类特征是特征添加的重要手段,无论在什么场景,都可以照葫芦画瓢,总会得到意想不到的效果。除上面的特征之外,“上下文特征”、“平台特征”等等,都可以作为特征添加的首选项。
2)添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强。
过拟合原因以及解决办法
原因:原始特征过多,存在一些嘈杂特征, 模型过于复杂是因为模型尝试去兼顾各个测试数据点
解决办法:
1)重新清洗数据,导致过拟合的一个原因 ...
机器学习-9-——线性回归
线性回归定义与公式线性回归(Linear regression)**是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间**关系进行建模的一种分析方式。
特点:只有一个自变量的情况称为单变量回归,多于一个自变量情况的叫做多元回归
线性回归用矩阵表示举例
那么怎么理解呢?我们来看几个例子
期末成绩:0.7×考试成绩+0.3×平时成绩
房子价格 = 0.02×中心区域的距离 + 0.04×城市一氧化氮浓度 + (-0.12×自住房平均房价) + 0.254×城镇犯罪率
上面两个例子,我们看到特征值与目标值之间建立了一个关系,这个关系可以理解为线性模型。
线性回归的损失和优化假设刚才的房子例子,真实的数据之间存在这样的关系
1真实关系:真实房子价格 = 0.02×中心区域的距离 + 0.04×城市一氧化氮浓度 + (-0.12×自住房平均房价) + 0.254×城镇犯罪率
那么现在呢,我们随意指定一个关系(猜测)
1随机指定关系:预测房子价格 = 0.25×中心区域的距离 + 0.14×城市一氧化氮浓度 + 0.42×自住房平均房价 + 0.34×城镇 ...
机器学习-8-——决策树算法
决策树算法决策树:是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果,本质是一颗由多个判断节点组成的树。
树的节点如何划分?很明显,从图中是按照重要程度进行,逐个划分,越往上重要程度更高,但如何定义重要程度呢?这就需要引入信息熵的概念
熵物理学上,熵 Entropy 是“混乱”程度的量度。
系统越有序,熵值越低;系统越混乱或者分散,熵值越高。
信息理论:
1、从信息的完整性上进行的描述:
当系统的有序状态一致时,**数据越集中的地方熵值越小,数据越分散的地方熵值越大。
2、从信息的有序性上进行的描述:
当数据量一致时,系统越有序,熵值越低;系统越混乱或者分散,熵值越高。
1948年香农提出了信息熵(Entropy)的概念。
假如事件A的分类划分是(A1,A2,…,An),每部分发生的概率是(p1,p2,…,pn),那信息熵定义为公式如下:(log是以2为底,lg是以10为底)
案例12345课堂案例1:如果一颗骰子的六个面都是1 ,投掷它不会给你带来任何新信息,因为你知道它的结果肯定是1,它的信息熵为??答案 ...
机器学习-7-——朴素贝叶斯算法
朴素贝叶斯贝叶斯公式(两个特征之间独立):
换个表达形式就会明朗很多,如下:
我们最终求的p(类别|特征)即可!就相当于完成了我们的任务。
公式分为三个部分:
P(C):每个文档类别的概率(某文档类别数/总文档数
P(WIC):给定某个类别下特征(被预测文档中出现的词)的概率
拉普拉斯平滑
属于某个类别为 0, 合适吗?
问题: 从上面的例子我们得到娱乐概率为 0, 这是不合理的, 如果词频列表里面有很多出现次数都为 0, 很可能计算结果都为零解决方法: 拉普拉斯平滑系数
α 为指定的系数一般为 1, m 为代表类别的数目(标签的数目) (我们分为两类,科技类与娱乐类)
sklearn 朴素贝叶斯实现 APIsklearn.naive_bayes.MultinomialNB
MultinomialNB
sklearn.naive_bayes.MultinomialNB(alpha = 1.0)
朴素贝叶斯分类
alpha: 拉普拉斯平滑系数
123456789101112131415161718192021222324252627282930313233343 ...
机器学习-5-——转换器与估计器
转换器(Transformer)转换器是一种用于数据预处理的工具,它可以将原始数据转换为机器学习算法可以处理的格式。转换器通常用于特征工程,这是一种从原始数据中提取有意义特征的过程。
在sklearn中,转换器通常实现了一个名为fit_transform的方法。这个方法首先通过fit步骤学习数据的特性(如平均值、标准差等),然后通过transform步骤应用这些学习到的特性来转换数据。
转换器是一种实现特征工程操作的一组API,可以较方便的完成常用的特征工程操作,包括:
fit:计算一些数据的平均数、方差等
transform:进行一些数据转换
fit_transform:相当于fit+transform,既实现了fit的功能,又实现了transform的功能。
1234567891011121314from sklearn.preprocessing import StandardScalerstd1=StandardScaler()a=[[1,2,3],[4,5,6]]std1.fit_transform(a)# 结果如下array([[-1., -1., -1.], [ 1. ...
机器学习-6-——K近邻算法
k近邻(k-NN)算法k近邻算法是一种基本分类和回归方法。K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实例分类到这个类中。(这就类似于现实生活中少数服从多数的思想)根据这个说法,咱们来看下引自维基百科上的一幅图:
如上图所示,有两类不同的样本数据,分别用蓝色的小正方形和红色的小三角形表示,而图正中间的那个绿色的圆所标示的数据则是待分类的数据。这也就是我们的目的,来了一个新的数据点,我要得到它的类别是什么?好的,下面我们根据k近邻的思想来给绿色圆点进行分类。
如果K=3,绿色圆点的最邻近的3个点是2个红色小三角形和1个蓝色小正方形,少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于红色的三角形一类。
如果K=5,绿色圆点的最邻近的5个邻居是2个红色三角形和3个蓝色的正方形,还是少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于蓝色的正方形一类。
sklearn k-近邻算法 API
sklearn.neighbors.KNeighborsClassifier(n_neighb ...
机器学习(4)——算法
机器学习算法分类
监督学习:(英语:Supervised learning),可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值(称为回归),或是输出是有限个离散值(称作分类)分为:
分类:k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络
回归:线性回归、岭回归、神经网络
无监督学习:(英语:Supervised learning),可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值所组成。
聚类:k-means(有几十种聚类)
监督学习与非监督学习区别:
监督学习:特征值+目标值
非监督学习:特征值1000个样本
分类与回归的区别:
分类:目标值离散型
回归:目标值连续型
分类模型评估指标
精确率(Precision)与召回率(Recall)精确率: 预测结果为正例样本中真实为正例的比例(查得准) TP/(TP+FP)
召回率: 真实为正例的样本中预测结果为正例的比例(查的全, 对正样本的区分能力)TP/(TP+FN), 医院非常重视 ...
机器学习(3)——数据压缩
数据压缩PCA主成分分析(Principal Component Analysis, PCA) 也称为 卡尔胡宁-勒夫变换(Karhunen-Loeve Transform),是一种用于探索高维数据结构的技术。PCA 通常用于高维数据集的探索与可视化;还可以用于数据压缩,数据预处理等。PCA 可以把可能具有相关性的高维变量合成线性无关的低维变量,称为主成分( principal components)。新的低维数据集会尽可能的保留原始数据的变量。
作用:可以削减回归分析或者聚类分析中特征的数量,特征数量达到上百的时候,开始使用PCA
如图所示,第四张二维的平面图,最能体现出其三维的特性,因此,我们可以使用PCA,将三维的数据,转换为二维的数据,虽然会损失一部分信息,但不影响我们对特征的提取与预测。
直观就是,所有点到线的垂直距离和最短的一条线。也确定了每个点在新的维度上的特征值
(业界常使用90%~95%)
12345678910111213141516171819from sklearn.decomposition import PCAdef pca(): &quo ...