05 04 scikit learn庫之主成分分析

2022-02-22 19:08:32 字數 2726 閱讀 2806

目錄二、kernelpca

三、incrementalpca

四、sparsepca

五、minibatchsparsepca

人工智慧從入門到放棄完整教程目錄:

pca在scikit-leran庫中的sklearn.decomposition包下,pca即最普通的pca,pca也有很多變種,我們主要會講解pca,然後聊一聊kernelpcaincremetalpcasparsepcaminibatchsparsepca

接下來將會討論上述五者的區別,由於是從官方文件翻譯而來,翻譯會略有偏頗,有興趣的也可以去scikit-learn官方文件檢視

pca是pca系列降維演算法中最原始的降維方法,因為原始,所以它一般是我們首選的,如果感覺原始的pca可能無法解決我們的問題,我們可以嘗試使用其他的pca系列的降維演算法。

import numpy as np

from sklearn.decomposition import pca

x = np.array([[-1, -1, 2], [-2, -1, 1], [-3, -2, 3],

[1, 1, 2], [2, 1, 2], [3, 2, 3]])

pca = pca(n_components=2)

pca.fit(x)

pca(copy=true, iterated_power='auto', n_components=2, random_state=none,

svd_solver='auto', tol=0.0, whiten=false)

print(pca.explained_variance_ratio_)
[0.92991028 0.06363895]
print(pca.singular_values_)
[6.311193   1.65102037]
pca = pca(n_components=2, svd_solver='full')

pca.fit(x)

pca(copy=true, iterated_power='auto', n_components=2, random_state=none,

svd_solver='full', tol=0.0, whiten=false)

print(pca.explained_variance_ratio_)
[0.92991028 0.06363895]
print(pca.singular_values_)
[6.311193   1.65102037]
pca = pca(n_components=1, svd_solver='arpack')

pca.fit(x)

pca(copy=true, iterated_power='auto', n_components=1, random_state=none,

svd_solver='arpack', tol=0.0, whiten=false)

print(pca.explained_variance_ratio_)
[0.92991028]
print(pca.singular_values_)
[6.311193]
設定乙個大於等於1且小於樣本特徵的整數。

設定\((0,1]\)內的數,指定主成分方差和所佔的最小比例閾值。

設定為'mle',即由模型通過mle演算法根據特徵的方差分布情況自己選擇。

'auto':pca自動權衡下面三種實現方式。

'full':傳統的svd,使用scipy庫實現。

'arpack':適用於資料量大,資料維度多,同時主成分數目比例較低的pca降維,使用scipy庫實現。

'randomized':適用於資料量大,資料維度多,同時主成分數目比例較低的pca降維,使用scikit-learn實現。

kernelpca模型類似於非線性支援向量機,使用核技巧處理非線性資料的降維,主要是選擇合適的核函式。

incrementalpca模型主要是為了解決計算機記憶體限制問題。工業上樣本量和維度都是非常大的,如果直接擬合資料,機器效能一般都無法支撐。incrementalpca則會將資料分成多個batch,然後對每個batch依次遞增呼叫partial_fit函式對樣本降維。

sparsepca模型相較於普通的pca區別在於使用了l1正則化,即對非主成分的影響降為0,避免了雜訊對降維的影響。

minibatchsparsepca模型類似於sparsepca,不同之處在於minibatchsparsepca模型通過使用一部分樣本特徵和給定的迭代次數進行降維,以此來解決特徵分解過慢的問題。

05 04 變數作用域

變數作用域 變數能夠使用的區域範圍 使用declare關鍵字宣告 在結構體內 函式 儲存過程 觸發器 而且只能在結構體內部使用。declare關鍵字宣告的變數沒有任何符號修飾,就是普通字串,如果在外部訪問該變數,系統會自動認為是字段 使用者定義的使用 符號定義的變數,使用set關鍵字 會話作用域 在...

演算法訓練 P0504

題目鏈結 anagrams指的是具有如下特性的兩個單詞 在這兩個單詞當中,每乙個英文本母 不區分大小寫 所出現的次數都是相同的。例如,unclear和nuclear rimon和minor都是anagrams。編寫乙個程式,輸入兩個單詞 只包含英文本母 然後判斷一下,這兩個單詞是否是anagrams...

線性回歸 scikit learn

線性回歸即是我們希望能通過學習來得到乙個各屬性線性組合的函式,函式的各項係數表明了該屬性對於最後結果的重要性,可以用以下公式表達 y x 1 x1 2x2 pxp b線性回歸試圖讓各個點到回歸直線上的距離和最小,即最小化均方誤差。可用以下公式描述 min x y 22 matplotlib inli...