• 大小: 2.65KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2024-05-08
  • 语言: Python
  • 标签: 可视化  Pc  模型  数据  

资源简介


资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
“““
Created on Wed Nov 11 14:16:56 2020

@author: lenovo
“““
“““
#方法一
import numpy as np
import matplotlib.pyplot as plt
#将二维数据降成一维
num = [(2.5 2.4) (0.5 0.7) (2.2 2.9) (1.9 2.2) (3.1 3.0) (2.3 2.7)
       (2 1.6) (1 1.1) (1.5 1.6) (1.1 0.9)]
num_array = np.array(num)
n1_avg n2_avg = np.mean(num_array[: 0]) np.mean(num_array[: 1])
new_num_array = np.c_[num_array[: 0] - n1_avg num_array[: 1] - n2_avg]
num_cov = np.cov(new_num_array[: 0] new_num_array[: 1])
ab = np.linalg.eig(num_cov)
w = b[: np.argmax(a)]
zl_num =new_num_array.dot(w.T)
print(zl_num)
plt.plot(zl_num‘ro‘)
#plt.scatter(num[:0]num[:1]) #元组不行,列表才行,所以无法显示
plt.show()
“““
#====================================================
“““
#方法二,使用sklearn中的PCA
import numpy as np
from sklearn.decomposition import PCA
num = [(2.5 2.4) (0.5 0.7) (2.2 2.9) (1.9 2.2) (3.1 3.0) (2.3 2.7)
       (2 1.6) (1 1.1) (1.5 1.6) (1.1 0.9)]
num_array = np.array(num)
pca = PCA(n_components = 1)
z2_num =pca.fit_transform(num_array)
#print(z2_num)
#==============================================
#题目二
x = np.array([[-1266-1][-2658-1][-3845-2][19361][210621]
              [35832]])
pca = PCA(n_components = 2) #降到二维
pca.fit(x)   #训练
newx = pca.fit_transform(x)  #降维后的数据
print(pca.explained_variance_ratio_)    #输出贡献率
print(newx)
plt.scatter(newx[:0]newx[:1])  #只能输出列表,元组不可以输出
“““
#==================
#题目三:鸢尾花数据可视化
import numpy as np
import pandas as pd
from sklearn.decomposition import PCA   #sklearn闪点图
import matplotlib.pyplot as plt
text = pd.Dataframe(pd.read_csv(“iris.csv“))#读取iris.csv文件中的数据
num = text.head(10)#取10行的数据
#print(num)
#print(text.describe())  #查看统计分布
#print(text.isnull().sum())  #查看数据缺失
“““

text.hist(figsize = (108) ) #hist树状图  figsize画布大小
plt.show()

“““
#鸢尾花数据可视化图
x = text.iloc[::4]
y = text.iloc[:-1]
model = PCA(n_components = 2 random_state = 42)  #random_state按固定的比例划分
newx = model.fit_transform(x)

#print(newx)  #显示降维的结果
red_x red_y = [] []
blue_x blue_y = [] []
green_x green_y = [] []

for i in range(len(newx)):
    if y[i] == ‘setosa‘:
        red_x.append(newx[i][0])
        red_y.append(newx[i][1])
    elif y[i] == ‘versicolor‘:
        blue_x.append(newx[i][0])
        blue_y.append(newx[i][1])
    else:
        green_x.append(newx[i][0])
        green_y.append(newx[i][1])
        
plt.scatter(red_x red_y c=‘r‘ label=‘setosa‘)
plt.scatter(blue_x blue_y c=‘b‘ label=‘versicolor‘)
plt.scatter(green_x green_y c=‘g‘ label=‘virginica‘)
plt.legend();
plt.show()

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        4972  2020-11-11 14:04  iris.csv
     文件        2940  2020-11-18 15:02  PCmean.py

评论

共有 条评论