美文网首页
非监督PCA降维代码实践

非监督PCA降维代码实践

作者: 万州客 | 来源:发表于2022-04-29 08:59 被阅读0次

可能和数据预处理混在一起了,将就吧。

一,代码

import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import RobustScaler
from sklearn.preprocessing import Normalizer
from sklearn.datasets import make_blobs
from sklearn.neural_network import MLPClassifier
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.datasets import fetch_lfw_people

'''
wine = load_wine()
scaler = StandardScaler()
X = wine.data
y = wine.target
X_scaled = scaler.fit_transform(X)
pca = PCA(n_components=2)
pca.fit(X_scaled)
X_pca = pca.transform(X_scaled)

X0 = X_pca[wine.target == 0]
X1 = X_pca[wine.target == 1]
X2 = X_pca[wine.target == 2]


plt.scatter(X0[: ,0], X0[:, 1], c='b', s=60, edgecolors='k')
plt.scatter(X1[: ,0], X1[:, 1], c='g', s=60, edgecolors='k')
plt.scatter(X2[: ,0], X2[:, 1], c='r', s=60, edgecolors='k')

plt.legend(wine.target_names, loc='best')
plt.xlabel('component 1')
plt.ylabel('component 2')
plt.show()

plt.matshow(pca.components_, cmap='plasma')
plt.yticks([0, 1], ['component 1', 'component 2'])
plt.colorbar()
plt.xticks(range(len(wine.feature_names)), wine.feature_names, rotation=60, ha='left')
plt.show()
'''
faces = fetch_lfw_people(min_faces_per_person=20, resize=0.8)
X_train, X_test, y_train, y_test = train_test_split(
    faces.data/255, faces.target, random_state=62
)
# 使用PCA的白化功能处理人脸数据
pca = PCA(whiten=True, n_components=0.9, random_state=62).fit(X_train)
X_train_whiten = pca.transform(X_train)
X_test_whiten = pca.transform(X_test)
print('白化后的数据形态:{}'.format(X_train_whiten.shape))
mlp = MLPClassifier(hidden_layer_sizes=[100, 100], random_state=62, max_iter=400)
mlp.fit(X_train_whiten, y_train)
print('模型识别准确率: {:.2f}'.format(mlp.score(X_test_whiten, y_test)))
'''

image_shape = faces.images[0].shape
fig, axes = plt.subplots(3, 4, figsize=(12, 9),
                        subplot_kw={'xticks':(), 'yticks':()})
for target, image,ax in zip(faces.target, faces.images, axes.ravel()):
    ax.imshow(image, cmap=plt.cm.gray)
    ax.set_title(faces.target_names[target])
plt.show()
'''

二,效果


2022-04-26 21_44_40-MessageCenterUI.png 2022-04-26 19_22_02-Figure 1.png

相关文章

  • 非监督PCA降维代码实践

    可能和数据预处理混在一起了,将就吧。 一,代码 二,效果

  • 降维——PCA、LDA

    一、 PCA PCA 属于一种线性、非监督、全局的降维算法,旨在找到数据的主成分,并利用这些主成分表征原始数据,从...

  • 5 主成分分析PCA

    主成分分析(PCA)是最常见的降维算法。 PCA是非监督的机器学习算法 主要用于数据的降维 其他应用:可视化、去噪...

  • 非监督学习之——降维(PCA)

    考虑如下几个问题:比如我想要预估一下某篇文章的访问量。那么我可能会搜罗一些数据来帮我分析: 文章id访问量点赞数收...

  • 降维——线性判别分析与主成分分析

    同样作为线性降维的方式,PCA是非监督的降维算法,而LDA是有监督的算法。虽然他俩在应用方面是有区别的,但是从数学...

  • PCA最大方差

    简述: PCA是一种线性、非监督、全局的降维算法。在高维的特征数据空间中有可能会包含冗余与噪声,因此需要寻找数据内...

  • 三种常用降维方法的思想总结

    一.判别分析降维 LDA降维和PCA的不同是LDA是有监督的降维,其原理是将特征映射到低维上,原始数据的类别也...

  • PCA主成份分析

    原理 PCA主成分分析是一种非监督机器学习算法,主要用于数据的降维,相较于knn线性回归这两个监督学习的算法,其理...

  • PCA

    PCA降维 一、算法原理 降维算法 还原算法 二、算法实现 三、scikit-learn PCA 四、PCA降噪 ...

  • PCA

    降维算法 PCA主成分分析, 是无监督的降维方法, 可以将你的数据降低到n-1维. 它有几种不同的方式去解释原理,...

网友评论

      本文标题:非监督PCA降维代码实践

      本文链接:https://www.haomeiwen.com/subject/pbnhyrtx.html