日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

对pca降维后的手写体数字图片数据分类_python机器学习API介绍13: 数据降维及主成分分析...

發(fā)布時(shí)間:2024/4/11 python 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对pca降维后的手写体数字图片数据分类_python机器学习API介绍13: 数据降维及主成分分析... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)降維概述:數(shù)據(jù)降維是機(jī)器學(xué)習(xí)領(lǐng)域中重要的內(nèi)容,所謂的降維就是采用某種映射方法,將高維空間中的數(shù)據(jù)點(diǎn)映射到低維的空間中。其本質(zhì)是學(xué)習(xí)一個(gè)映射函數(shù)f: x->y。其中x是原始數(shù)據(jù)點(diǎn)的表述,目前多使用向量表達(dá)式;y是數(shù)據(jù)點(diǎn)映射后的低維向量表達(dá);通常y的維度小于x的維度。映射函數(shù)可能是顯示的或者是隱式的,可能是線(xiàn)性的也可能是非線(xiàn)性的。

目前大部分降維算法是處理向量表達(dá)的數(shù)據(jù),也有一些降維算法處理高階張量表達(dá)式數(shù)據(jù),之所以使用降維后的數(shù)據(jù)表示是因?yàn)樵谠嫉母呔S空間中,包含冗余信息以及噪聲信息,這些信息會(huì)對(duì)數(shù)據(jù)的預(yù)測(cè)產(chǎn)生誤差,降低了準(zhǔn)確率;通過(guò)降維,我們可以減少噪聲或冗余數(shù)據(jù)帶來(lái)的誤差,提高預(yù)測(cè)精度,同時(shí)還可以通過(guò)該方法來(lái)尋找數(shù)據(jù)內(nèi)部的本質(zhì)結(jié)構(gòu)。在很多算法中,降維算法成為了數(shù)據(jù)預(yù)處理的一部分,比如PCA算法(主成分分析)。

對(duì)于降維效果的評(píng)估,如果降維后性能有所提高,則說(shuō)明降維起到了效果,如果將數(shù)據(jù)降維到二維或者三維,則可以通過(guò)可視化技術(shù)來(lái)直觀地判斷降維的效果。

主成分分析(PCA):主成分分析是一種常用的降維方法,其模型的原型為:

class sklearn.decomposition.PCA(n_components=None, copy=True, whiten=False)

參數(shù)說(shuō)明:

n_components:一個(gè)整數(shù),指定降維后的維度(如果為None,則選擇它的值為min(n_samples, n_features)。如果為字符串‘mle’,則使用Minka's MLE算法來(lái)猜測(cè)降維后的維度。如果為大于0小于1的浮點(diǎn)數(shù),則指定的是降維后的維數(shù)占原始維數(shù)的百分比)。

copy:一個(gè)布爾值,如果為False,則直接使用原始數(shù)據(jù)來(lái)訓(xùn)練,結(jié)果會(huì)覆蓋原始數(shù)據(jù)所在的數(shù)組;如果為T(mén)rue,那么使用的是拷貝的數(shù)據(jù)來(lái)訓(xùn)練,結(jié)果不會(huì)覆蓋原始數(shù)據(jù)所在的數(shù)組。

whiten:一個(gè)布爾值,如果為T(mén)rue,則會(huì)將特征向量除以n_samples倍的特征值,從而保證非相關(guān)輸出的方差為1(該白化操作可能會(huì)丟失部分信息,但是有時(shí)候在接下來(lái)的機(jī)器學(xué)習(xí)階段能夠活的更好的性能)。

屬性說(shuō)明:

components_:主成分的數(shù)值

explained_variance_ratio_:一個(gè)數(shù)組,元素是每個(gè)主成分的explained variance的比例

mean_:一個(gè)數(shù)組,元素是每個(gè)特征的統(tǒng)計(jì)平均值

n_components_:一個(gè)整數(shù),指示主成分有多少個(gè)元素

方法說(shuō)明:

fit(x, y):訓(xùn)練模型。

transform(x):執(zhí)行降維

fit_transform(x, [, y]):訓(xùn)練模型并降維

inverse_transform(x):逆向操作,執(zhí)行升維,即將數(shù)據(jù)從低維空間逆向轉(zhuǎn)化成原始空間。

注意:

decomposition.PCA是基于scipy.linalg來(lái)實(shí)現(xiàn)的SVD分解,因此他不能應(yīng)用于稀疏矩陣,并且無(wú)法使用與大規(guī)模的數(shù)據(jù)集(因?yàn)樗笏械臄?shù)據(jù)一次加載進(jìn)內(nèi)存)。

實(shí)例說(shuō)明

from sklearn.decomposition import PCA

import numpy as np

import matplotlib.pyplot as plt

from sklearn.datasets import load_iris

#使用scikit-learn自帶的鳶尾花數(shù)據(jù)集

def load_data():

iris = load_iris()

return iris.data, iris.target

#注意:數(shù)據(jù)降維的話(huà),其實(shí)沒(méi)有一個(gè)好壞的標(biāo)準(zhǔn),所以這里只給出降維的一些結(jié)果即可視化之后的數(shù)據(jù)處理

def test_PCA(*data):

x, y = data

pca = PCA(n_components=None)

pca.fit(x)

print("explained variance ratio:{}".format(pca.explained_variance_ratio_))

x, y = load_data()

test_PCA(x, y)

#將數(shù)據(jù)集降到2維

def plot_PCA(*data):

x, y = data

pca = PCA(n_components=2)

pca.fit(x)

x_pca = pca.transform(x)

fig = plt.figure()

ax = fig.add_subplot(1,1,1)

colors = ((1,0,0),(0,1,0),(0,0,1),(0.5,0.5,0),(0.5,1,0.5),(0.1,1,0.9))

for label, color in zip(np.unique(y), colors):

position = y == label

ax.scatter(x_pca[position, 0], x_pca[position, 1], label="target=%d"%label, color=color)

#繪圖

ax.set_xlabel("x[0]")

ax.set_ylabel("y[0]")

ax.legend(loc="best")

ax.set_title("PCA decomposition")

plt.show()

x, y = load_data()

plot_PCA(x, y)

運(yùn)行后的對(duì)應(yīng)結(jié)果如下:

鳶尾花數(shù)據(jù)使用PCA降到二維后的結(jié)果

由上述運(yùn)行結(jié)果可知,這里運(yùn)行后的個(gè)數(shù)據(jù)點(diǎn)分類(lèi)0和1、2有明顯的分辨出來(lái),但是1和2則有部分?jǐn)?shù)據(jù)重合。

總結(jié)

以上是生活随笔為你收集整理的对pca降维后的手写体数字图片数据分类_python机器学习API介绍13: 数据降维及主成分分析...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。