Sklearn 学习笔记4 decomposition(降维)模块

在这里插入图片描述

在这里插入图片描述

1 PCA

在这里插入图片描述

2 SVD

在这里插入图片描述

3 Dictionary Learning

在这里插入图片描述

4 Factor Analysis

在这里插入图片描述

5 Independent component analysis (ICA)

在这里插入图片描述

6 Non-negative matrix factorization (NMF or NNMF)非负矩阵分解

参考网址
在这里插入图片描述
非负矩阵分解(Non-negative Matrix Factorization ,NMF) 是在矩阵中所有元素均为非负数约束条件之下的矩阵分解方法。

基本思想:给定一个非负矩阵V,NMF能够找到一个非负矩阵W和一个 非负矩阵H,使得矩阵W和H的乘积近似等于矩阵V中的值。并且有且仅有一个这样的分解,即满足存在性和唯一性。
在这里插入图片描述

>>> import numpy as np
>>> X = np.array([[1, 1], [2, 1], [3, 1.2], [4, 1], [5, 0.8], [6, 1]])
>>> from sklearn.decomposition import NMF
>>> model = NMF(n_components=2, init='random', random_state=0)
>>> W = model.fit_transform(X)
>>> H = model.components_
>>> X_new = np.array([[1, 0], [1, 6.1], [1, 0], [1, 4], [3.2, 1], [0, 4]])
>>> W_new = model.transform(X_new)

7 Latent Dirichlet Allocation (LDA)

在这里插入图片描述

8 其它矩阵分解:稀疏编码

在这里插入图片描述

9 流形方法

9.1 LLE(Locally Linear Embedding )

局部线性嵌入(Locally Linear Embedding)是另一种非常有效的非线性降维(NLDR)方法。
测量每个训练实例与其最近邻(c.n.)之间的线性关系,然后寻找能最好地保留这些局部关系的训练集的低维表示,擅长展开扭曲的流形。

from sklearn.manifold import LocallyLinearEmbedding
lle=LocallyLinearEmbedding(n_components=2,n_neighbors=10)
X_reduced=lle.fit_transform(X)

9.2 流形学习Isomap

流形学习是非线性降维的主要方法,如手写数字集的降维
是MDS在流形学习上的扩展
原理:将非欧几里德空间转换从欧几里德空间,将非欧几里得空间拆解成一个一个的欧几里得空间
MDS和Isomap都是保留全局特征的非线性数据降维算法,且出发点都是基于距离保持。不同的是MDS是基于欧式距离,Isomap则是测地线距离
测地线距离:地球两个城市的距离无法使用两点之间直线最短的距离,只能依附地球表面的弧形来计算距离
根据邻近的点计算,超参数n_neighbors来设置邻近点的个数

import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.manifold import Isomap

iris = datasets.load_iris()
X = iris.data
y = iris.target

fig, ax = plt.subplots(1,3,figsize=(15, 5)) 

for idx, neighbor in enumerate([2, 20, 100]): 
    isomap = Isomap( n_components=2, n_neighbors=neighbor)
    new_X_isomap = isomap.fit_transform(X)

    ax[idx].scatter(new_X_isomap[:,0], new_X_isomap[:,1], c=y)
    ax[idx].set_title("Isomap (n_neighbors=%d)"%neighbor)

plt.show()

9.3 MDS降维(多维标度法)

MDS的原理就是保持新空间与原空间的相对位置关系不变
常用于市场调研、心理学数据分析

import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.decomposition import PCA   # 与MDS进行对比
from sklearn.manifold import MDS
    
ris = datasets.load_iris()
X = iris.data
y = iris.target

plt.subplot(121)
pca = PCA(n_components=2)
pca.fit(X)
new_X_pca = pca.transform(X)
plt.scatter(new_X_pca [:,0], new_X_pca [:,1], c=y)

plt.subplot(122)
mds = MDS( n_components=2, metric=True)
new_X_mds = mds.fit_transform(X)
plt.scatter(new_X_mds [:,0], new_X_mds [:,1], c=y)

9.4 t-SNE

t-分布随机邻域嵌入(t-Distributed Stochastic Neighbor Embedding)可以用于降维,同时驶入保持相似的实例临近并将不相似的实例分开。该方法主要用于可视化,将原数据降维到二维(n_components 默认即为 2),尤其是可视化高维度空间中的实例。分开的不相似实例在可视化结果中较容易观察。由 sklearn.manifold.TSNE 类实现。

10 其它方法

递归式特征消除:Recursive feature elimination(RFE)

UMAP

import umap
umap_data = umap.UMAP(n_neighbors=5, min_dist=0.3, n_components=3).fit_transform(df[feat_cols][:6000].values)

反向特征消除(Backward Feature Elimination)

前向特征选择(Forward Feature Selection)

参考资料

1 https://zhuanlan.zhihu.com/p/59593225
2 https://cloud.tencent.com/developer/article/1014685
3 https://zhuanlan.zhihu.com/p/51769969
4 https://blog.youkuaiyun.com/github_38486975/article/details/88384884
5 https://www.cnblogs.com/bonelee/p/7849867.html
6 https://blog.youkuaiyun.com/qq_17249717/article/details/82349860?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduend~default-2-82349860.nonecase&utm_term=sklearn%E9%99%8D%E7%BB%B4%E6%96%B9%E6%B3%95

### 机器学习期末考试复习资料 对于准备机器学习期末考试的学生而言,找到合适的复习资源至关重要。以下是几个方面的建议和推荐材料: #### 一、理解基本概念 确保掌握机器学习的核心理论和技术细节。这不仅有助于应对选择题和简答题,还能加深对整个学科的理解。 #### 二、练习编程作业 实际操作是巩固所学知识的有效途径之一。可以参考一些在线平台上的项目案例或竞赛题目来进行实践训练[^1]。 #### 三、关注常见考点 根据以往的经验总结,在考试中经常会出现关于算法原理、应用场景以及优缺点对比等方面的内容。因此要特别留意这些知识点的学习。 #### 四、利用网络资源 互联网上有许多优质的开源教程可供借鉴。例如ALTLI同学分享的一份针对山东大学软件学院机器学习课程的期末复习笔记就非常实用。这份文档涵盖了大量典型试题及其解答思路,并且还附带了一些额外的小贴士帮助考生更好地备考。 另外需要注意的是,当处理数据集时可能会遇到特征过多的情况,这时应该考虑采用适当的技术以防止模型发生过拟合现象[^2]。常见的做法有PCA(主成分分析)等线性变换手段;也可以借助于诸如Lasso回归这样的正则化方法实现自动化的变量筛选过程。 最后值得一提的是特征选择的重要性。为了提高预测准确性并简化最终构建出来的分类器结构,有必要学会运用多种策略挑选最具代表性的输入属性作为建模依据。具体来讲,可以从以下几个方面入手:过滤式(Filter),即基于统计度量给定候选集合中的各个成员打分排序后再做取舍;包裹式(Wrapper),即将此任务视为组合优化问题并通过穷举法或其他启发式搜索机制求解最优配置方案;还有就是所谓的嵌入式(Embedded),也就是让某些特定类型的监督式学习框架内部自带这一功能模块从而达到同步完成两者目的的效果[^3]。 ```python from sklearn.decomposition import PCA import numpy as np # 假设X是我们原始的数据矩阵 pca = PCA(n_components=2) reduced_X = pca.fit_transform(X) print(reduced_X.shape) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值