sklearn.discriminant_analysis.LinearDiscriminantAnalysis 筆記


(2018第一篇隨筆)

承接上個博客,這次來讀sklearnpython代碼說明以及源碼

/*******************************************************代碼說明*************************************************************/

   

class sklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001)

[source code]

   

  • 類的參數

       

    Solver:string,可選

    有三種參數值:

    'svd':奇異值分解(默認設置)。不計算協方差矩陣,推薦在數據維數較大時使用

    'lsqr':最小平方解,可以進行shrinkage

    'eigen':特征值分解,可以進行shrinkage

       

    Shrinkage:string/float,可選

    收縮參數,有三種可能:

    None:不進行收縮(默認設置)

    'auto':根據Ledoit-Wolf lemma自動選擇收縮

    0-1之間的浮點數:固定的收縮參數

    (注意收縮只在'lsqr''eigen'時才有效)

       

    Priors:array數組(大小為類別數),可選。類先驗概率

       

    n_components:整形,可選

    維數約減的維數(<類別數-1)

       

    Store_covariance:bool,可選

    計算類協方差矩陣(默認為false),只用於'svd'的情況

       

    Tol:浮點數,可選(默認1.0e-4)

    秩估計的閾值在'svd'

       

  • 類的屬性

       

    Coef_:array數組,大小為(#features)或(#classes,#features)

    (多個)權值向量

       

    Intercept:array數組,大小(#features

    截距

       

    Covariance_:array-like? 大小(#features*#features

    所有類的協方差矩陣

       

    Explained_variance_ratio_:array數組,大小(n_components,

    每個選定components解釋的方差比。若n_components未設定,那么所有的components組件被存儲而且被解釋的方差之和為1。只在'svd'or'eigen'時可用

       

    Means_:arrray-like,大小(#類別,#特征)

    類均值

       

    Priors_:array-like,大小(#類別)

    類的先驗,和為1

       

    Scalings_:array-like,大小(rank秩,類別數-1

    由類質心張成空間中特征的規模scaling?

    (Scaling of the features in the space spanned by the class centroids.)

       

    Xbar_:array-like,大小(#features

    所有樣本的均值

       

    Classes_:array-like,大小(#classes

    唯一的類標

       

       

    Examples:

     

     1 >>> import numpy as np
     2 >>> from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
     3 >>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
     4 >>> y = np.array([1, 1, 1, 2, 2, 2])
     5 >>> clf = LinearDiscriminantAnalysis()
     6 >>> clf.fit(X, y)
     7 LinearDiscriminantAnalysis(n_components=None, priors=None, shrinkage=None,
     8 solver='svd', store_covariance=False, tol=0.0001)
     9 >>> print(clf.predict([[-0.8, -1]]))
    10 [1] 

     

     


       

       

  • 類的方法

       

decision_function(X)

預測樣本的置信度分數

fit(X, y)

根據給定的訓練數據和參數擬合線性判別分析模型

fit_transform(X[, y])

擬合數據,然后轉換

get_params([deep])

得到該估計器的參數

predict(X)

預測X的類標

predict_log_proba(X)

估計對數概率值

predict_proba(X)

估計概率

score(X, y[, sample_weight])

返回對於訓練集的平均分類准確率(給定類標)

set_params(**params)

給該估計器設置參數

transform(X)

投影數據使得最大化類間隔

   

__init__(solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001)[source]

該類的析構函數。設定參數的默認值

   

decision_function(X)[source]

樣本的置信度分數是該樣本到(分類)超平面的有符號距離

參數

X{array-like數組,稀疏矩陣},大小=(樣本數,特征維數)

樣本

返回值

數組;在兩類的情況下大小=(樣本數,)否則(樣本數,類別數)

返回的數組是對於每一個(樣本,類別)的置信度分數。在兩類的情況下,self.classes_[1]的置信度分數>0意味着這個類將被預測

  

   

fit(X, y)[source]

參數

Xarray-like數組,大小(樣本數,特征數)

訓練數據

Y:數組,大小(樣本數,)

目標值

   

fit_transform(X, y=None, **fit_params)[source]

Xy擬合轉換模型(可選參數fit_para),返回X的轉換后的版本

參數

X:ndarray,大小[樣本數,特征數]

訓練集

y:ndarray,大小[樣本數]

目標值

返回值

X_new:ndarray大小[樣本數,新的特征數]

轉換后的數組

   

get_params(deep=True)[source]

   

參數

Deep:布爾型,可選

若為真,將會返回該估計器的參數,而且包含子對象,子對象是估計器

返回值

Params:字符串到任何事的映射

應於他們的值的參數名

   

   

predict(X)[source]

參數

X{array-like數組,稀疏矩陣},大小=[樣本數,特征數]

樣本

返回值

C:數組,大小=[樣本數]

每個樣本的類標

   

predict_log_proba(X)[source]

參數

Xarray-like數組,大小=(樣本數,特征數)

輸入的數據

返回值

C:數組,大小=(樣本數,類別數)

估計的對數概率

   

predict_proba(X)[source]

   

參數

Xarray-like數組,大小=(樣本數,特征數)

輸入的數據

返回值

C:數組,大小=(樣本數,類別數)

估計的概率

   

score(X, y, sample_weight=None)[source]

在多類標分類問題中,這是一個苛刻度量標准的子集准確率,因為對於每個樣本你都要求標簽集被正確預測

參數

Xarray-like,大小=(樣本數,特征數)

測試樣本

yarray-like,大小=(樣本數)或(樣本數,n_outputs

X的真實類標

Sample_weight:array-like,大小=[樣本數],該參數可選

樣本的權值?

返回值

Score:浮點型

預測函數self.predict(X) wrt. y.的平均准確率

   

set_params(**params)[source]

該方法既工作於簡單的估計器,也在嵌套的對象(比如pipelines)。后者有參數,其形式:

<component>__<parameter>。他可能會更新嵌套對象的每個component

返回:self:

   

transform(X)[source]

參數值

Xarray-like,大小(樣本數,特征數)

輸入數據

返回值

X_new:array,大小(樣本數,n_components

轉換后的數據

   

   

下面是四個該算法的實例

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM