本文簡要介紹python語言中 sklearn.neighbors.NeighborhoodComponentsAnalysis 的用法。
用法:
class sklearn.neighbors.NeighborhoodComponentsAnalysis(n_components=None, *, init='auto', warm_start=False, max_iter=50, tol=1e-05, callback=None, verbose=0, random_state=None)鄰域成分分析。
鄰域成分分析 (NCA) 是一種用於度量學習的機器學習算法。它以有監督的方式學習線性變換,以提高變換空間中隨機最近鄰規則的分類精度。
在用戶指南中閱讀更多信息。
- n_components:整數,默認=無
 投影空間的首選維度。如果 None 它將被設置為
n_features。- init:{‘auto’, ‘pca’, ‘lda’, ‘identity’, ‘random’} 或形狀的ndarray(n_features_a,n_features_b),默認='auto'
 線性變換的初始化。可能的選項是
'auto'、'pca'、'lda'、'identity'、'random'和形狀為(n_features_a, n_features_b)的 numpy 數組。'auto'根據
n_components,將選擇最合理的初始化。如果n_components <= n_classes我們使用'lda',因為它使用標簽信息。如果不是,而是n_components < min(n_features, n_samples),我們使用'pca',因為它將數據投射到有意義的方向(那些具有較高方差的方向)。否則,我們隻使用'identity'。
'pca'傳遞給
fit的輸入的n_components主成分將用於初始化轉換。 (參見PCA)
'lda'min(n_components, n_classes)傳遞到fit的輸入中最具辨別力的組件將用於初始化轉換。 (如果n_components > n_classes,其餘組件將為零。)(參見LinearDiscriminantAnalysis)
'identity'如果
n_components嚴格小於傳遞給fit的輸入的維數,則單位矩陣將被截斷為前n_components行。
'random'初始轉換將是一個形狀為
(n_components, n_features)的隨機數組。每個值都是從標準正態分布中采樣的。
- numpy 數組
 n_features_b必須與傳遞給fit的輸入的維度匹配,並且 n_features_a 必須小於或等於該維度。如果n_components不是None,則n_features_a必須匹配。
- warm_start:布爾,默認=假
 如果之前調用過
True和fit,則使用之前調用fit的解作為初始線性變換(n_components和init將被忽略)。- max_iter:整數,默認=50
 優化中的最大迭代次數。
- tol:浮點數,默認=1e-5
 優化的收斂容差。
- callback:可調用,默認=無
 如果不是
None,則在優化器的每次迭代後調用此函數,將當前解(展平變換矩陣)和迭代次數作為參數。如果想要檢查或存儲每次迭代後發現的轉換,這可能很有用。- verbose:整數,默認=0
 如果為 0,則不會打印任何進度消息。如果為 1,進度消息將打印到標準輸出。如果 > 1,將打印進度消息,並將
scipy.optimize.minimize的disp參數設置為verbose - 2。- random_state:int 或 numpy.RandomState,默認=無
 偽隨機數生成器對象或其種子(如果是 int)。如果
init='random',random_state用於初始化隨機變換。如果init='pca'、random_state在初始化轉換時作為參數傳遞給 PCA。傳遞 int 以獲得跨多個函數調用的可重現結果。請參閱術語表。
- components_:ndarray 形狀(n_components,n_features)
 在擬合過程中學習的線性變換。
- n_features_in_:int
 擬合期間看到的特征數。
- n_iter_:int
 計算優化器執行的迭代次數。
- random_state_:numpy.RandomState
 初始化期間使用的偽隨機數生成器對象。
- feature_names_in_:ndarray 形狀(
n_features_in_,) 擬合期間看到的特征名稱。僅當
X具有全為字符串的函數名稱時才定義。
參數:
屬性:
參考:
- 1
 J. Goldberger、G. Hinton、S. Roweis、R. Salakhutdinov。 “Neighbourhood Components Analysis”。神經信息處理係統的進展。 17, 513-520, 2005。http://www.cs.nyu.edu/~roweis/papers/ncanips.pdf
- 2
 關於鄰域成分分析的維基百科條目https://en.wikipedia.org/wiki/Neighbourhood_components_analysis
例子:
>>> from sklearn.neighbors import NeighborhoodComponentsAnalysis >>> from sklearn.neighbors import KNeighborsClassifier >>> from sklearn.datasets import load_iris >>> from sklearn.model_selection import train_test_split >>> X, y = load_iris(return_X_y=True) >>> X_train, X_test, y_train, y_test = train_test_split(X, y, ... stratify=y, test_size=0.7, random_state=42) >>> nca = NeighborhoodComponentsAnalysis(random_state=42) >>> nca.fit(X_train, y_train) NeighborhoodComponentsAnalysis(...) >>> knn = KNeighborsClassifier(n_neighbors=3) >>> knn.fit(X_train, y_train) KNeighborsClassifier(...) >>> print(knn.score(X_test, y_test)) 0.933333... >>> knn.fit(nca.transform(X_train), y_train) KNeighborsClassifier(...) >>> print(knn.score(nca.transform(X_test), y_test)) 0.961904...
相關用法
- Python sklearn NearestNeighbors用法及代碼示例
 - Python sklearn NearestCentroid用法及代碼示例
 - Python sklearn NearestNeighbors.radius_neighbors用法及代碼示例
 - Python sklearn NearestNeighbors.kneighbors用法及代碼示例
 - Python sklearn NearestNeighbors.radius_neighbors_graph用法及代碼示例
 - Python sklearn NearestNeighbors.kneighbors_graph用法及代碼示例
 - Python sklearn NMF用法及代碼示例
 - Python sklearn Nystroem用法及代碼示例
 - Python sklearn Normalizer用法及代碼示例
 - Python sklearn NotFittedError用法及代碼示例
 - Python sklearn NuSVR用法及代碼示例
 - Python sklearn NuSVC用法及代碼示例
 - Python sklearn jaccard_score用法及代碼示例
 - Python sklearn WhiteKernel用法及代碼示例
 - Python sklearn CalibrationDisplay.from_predictions用法及代碼示例
 - Python sklearn VotingRegressor用法及代碼示例
 - Python sklearn gen_batches用法及代碼示例
 - Python sklearn ExpSineSquared用法及代碼示例
 - Python sklearn MDS用法及代碼示例
 - Python sklearn adjusted_rand_score用法及代碼示例
 - Python sklearn MLPClassifier用法及代碼示例
 - Python sklearn train_test_split用法及代碼示例
 - Python sklearn RandomTreesEmbedding用法及代碼示例
 - Python sklearn GradientBoostingRegressor用法及代碼示例
 - Python sklearn GridSearchCV用法及代碼示例
 
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.neighbors.NeighborhoodComponentsAnalysis。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
