机器学习及应用 第9章 降维
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
非线性降维方法,也称之为流形学习方法(Manifold Learning), 其目标是从高维采样数据中恢复低维流形结构,不改变数据本身的 拓扑特性。
• 基于保持全局结构信息,如等距离映射算法ISOMAP • 关注局部结构信息,如LLE、LE、HLLE
9.2 k-近邻学习
k-近邻(k-Nearest Neighbor,kNN):
果,因此它已经成为很多算法数据进行预处理的重要手段。
9.1 引言
9.1 引言
9.1.2 常见算法分类
降维方法可分为线性降维和非线性降维两大类。 线性降维假设构成数据集的各变量间独立无关。
• 主成分分析(Principal Component Analysis,PCA) • 独立成分分析(Independent Component Analysis,ICA) • 线性判别分析(Linear Discriminant Analysis,LDA)
9.3.1 算法思想
PCA是将n维特征向量映射到r维上(r n),映射的过程要求每个维度 的样本方差最大化,达到尽量使新的r维特征向量之间互不相关的目的。 这些数据中拥有方差最大的r个维度被称为主成分。
的权重数组。
• algorithm:计算近邻的算法,包括如下四种: ’auto’,根据传递给fit方法的参数值,尝试选择最优算法; ’ball_tree’,球树实现(BallTree); ’kd-tree’,KD树实现(KDTree); ‘brute’,暴力实现。
• leaf size:整型,默认参数值为30。定义构建KD树或球树时叶子结点数量
主要参数如下:
• n_neighbors:整型,默认参数值为5。邻居数k值。 • weights:字符串或回调函数,默认参数值为’uniform’。预测时的权重有:
9.2 k-近邻学习
‘uniform’:所有近邻样本权重都一样; ‘distance’:权重和距离成反比; [callable],即回调函数:该函数的输入是距离数组,输出是同样大小
9.2 k-近邻学习
9.2.3 算法关键
kNN算法本身简单有效,能处理大规模的数据分类,尤其适用于样本分 类边界不明显的情况。
计算量较大且运行时需要大量内存:对每一个待分类数据都要计算它到 全体已知样本的距离,才能求得它的k个最近邻点。
kNN算法的三个基本要素:
• (1)k值的选择:通过交叉验证的方式求出最合适的k值,默认取值为5。 • (2)分类决策规则:通常采用多数表决决定。在类域间分布不平衡的情
况下,采用为k个邻居分配不同权值的方法来改进。
• (3)距离度量方法。
9.3 主成分分析
通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在 所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留 住较多的原数据点的特性。
PCA是丢失原始数据信息最少的一种线性降维方式,可以将PCA应用在 数据压缩、数据可视化、提升机器学习速度等场景中。
给定一个训练数据集,对新的输入实例,在训 练数据集中找到与该实例最邻近的k个实例,即k个 邻居。如果这k个实例的多数属于某个类,就把该输 入实例分类到这个类中。
9.2.1 算法实现
kNN算法计算流程如下:
• 计算每个样本点与测试点的距离; • 排序后取距离值最小的k个样本点作为k-近邻; • 获取k-近邻的分类标签并计算各分类出现的次数; • 找出出现次数最多的分类,返回该值作为测试点的分类结果。
9.2 k-近邻学习
实例代码
9.2 k-近邻学习
运行效果:
• 左下角两个点属于B类用蓝色点标识,
右上角两个点属于A类用红色标识。取 k值为3时通过kNN算法计算,距离测 试点(0.2, 0.1)最近的三个点中的两 个点都是蓝色,因此测试点也是蓝色, 属于B类。
• 这样的实现方式适合样本数量和特征
sklearn.neighbors模块集成了k-近邻相关的类,KNeighborsClassifier用 做kNN分类树,KNeighborsRegressor用做kNN回归树。 KNeighborsClassifier类的实现原型如下:
class sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, weights=’uniform’, algorithm=’auto’, leaf_size=30, p=2, metric=’minkowski’, metric_params=None, n_jobs=1, **kwargs):
的阈值。这个值会影响构建和查询的速度,以及树的存储空间。
• metric:字符串或回调函数,默认参数值为’minkowski’。给定树的距离度
量方法。
• p:整型,默认参数值为2。定义闵可夫斯基距离中的p值。
ห้องสมุดไป่ตู้
9.2 k-近邻学习
实例代码
9.2 k-近邻学习
在这个例子中,使用鸢尾花iris数据集作为训练数据集,提取该数据集的前 两个特征值以简化样本。首先创建近邻分类的实例并对数据进行拟合,同 时绘制了分类的边界,将不同分类点以不同的颜色显示出来。最后将训练 数据集中的数据用不同颜色的散点显示出来。
第09章 降维
学习目标
k-近邻学习 主成分分析
学习目标
低维嵌入 SVD分解
9.1 引言
9.1.1 降维的概念
降维(Dimensionality Reduction,DR)是指采用线性或者非线性 的映射方法将高维空间的样本映射到低维空间中。
降维获得低维空间下的数据等价表示,实现高维数据的可视化呈现。 等价的低维数据更方便存储、处理、计算和使用。 降维能够去除数据噪声、降低算法开销。 降维还可应用于文本分类和数据压缩等领域。 降维可以得到原始数据的简化表示以加速后续处理或者改进输出结
数量比较少的情况。
假设样本数量为N、特征数量为M,该算法时间复杂度是 O(NM )。 面对大样本和特征数较多的情况,使用KD树、球树训练数据。 以KD树为例,搜索时间复杂度为 O(M log(N)) ,适合于样本数量远
大于特征数量的kNN搜索。
9.2 k-近邻学习
9.2.2 算法实例
• 基于保持全局结构信息,如等距离映射算法ISOMAP • 关注局部结构信息,如LLE、LE、HLLE
9.2 k-近邻学习
k-近邻(k-Nearest Neighbor,kNN):
果,因此它已经成为很多算法数据进行预处理的重要手段。
9.1 引言
9.1 引言
9.1.2 常见算法分类
降维方法可分为线性降维和非线性降维两大类。 线性降维假设构成数据集的各变量间独立无关。
• 主成分分析(Principal Component Analysis,PCA) • 独立成分分析(Independent Component Analysis,ICA) • 线性判别分析(Linear Discriminant Analysis,LDA)
9.3.1 算法思想
PCA是将n维特征向量映射到r维上(r n),映射的过程要求每个维度 的样本方差最大化,达到尽量使新的r维特征向量之间互不相关的目的。 这些数据中拥有方差最大的r个维度被称为主成分。
的权重数组。
• algorithm:计算近邻的算法,包括如下四种: ’auto’,根据传递给fit方法的参数值,尝试选择最优算法; ’ball_tree’,球树实现(BallTree); ’kd-tree’,KD树实现(KDTree); ‘brute’,暴力实现。
• leaf size:整型,默认参数值为30。定义构建KD树或球树时叶子结点数量
主要参数如下:
• n_neighbors:整型,默认参数值为5。邻居数k值。 • weights:字符串或回调函数,默认参数值为’uniform’。预测时的权重有:
9.2 k-近邻学习
‘uniform’:所有近邻样本权重都一样; ‘distance’:权重和距离成反比; [callable],即回调函数:该函数的输入是距离数组,输出是同样大小
9.2 k-近邻学习
9.2.3 算法关键
kNN算法本身简单有效,能处理大规模的数据分类,尤其适用于样本分 类边界不明显的情况。
计算量较大且运行时需要大量内存:对每一个待分类数据都要计算它到 全体已知样本的距离,才能求得它的k个最近邻点。
kNN算法的三个基本要素:
• (1)k值的选择:通过交叉验证的方式求出最合适的k值,默认取值为5。 • (2)分类决策规则:通常采用多数表决决定。在类域间分布不平衡的情
况下,采用为k个邻居分配不同权值的方法来改进。
• (3)距离度量方法。
9.3 主成分分析
通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在 所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留 住较多的原数据点的特性。
PCA是丢失原始数据信息最少的一种线性降维方式,可以将PCA应用在 数据压缩、数据可视化、提升机器学习速度等场景中。
给定一个训练数据集,对新的输入实例,在训 练数据集中找到与该实例最邻近的k个实例,即k个 邻居。如果这k个实例的多数属于某个类,就把该输 入实例分类到这个类中。
9.2.1 算法实现
kNN算法计算流程如下:
• 计算每个样本点与测试点的距离; • 排序后取距离值最小的k个样本点作为k-近邻; • 获取k-近邻的分类标签并计算各分类出现的次数; • 找出出现次数最多的分类,返回该值作为测试点的分类结果。
9.2 k-近邻学习
实例代码
9.2 k-近邻学习
运行效果:
• 左下角两个点属于B类用蓝色点标识,
右上角两个点属于A类用红色标识。取 k值为3时通过kNN算法计算,距离测 试点(0.2, 0.1)最近的三个点中的两 个点都是蓝色,因此测试点也是蓝色, 属于B类。
• 这样的实现方式适合样本数量和特征
sklearn.neighbors模块集成了k-近邻相关的类,KNeighborsClassifier用 做kNN分类树,KNeighborsRegressor用做kNN回归树。 KNeighborsClassifier类的实现原型如下:
class sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, weights=’uniform’, algorithm=’auto’, leaf_size=30, p=2, metric=’minkowski’, metric_params=None, n_jobs=1, **kwargs):
的阈值。这个值会影响构建和查询的速度,以及树的存储空间。
• metric:字符串或回调函数,默认参数值为’minkowski’。给定树的距离度
量方法。
• p:整型,默认参数值为2。定义闵可夫斯基距离中的p值。
ห้องสมุดไป่ตู้
9.2 k-近邻学习
实例代码
9.2 k-近邻学习
在这个例子中,使用鸢尾花iris数据集作为训练数据集,提取该数据集的前 两个特征值以简化样本。首先创建近邻分类的实例并对数据进行拟合,同 时绘制了分类的边界,将不同分类点以不同的颜色显示出来。最后将训练 数据集中的数据用不同颜色的散点显示出来。
第09章 降维
学习目标
k-近邻学习 主成分分析
学习目标
低维嵌入 SVD分解
9.1 引言
9.1.1 降维的概念
降维(Dimensionality Reduction,DR)是指采用线性或者非线性 的映射方法将高维空间的样本映射到低维空间中。
降维获得低维空间下的数据等价表示,实现高维数据的可视化呈现。 等价的低维数据更方便存储、处理、计算和使用。 降维能够去除数据噪声、降低算法开销。 降维还可应用于文本分类和数据压缩等领域。 降维可以得到原始数据的简化表示以加速后续处理或者改进输出结
数量比较少的情况。
假设样本数量为N、特征数量为M,该算法时间复杂度是 O(NM )。 面对大样本和特征数较多的情况,使用KD树、球树训练数据。 以KD树为例,搜索时间复杂度为 O(M log(N)) ,适合于样本数量远
大于特征数量的kNN搜索。
9.2 k-近邻学习
9.2.2 算法实例