本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。