2 2 2 特徵降維(主成分分析)

2021-09-12 04:01:27 字數 2339 閱讀 1600

import numpy as np

#初始化乙個2*2的線性相關矩陣

m=np.array([[1,2],[2,4]])

#計算2*2線性相關矩陣的秩

np.linalg.matrix_rank(m,tol=none)

import pandas as pd

#從網際網路讀入手寫體識別任務的訓練資料,儲存在變數digits_train中

digits_train=pd.read_csv('',header=none)

digits_test=pd.read_csv('',header=none)

#分割訓練資料的特徵向量和標記

x_digits=digits_train[np.arange(64)]

y_digits=digits_train[64]

#主成分分析

from sklearn.decomposition import pca

#初始化乙個可以將高緯度特徵向量(六十四維)壓縮至兩個維度的pca

estimator=pca(n_components=2)

x_pca=estimator.fit_transform(x_digits)

#顯示10類手寫數字經pca壓縮後的2維空間分布

from matplotlib import pyplot as plt

def plot_pca_scatter():

colors=['black','blue','purple','yellow','white','red','lime','cyan','orange','gray']

for i in range(len(colors)):

px=x_pca[:,0][y_digits.as_matrix()==i]

py=x_pca[:,1][y_digits.as_matrix()==i]

plt.scatter(px,py,c=colors[i])

plt.legend(np.arange(0,10).astype(str))

plt.xlabel('first principal component')

plt.ylabel('second principal component')

plt.show()

plot_pca_scatter()

#對訓練資料、測試資料進行特徵向量(畫素)與分類目標的分離

x_train=digits_train[np.arange(64)]

y_train=digits_train[64]

x_test=digits_test[np.arange(64)]

y_test=digits_test[64]

#匯入基於線性核的支援向量機分類器

from sklearn.svm import linearsvc

#使用支援向量機對六十四維度的訓練資料建模,並**

svc=linearsvc()

svc.fit(x_train,y_train)

y_predict=svc.predict(x_test)

#使用pca將原六十四維度的影象資料壓縮到20個維度

estimator=pca(n_components=20)

#利用訓練特徵決定(fit)20個正交維度的方向,並轉化(transform)原訓練特徵

pca_x_train=estimator.fit_transform(x_train)

#測試特徵也按照上述的20個正交維度方向進行轉化(transform)

pca_x_test=estimator.transform(x_test)

#使用預設配置初始化linearsvc,對壓縮後的二十維特徵的訓練資料進行建模,

#並在測試資料上**

pca_svc=linearsvc()

pca_svc.fit(pca_x_train,y_train)

pca_y_predict=pca_svc.predict(pca_x_test)

#不用模型的效能評估

from sklearn.metrics import classification_report

print('svc:',svc.score(x_test,y_test))

print(classification_report(y_test,y_predict,target_names=np.arange(10).astype(str)))

print('pca_svc:',pca_svc.score(pca_x_test,y_test))

print(classification_report(y_test,pca_y_predict,target_names=np.arange(10).astype(str)))

主成分分析 降維

import pandas as pd 引數初始化 inputfile data principal component.xls outputfile tmp dimention reducted.xls 降維後的資料 data pd.read excel inputfile,header none...

PCA主成分分析(降維)

opencv中使用 實現降維分類預處理 參考 降維 我的理解是,通過降維得到基本特徵可以加快學習演算法。並且由於降維後的資料本身就是正交的,和聚類一樣可以實現分類 識別問題。在自我學習中也可以採用大量無標註的影象,對這些影象降維分類,並結合部分編碼資料得到特徵。例如 將很2500張人臉資訊,通過25...

降維 PCA 主成分分析

其實早該整理一下pca了,怎奈一直沒有時間,可能是自己對時間沒有把握好吧,下面進入正題。所謂降維,就是降低資料的維數。在機器學習中尤其常見,之前做過對一幅提取小波特徵,對於一幅大小為800 600的,如果每個點提取五個尺度 八個方向的特徵,那麼每乙個畫素點提取40個特徵,那麼一副的話就是40 800...