机器学习实例之PCA(主成分分析)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_22659021/article/details/78767874

用sklearn自带的鸢尾花数据集,降到两维

import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris

data = load_iris()
y = data.target
x = data.data
#print(x)
#print(len(x))
#print(y)
pca = PCA(n_components=2)#将原始数据降到维度为2,即保留主成分为2
#print(pca)
reduced_x = pca.fit_transform(x)#用x训练
#print(reduced_x)
#print(len(reduced_x))
red_x,red_y = [],[]
blue_x,blue_y = [],[]
green_x,green_y = [],[]
for i in range(len(reduced_x)):
    if y[i] == 0:
        red_x.append(reduced_x[i][0])
        red_y.append(reduced_x[i][1])
    if y[i] == 1:
        blue_x.append(reduced_x[i][0])
        blue_y.append(reduced_x[i][1])
    if y[i] == 2:
        green_x.append(reduced_x[i][0])
        green_y.append(reduced_x[i][1])

plt.scatter(red_x, red_y, c='r', marker='x')  # 第一类数据点
# matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)
# x,y是长度相等的数组,即输入数据
# c定义颜色,c='r',c='b',c='g'分别代表red,blue,green
# marker定义图上散点的标记样式,可用string或者数组类型,默认为None
# marker='x'表示用叉标记
plt.scatter(blue_x, blue_y, c='b', marker='D')  # 第二类数据点
# marker='D'表示用方块标记
plt.scatter(green_x, green_y, c='g', marker='.')  # 第三类数据点
# marker='.'表示用点标记
plt.show()  # 可视化,显示散点图


猜你喜欢

转载自blog.csdn.net/sinat_22659021/article/details/78767874