有监督
K-近邻算法 (分类&回归,主要用于分类)
- K近邻算法(KNN,K-Nearest Neighbors)主要用于分类
K-NN分类是最简单的多分类技术。
K-NN基本原理:
K-NN分类的基本概念是找到与新样本距离最近的K个训练样本(已确定分类)。
新样本从K个已确定分类的邻居获得分类标签。
- 对于回归问题,它可能是输出变量的平均值;
- 对于分类问题,它可能是模式类别值。
k-近邻算法的一般流程:
- 收集数据:可以使用爬虫进行数据的收集,也可以使用第三方提供的免费或收费的数据。一般来讲,数据放在txt文本文件中,按照一定的格式进行存储,便于解析及处理。
- 准备数据:使用Python解析、预处理数据。
- 分析数据:可以使用很多方法对数据进行分析,例如使用Matplotlib将数据可视化。
- 测试算法:计算错误率。
- 使用算法:错误率在可接受范围内,就可以运行k-近邻算法进行分类。
决策树 (分类&回归,主要用于分类)
- 决策树(Decision Trees)主要用于分类
可以把决策树看成一个if-then规则的集合。
使用决策树做预测需要以下过程:
- 收集数据:可以使用任何方法。比如想构建一个相亲系统,我们可以从媒婆那里,或者通过采访相亲对象获取数据。根据他们考虑的因素和最终的选择结果,就可以得到一些供我们利用的数据了。
- 准备数据:收集完的数据,我们要进行整理,将这些所有收集的信息按照一定规则整理出来,并排版,方便我们进行后续处理。
- 分析数据:可以使用任何方法,决策树构造完成之后,我们可以检查决策树图形是否符合预期。
- 训练算法:这个过程也就是构造决策树,同样也可以说是决策树学习,就是构造一个决策树的数据结构。
- 测试算法:使用经验树计算错误率。当错误率达到了可接收范围,这个决策树就可以投放使用了。
- 使用算法:此步骤可以使用适用于任何监督学习算法,而使用决策树可以更好地理解数据的内在含义
支持向量机 (分类&回归,主要用于分类)
- 支持向量机(SVM,Support Vector Machine)主要用于分类
支持向量机是最受欢迎、讨论最广的机器学习分类方法之一。是一种线型分类器。
基本原理:
在二维空间内,超平面可被视为一条直线,假设所有的输入点都可以被该直线完全分开,
两类边界由超平面式g(x)决定。g(x) = wx-b=0 w为法向量,b为阈值,根据带标签的数据训练求出
SVM的目标:找到一组分割系数w、b,使一个超平面能够对数据x进行最佳分割,即能将两类正确分开,且分类间隔最大。主要优点:
- 可以解决高维问题,即大型特征空间
- 可以解决小样本下机器学习问题
- 能够处理特征的相互作用
- 泛化能力比较强
主要缺点:
- 当观测样本很多时,效率并不高
- 对非线性问题没有通用的解决方案
朴素贝叶斯 (分类)
- 朴素贝叶斯(Naive Bayes)
朴素贝叶斯也称为简单贝叶斯,是一种十分简单的分类算法。
朴素贝叶斯分类器的基础是贝叶斯定理。P(类别|特征) = P(特征,类别)/P(特征) = P(特征|类别)P(类别)/P(特征)
朴素贝叶斯模型假设特征之间相互独立。
朴素贝叶斯分类算法的特点:
- 朴素贝叶斯模型与其他分类方法相比具有较小的误差率。
- 朴素贝叶斯模型实际应用效果并不理想,因为实际应用中特征之间往往并不是相互独立的
提升分类器性能利器-AdaBoost
线性回归
- 线性(最小二乘)回归(Linear Regression)
树回归
Logistic回归
无监督
K-均值 (聚类)
- K-均值(K-Means)基于原型的目标函数聚类方法
k-means聚类算法中 k 表示为样本分配的聚类的数量。
k-means聚类算法是一种迭代求解的算法,基本思路:
- 可以使用一个随机特征向量来对一个聚类进行初始化
- 将其他样本添加到其最近邻的聚类中
- (假定每个样本都能表示一个特征向量,并且可以使用常规的欧氏距离式来计算距离)。
- 随着一个聚类所添加的样本越来越多,其形心(即聚类的中心)会重新计算,然后该算法就会重新检查一次样本,以确保它们都在最近邻的聚类中,直到没有样本需要改变所属聚类为止。k-均值聚类算法由于操作简单、容易实现
- 随机选取K个对象作为初始的聚类中心
- 计算对象与聚类中心之间的距离,把对象分配给距离它最近的聚类中心
- 每分配一个样本,根据对象重新计算聚类中型
- 不断重复2-3,直到满足终止条件。
终止条件可以是:
- 没有(或最小数目)聚类中心再发生变化, 误差 平方和 局部最小。.
- 没有(或最小数目)对象被重新分配给不同的聚类
参考链接
参考链接:机器学习实战教程(13篇)