Machine learning code
数 据 可 视 化 \color{BLUE}{数据可视化} 数据可视化
我是机器学习的初学者,最近在师兄的指导下,进行数据的降维可视化,因为对这些问题不是很透彻,为方便自己和大家,我写的尽量详细
基于PCA的数据降维,并且作图:
首先说明,数据格式data.shape= [5,24,10,10] ,数据共分为5类,每类数据有10个样本数据。在降维之前要把所有的数据reshape一下,因为可视化要求输入的数据,必须是二维数据。
设输入的初始机器学习数为data
(1)获取降维之前的机器学习数据data
(2)将data降维到二维
data = data.reshape(50 ,-1)
(3)准备数据标签,我的数据是按照顺序排列的,因此使用以下语句进行
其排列方式为10个0,10个1,10个2,10个3,10个4.
arr1 = np.full(10,0)
arr2 = np.full(10,1)
arr3 = np.full(10,2)
arr4 = np.full(10,3)
arr5 = np.full(10,4)
labels = np.concatenate( (arr1, arr2,arr3,arr4,arr5))
(4)准备数据标签,我的数据是按照顺序排列的,因此使用以下语句进行
from sklearn.decomposition import PCA
pca = PCA(n_components=0.95)# 保证降维后的数据保持95%的信息
result = pca.fit(data)
(5)做出PCA可视化后的图
plt.figure(figsize=(8, 6))
dict ={ 0:'label0', 1: 'label1', 2: 'label2', 3 :' label3', 4 : 'label4'}
for i in range (5):
plt.scatter(y[(i+0)*10:(i+1)*10,0], y[(i+0)*10:(i+1)*10:,1], label = dict[i],s=100)
#s 代表散点的大小
plt.legend(fontsize = 15,frameon = True,loc="lower right") #图例字体大小,有边框, 右下角
plt.tick_params(labelsize=20) #刻度字体大小
matplotlib.rcParams['xtick.labelsize'] = 15
matplotlib.rcParams['ytick.labelsize'] = 15
matplotlib.rcParams['axes.labelsize'] = 40
plt.savefig("PCA.png" , dpi=300)
#plt.show()
(6)效果展示