| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 机器学习-监督学习及典型算法 -> 正文阅读 |
|
[人工智能]机器学习-监督学习及典型算法 |
文章目录监督学习(Supervised)? 监督学习是目前运用最广泛的一种ML方法。如BP、决策树。监督学习通过训练既有特征又有鉴定标签的训练数据,让机器学习特征与标签之间产生联系。在训练好之后,可以预测只有特征数据的标签。监督学习可分为回归(Regression)分析和分类(Classification)。 ? 回归分析:对训练数据进行分析,拟合出误差最小的函数模型 ? 分类:训练数据是特征向量与其对应的标签,同样通过计算新的特征向量得到所属的标签。
原理? 监督学习假设训练数据与真实预测数据属于同一概率分布并且相互独立。监督学习通过训练学习到数据的概率分布,并应用到真实的预测上。 输入空间、特征空间、输出空间? 输入空间与输出空间可以相同也可以不同,通常下输出空间远小于输入空间。每一个具体的输入被称作实例、由特征向量表示。所有特征向量组成特征空间,特征空间的每一维代表一个特征。 ? 回归问题:输入变量与输出变量均为连续变量的预测问题。 ? 分类问题:输出变量是有限个离散变量的预测问题。 ? 标注问题:输入变量与输出变量均为变量序列的预测问题。 \\\\\\ KNN算法(K-Nearest Neighbor Classification)? 简而言之:周围什么多它就是什么,没有学习的过程,不适合BP。 ? KNN,K近邻算法,根据不同特征值之间的距离来进行分类的ML算法。该算法的主要应用领域是对未知事物进行分类(判断未知事物属于哪一类)。KNN也可用于回归,通过找出一个样本的k个最近邻居,将这些邻居属性的平均值赋给该样本,就i可以得到该样本的属性。 ? KNN算法的原理是:将测试数据的特征与训练集中对应的特征进行比较,找到训练集中最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类。
? 这里说的距离与K参数的选取直接决定算法的效果。KNN的距离指的是:设定X实例以及Y实例均包含了N维的特征,即 X = ( x 1 , x 2 , ? ? ? , x n ) , Y = ( y 1 , y 2 , ? ? ? , y n ) X=(x_1,x_2,···,x_n),Y=(y_1,y_2,···,y_n) X=(x1?,x2?,???,xn?),Y=(y1?,y2?,???,yn?)。度量二者的差异,主要由距离度量和相似度度量两类。 ①距离度量 ②相似度度量
\\\\\\ 近似误差与估计误差: 近似误差:对现有训练集的训练误差,关注训练集,如果近似误差过小可能会出现过拟合的现象,对现有的训练集能有很好的预测,但是对未知的测试样本将会出现较大偏差的预测。模型本身不是最接近最佳模型。 估计误差:可以理解为对测试集的测试误差,关注测试集,估计误差小说明对未知数据的预测能力好,模型本身最接近最佳模型。 K值确定标准: ? 如果选择较小的K值:就相当于用较小的邻域中的训练实例进行预测,学习的近似误差会减小,只有与输入实例较近的训练实例才会对预测结果起作用,缺点是学习的估计误差会增大,预测结果会对近邻的实例点分敏感。*如果邻近的实例点恰巧是噪声,预测就会出错。*换句话说,K值减小就意味着整体模型变复杂,分不清楚,易发生过拟合。 ? 如果选择较大K值:就相当于用较大邻域中的训练实例进行预测,其优点是可以减少学习的估计误差,但近似误差会增大,也就是对输入实例预测不准确,K值得增大就意味着整体模型变的简单。 实例:
\\\\\\
支持向量机(SVM)? SVM算法是基于统计学习理论的一种ML方法,它通过寻求结构化风险最小化来提高学习器的繁华能力,实现经验风险和置信范围的最小化,从而达到在样本较少的情况下也能获得良好统计规律的目的。如今常用于对小样本、非线性及高维数据进行模式识别、分类以及回归分析,并能取得良好效果。 ? SVM是一个二分类的分类模型。给定一个包含正反例(正负样本点)的样本集合,SVM会寻找一个超平面来对样本进行分割,把样本中的正反例用超平面进行分开,并使正反例之间的间隔最大。(一般将任何维的分类边界都称为超平面) ? 其核心思想为: ① SVM算法是针对线性可分情况进行分析;对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间线性可分,从而使得对样本的非线性特性进行线性分析称为可能。 ② SVM算法以结构风险最小化在特征空间中构建最优分割超平面,使得学习器得到全局最优。 ? ? 学习的目标是在特征空间内找到**一个分类超平面 ** w x + b = 0 {\bold w}x+b=0 wx+b=0,分类超平面将特征空间划分为两部分(正类、负类)。
? 对它的处理是使用高数中我们学习过的拉格朗日乘法。后面的处理过程我就不赘述了,毕竟别人写得更好orz
? 在线性不可分的情况下,SVM现在低维空间中完成计算,再通过核函数映射到高位特征空间,最终在高维特征空间中构造出最优分离超平面,从而把屏幕上本身不好分的非线性数据分离开。
核函数主要使用于复杂的非线性数据的分类问题。**但是我们从哪得到标记点?**将选取我们拥有的每一个样本点作为标记点。 偏差方差分析: 当 C ( 1 λ \frac 1 \lambda λ1?)和 σ 取值较大时:会发生过拟合、偏差小、方差大;(正态分布函数较为尖锐) 当 C ( 1 λ \frac 1 \lambda λ1?)和 σ 取值较小时:会发生欠拟合、偏差大、方差小;(正态分布函数较为平缓) 如何选择使用SVM还是逻辑回归? 当样本特征的数量远大于样本的数量:基本上使用逻辑回归或是线性核函数(无核SVM); 反之,样本特征的数值是一个大小适中,m也大小适中,使用高斯SVM; 如果样本特征的数量很小,样本数量很大,此时如果还选择高斯SVM,运行速度会很慢,基本上使用逻辑回归或是线性核函数(无核SVM)。(并自己手动添加一些样本特征) 实例:
\\\\\\
朴素贝叶斯分类(Nave Bayes)? 对于朴素贝叶斯来说:最重要的就是它把每个输入变量都设为独立的。 ? 假设有训练数据集合,其中特征向量 X = ( x 1 , x 2 , ? ? ? , x n ) X=(x_1,x_2,···,x_n) X=(x1?,x2?,???,xn?)对应分类变量y,可以使用贝叶斯理论: P ( y ∣ X ) = P ( X ∣ y ) P ( y ) P ( X ) P(y|X)=P(X|y)P(y)P(X) P(y∣X)=P(X∣y)P(y)P(X)。朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。
? 对于朴素贝叶斯分类来说,我们将其一共分为三个阶段:
总结:
emmm 没有实例啦,找到一组讲解的朴素贝叶斯实现算法,非常详细,推荐阅读。 \\\\\\ \\\\\\ 决策树算法? 决策树学习是根据数据的属性采用的树状结构建立的决策模型,可以用此模型解决分类和回归问题。**决策树算法指的是:对数据特性进行划分的时候选取最优特征的算法,将无序的数据尽量变得更加有序。**常见的算法包括:CART、ID3、C4.5等。 ? 决策树的决策选择最优特征常用的3个度量为:信息增益(Information Gain)、增益比率(Gain Ratio)、基尼不纯度(Gini Impurity)。 信息增益 ? 用划分前集合与划分后集合之间的信息熵差值来衡量当前特征对于样本集合划分的效果。
信息增益率: ? 节点信息增益与节点分裂信息度量的比值。信息增益率是C4.5算法的基础。信息增益率度量是用增益度量
G
a
i
n
(
S
,
T
)
Gain(S,T)
Gain(S,T)和分裂信息度量
S
p
l
i
t
I
n
f
o
t
m
a
t
i
o
n
(
S
,
T
)
SplitInfotmation(S,T)
SplitInfotmation(S,T)来共同定义的。分裂信息度量
S
p
l
i
t
I
n
f
o
t
m
a
t
i
o
n
(
S
,
T
)
SplitInfotmation(S,T)
SplitInfotmation(S,T)就相当于特征T的熵。 ? 衡量集合的无序程度,表示在样本集合中一个随机选中的样本被分错的概率。(
f
i
f_i
fi?是样本i出现的概率)
对于ID3算法:使用最大信息增益构造决策树。因为信息增益越大,就越能减少不确定性,区分样本的能力就越强,越具有代表性。所以,ID3算法在决策树的每一个非叶子结点划分之前,先计算一个属性带来的信息增益,选择最大的信息增益来区分。 ID3实例:
csv文件:
实验结果: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:23:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |