class sklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001, covariance_estimator=None)
參數(shù) |
說明 |
solver |
使用的求解器廓俭。‘svd’(默認(rèn)):奇異值分解拦坠,不用計(jì)算協(xié)方差矩陣,因此該解決方案提倡在特征量較大時(shí)使用渐苏;‘lsqr’:最小二乘解呻畸,可與收縮或自定義協(xié)方差估計(jì)器結(jié)合使用翩蘸;‘eigen’:特征值分解,可與收縮或自定義協(xié)方差估計(jì)器結(jié)合使用变汪。 |
shrinkage |
縮放參數(shù)侠坎。None(默認(rèn)):無縮放;‘a(chǎn)uto’:使用Ledoit-Wolf引理來進(jìn)行自動(dòng)縮放裙盾;0和1之間的浮點(diǎn)數(shù)值:固定的縮放參數(shù)实胸。如果使用covariance_estimator,則應(yīng)該設(shè)置為None番官⊥郏縮放只在求解器設(shè)置為‘lsqr’和‘eigen’時(shí)才起作用。 |
priors |
類先驗(yàn)概率鲤拿。形狀為(1_class, 2_class, ..., n_class)的數(shù)組假褪,默認(rèn)為None。默認(rèn)情況下近顷,類比例是從訓(xùn)練數(shù)據(jù)推斷出來的生音。 |
n_components |
int宁否,用于降維的組件數(shù)量(<=min(n_class-1, n_features))。 默認(rèn)值為None缀遍。如果為None慕匠,則參數(shù)被設(shè)置為min(n_class-1, n_features)。該參數(shù)僅影響transform方法域醇。 |
store_covariance |
bool台谊,默認(rèn)為False。如果為True譬挚,則在求解器為‘svd’時(shí)顯式計(jì)算加權(quán)類內(nèi)協(xié)方差矩陣锅铅。始終為其他求解器計(jì)算和存儲矩陣。 |
tol |
float减宣,默認(rèn)為1.0e-4盐须。判斷X的奇異值是顯著性時(shí)的絕對閾值,用于估計(jì)X的秩漆腌。將丟棄奇異值為非顯著性的維度贼邓。僅當(dāng)求解器為‘svd’時(shí)才使用。 |
covariance_estimator |
協(xié)方差估計(jì)器闷尿,默認(rèn)為None塑径。如果不是 None,則使用covariance_estimator來估計(jì)協(xié)方差矩陣填具,而不是依賴于經(jīng)驗(yàn)協(xié)方差估計(jì)器(具有潛在的收縮)晓勇。對象應(yīng)具有fit方法和covariance_屬性,如sklearn.covariance中的估計(jì)器灌旧。如果為None,則收縮參數(shù)驅(qū)動(dòng)估計(jì)值绰筛。如果使用收縮枢泰,則應(yīng)將其設(shè)置為None。請注意铝噩,covariance_estimator僅適用于"lsqr"和"特征"求解器衡蚂。 |
屬性 |
說明 |
coef_ |
權(quán)重向量。形如(n_features,)或(n_classes, n_features)的數(shù)組骏庸。 |
intercept_ |
截距項(xiàng)毛甲。形如(n_classes,)的數(shù)組。 |
covariance_ |
加權(quán)類內(nèi)協(xié)方差矩陣具被。形如(n_features, n_features)的數(shù)組玻募。其對應(yīng),其中是類樣例的協(xié)方差一姿。使用(可能縮小的)協(xié)方差的偏倚估計(jì)器進(jìn)行估計(jì)七咧。如果求解器為‘svd’跃惫,則僅當(dāng)store_covariance為True時(shí)才存在。 |
explained_variance_ratio_ |
由每個(gè)選定組件解釋的方差百分比艾栋。形如(n_components,)的數(shù)組爆存。如果未設(shè)置n_components,則存儲所有組件蝗砾,且解釋方差的總和等于1.0先较。僅當(dāng)使用eigen或svd求解器時(shí)才可用。 |
means_ |
類間均值悼粮。形如(n_classes, n_features)的數(shù)組闲勺。 |
priors_ |
類先驗(yàn)(總和為1)。形如(n_classes,)的數(shù)組矮锈。 |
scalings_ |
在由類質(zhì)心所張成的空間中縮放特征霉翔。形如(rank, n_classes - 1)的數(shù)組。僅適用于使用‘svd‘或’eigen‘求解器時(shí)苞笨。 |
xbar_ |
總均值债朵。形如(n_features,)的數(shù)組。 |
classes_ |
唯一的類標(biāo)記瀑凝。形如(n_classes,)的數(shù)組序芦。 |
n_features_in_ |
在fit中看到的特征數(shù)量。int |
feature_names_in_ |
在fit中看到的特征名稱粤咪。形如(feature_names_in_,)谚中。僅當(dāng)X具有全部為字符串的特征名稱時(shí)才定義。 |
方法 |
說明 |
decision_function(X) |
應(yīng)用決定函數(shù)(decision function)到由樣例組成的數(shù)組X上寥枝。 |
fit(X, y) |
擬合線性判別分析模型宪塔。 |
fit_transform(X[, y]) |
擬合數(shù)據(jù),再將數(shù)據(jù)進(jìn)行變化囊拜。 |
get_params([deep]) |
獲取此估計(jì)器的參數(shù)某筐。 |
predict(X) |
預(yù)測X中樣本的類標(biāo)簽。 |
predict_log_proba(X) |
估計(jì)對數(shù)概率冠跷。 |
predict_proba(X) |
估計(jì)概率南誊。 |
score(X, y[, sample_weight]) |
返回給定測試數(shù)據(jù)和標(biāo)簽的平均精度。 |
set_params(**params) |
設(shè)置此估計(jì)器的參數(shù)蜜托。 |
transform(X) |
映射數(shù)據(jù)以最大化類分隔抄囚。| |
代碼
代碼展示了LDA被用作降維手段。
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
iris = datasets.load_iris()
X = iris.data
y = iris.target
target_names = iris.target_names
lda = LinearDiscriminantAnalysis(n_components=2)
X_r = lda.fit(X, y).transform(X)
colors = ["navy", "turquoise", "darkorange"]
plt.figure()
for color, i, target_name in zip(colors, [0, 1, 2], target_names):
plt.scatter(
X_r[y == i, 0], X_r[y == i, 1], alpha=0.8, color=color, label=target_name
)
plt.legend(loc="best", shadow=False, scatterpoints=1)
plt.title("LDA of IRIS dataset")
plt.show()
結(jié)果展示