摘要:例計算的特征值和特征向量的特征值的特征向量計算的特征值和特征向量的特征值的特征向量運行結果的特征值的特征向量的特征值的特征向量例數據的變換為平均分散的數據利用利用個主成分軸轉換為二維數據的數據類型名稱按類別指定的顏
?
?? 例1:
import numpy as npA = np.array([[2, 3], [3, -6]])w1, V1 = np.linalg.eig(A) # 計算A的特征值和特征向量print("A的特征值: = ", w1)print("A的特征向量: = ", V1)B = np.array([[5,2,0], [2,5,0], [-3,4,6]])w2, V2 = np.linalg.eig(B) # 計算B的特征值和特征向量print("/n");print("B的特征值 = ", w2)print("B的特征向量 = ", V2)
? 運行結果:
A的特征值: = ?[ 3. -7.]
A的特征向量: = ?[[ 0.9486833 ?-0.31622777]
?[ 0.31622777 ?0.9486833 ]]
B的特征值 = ?[6. 7. 3.]
B的特征向量 = ?[[ 0. ? ? ? ? ?0.57735027 ?0.36650833]
?[ 0. ? ? ? ? ?0.57735027 -0.36650833]
?[ 1. ? ? ? ? ?0.57735027 ?0.85518611]]
? 例2:
url:https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data
import numpy as npimport matplotlib.pyplot as pltfrom sklearn.decomposition import PCAimport pandas as pdfrom sklearn.preprocessing import StandardScaler# iris 數據的 URLurl = "xxx"# Pandas DataFramedf = pd.read_csv(url, names=["sepal length","sepal width","petal length","petal width","target"])nrow, ncol = df.shapeprint("Iris data set :", nrow, "records with", ncol, "attributes/n")print("First 5 records in iris data/n", df.head(5))features = ["sepal length", "sepal width", "petal length", "petal width"]x = df.loc[:, features].valuesy = df.loc[:,["target"]].valuesx = StandardScaler().fit_transform(x) # 變換為 平均0, 分散1 的數據pca = PCA(n_components=2) # 利用 PCAprincipalComponents = pca.fit_transform(x)# 利用2個主成分軸轉換為二維數據print("/nFirst principal axis:", pca.components_[0])print("Second principal axis:", pca.components_[1])principalDf = pd.DataFrame(data = principalComponents, columns = ["principal component 1", "principal component 2"])finalDf = pd.concat([principalDf, df[["target"]]], axis = 1)print("/nFirst 5 Transformed records/n", finalDf.head(5))fig = plt.figure(figsize = (8,8))ax = fig.add_subplot(1,1,1)ax.set_xlabel("principal component 1", fontsize = 12)ax.set_ylabel("principal component 2", fontsize = 12)ax.set_title("PCA with 2 components", fontsize = 15)targets = ["Iris-setosa", "Iris-versicolor", "Iris-virginica"] # iris的數據類型名稱colors = ["r", "g", "b"] # 按類別指定的顏色for target, color in zip(targets,colors): indicesToKeep = finalDf["target"] == target ax.scatter(finalDf.loc[indicesToKeep, "principal component 1"] , finalDf.loc[indicesToKeep, "principal component 2"], c = color, s = 40)ax.legend(targets)ax.grid()fig.show()
?? 運行結果:
--- A --- 1.00 0.00 0.00 0.00 0.00 1.00 0.00 0.00 0.00 0.00 1.00 0.00 0.00 0.00 0.00 1.00 rank(A) = 4 --- B --- 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
rank(B) = 0 --- C --- 2.00 5.00 -3.00 -4.00 8.00 4.00 7.00 -4.00 -3.00 9.00 6.00 9.00 -5.00 2.00 4.00 0.00 -9.00 6.00 5.00 -6.00
rank(C) = 3 --- C^T --- 2.00 4.00 6.00 0.00 5.00 7.00 9.00 -9.00 -3.00 -4.00 -5.00 6.00 -4.00 -3.00 2.00 5.00 8.00 9.00 4.00 -6.00
rank(C^T) = 3
參考文獻
Introduction to Linear Algebra, International 4 th Edition by Gilbert Strang, Wellesley Cambridge Press.
百度百科[EB/OL]. []. https://baike.baidu.com/
本篇完。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125084.html
摘要:提到線性代數,又不得不吐槽國內教材了,學起來真的是實力勸退。線性代數概念較多,計劃在另一篇總結基本概念,這里僅總結線性代數里一些重要概念的程序。 提到線性代數,又不...
大家都知道,最近人工智能是比較火熱的,那么,人工智能主要應用的就是機器學習,但是機器學習對其要求還是比較高的。在使用機器學習處理數據的時候,會經常性的用到One-Hot代碼,下面小編就具體給大家介紹下這種編碼的實現方式?! ?.為什么使用one-hot編碼? 在人工智能算法中,大家難免會遇到歸類基本特征,比如說:人的性別有男人女人,國家有日本,韓國,朝鮮等。這類特征值并不是連續不斷的,反而是...
閱讀 3346·2021-11-25 09:43
閱讀 3133·2021-10-11 10:58
閱讀 2734·2021-09-27 13:59
閱讀 3073·2021-09-24 09:55
閱讀 2165·2019-08-30 15:52
閱讀 1826·2019-08-30 14:03
閱讀 2256·2019-08-30 11:11
閱讀 2020·2019-08-28 18:12