1. 程式人生 > >scikit-learn 術語與規範

scikit-learn 術語與規範

通用術語和API元素詞彙表
本詞彙表希望明確地代表Scikit-learn及其API中應用的預設和明確的約定,同時為使用者和貢獻者提供參考。它旨在描述概念,並詳細說明其相應的API或連結到文件的其他相關部分。通過連結API參考和使用者指南中的詞彙表條目,我們可以最大限度地減少冗餘和不一致。

我們首先列出一般概念(以及任何其他地方不適合的概念),但下面列出了更具體的相關術語集: 類API和估算器型別,目標型別, 方法,引數, 屬性,資料和樣本屬性。

一般概念
1D
1d陣列
一維陣列。NumPy陣列,其.shape長度為1.向量。
2D
2d陣列
二維陣列。NumPy陣列,其.shape長度為2.通常表示矩陣。
API
指Scikit-learn中實現的估計器的特定介面和本術語表中描述的各種估計器的通用約定,並在貢獻者文件中進行了概述。

構成Scikit-learn的公共API的特定介面主要在API Reference中記錄。但是,如果沒有訪問它所需的識別符號,我們就不會正式將任何內容視為公共API _。我們通常會嘗試維護公共API中所有物件的向後相容性。

私有API,包括開始的功能,模組和方法_ ,不能保證穩定。

陣列
用於輸入 Scikit-learn估計器和函式的最常見資料格式,類似於陣列的任何型別物件, numpy.asarray它將生成適當形狀(通常為1或2維)適當dtype(通常為數字)的陣列。

這包括:

一個numpy陣列
一個數字列表
一些固定長度為k的長度為k的列表
a pandas.DataFrame,所有列都是數字
一個數字 pandas.Series
它不包括:

一個稀疏矩陣
迭代器
發電機
需要注意的是輸出從scikit學習估計和功能(例如預測)一般應陣列或稀疏矩陣,或它們的列表(如在多輸出tree.DecisionTreeClassifier的 predict_proba)。predict()返回列表或pandas.Series的估算器無效。

屬性
屬性
我們主要使用屬性來指代在擬合期間如何將模型資訊儲存在估計器中。儲存在估算器例項上的任何公共屬性都需要以字母字元開頭,如果在fit或 partial_fit中設定,則以單個下劃線結尾。這些是在估算器的 屬性文件中記錄的內容。儲存在屬性中的資訊通常是:用於預測或轉換的足夠統計資料; 轉換輸出,如labels_或 embedding_ ; 或診斷資料,例如 feature_importances_。常見屬性如下所示。

公共屬性可以與建構函式引數具有相同的名稱 ,並_附加。這用於儲存使用者輸入的驗證或估計版本。例如, decomposition.PCA用n_components 引數構造。由此,PCA與其他引數和資料一起估計屬性n_components_。

預測/轉換等中使用的其他私有屬性。也可以在安裝時設定。它們以單個下劃線開頭,並且不能保證對公共訪問穩定。

估計器例項上的公共屬性不以下劃線結尾,應該是同名__init__ 引數的儲存的未修改值。由於這種等價性,這些都記錄在估算器的引數文件中。

向後相容性
我們通常會嘗試從發行版到發行版保持向後相容性(即介面和行為可以擴充套件但不能更改或刪除),但這有一些例外:

僅限公共API
通過私有識別符號(那些開始_)訪問的物件的行為可以在版本之間任意改變。
記錄在案
我們通常會假設使用者已遵守記錄的引數型別和範圍。如果文件要求列表並且使用者給出了元組,我們不保證從版本到版本的一致行為。
棄用
行為可能會在棄用期後發生變化(通常為兩個版本)。警告是使用Python的warnings模組發出的 。
關鍵字引數
我們有時可能會假設所有可選引數(X和y除了擬合和類似方法)僅作為關鍵字引數傳遞,並且可以在位置上重新排序。
錯誤修復和增強功能
錯誤修復和 - 通常 - 增強可能會改變估計器的行為,包括對在相同資料和random_state上訓練的估計器的預測。發生這種情況時,我們會嘗試在更改日誌中清楚地註明。
序列化
我們不保證在一個版本中醃製估算器將允許在隨後的版本中將其取消為等效模型。(對於sklearn軟體包中的估算器,我們會在嘗試進行此類拆除時發出警告,即使它可能正常工作。)請參閱安全性和可維護性限制。
utils.estimator_checks.check_estimator
我們為估算器檢查提供有限的向後相容性保證:我們可能會對使用此功能測試的估算器新增額外要求,通常是在非正式假設但未經過正式測試的情況下。
儘管與我們的使用者簽訂了非正式合同,但軟體按照許可證中的規定按原樣提供。當版本無意中引入了不向後相容的更改時,這些更改稱為軟體迴歸。

可呼叫的
實現該__call__ 方法的函式,類或物件; 在callable()的引數時返回True的任何內容。
分類特徵
分類或名義特徵是在整個資料群中具有有限的離散值集的特徵。這些通常表示為整數或字串列。字串將被大多數scikit-learn估計器拒絕,整數將被視為序數或計數值。對於大多數估算器的使用,分類變數應該是單熱編碼的。值得注意的例外包括基於樹的模型,如隨機森林和梯度增強模型,這些模型通常使用整數編碼的分類變數更好,更快。 OrdinalEncoder幫助將字串值分類特徵編碼為序數整數, OneHotEncoder並可用於單熱編碼分類特徵。另請參閱編碼分類功能和 http://contrib.scikit-learn.org/categorical-encoding包,用於與分類功能編碼相關的工具
克隆
克隆
要複製估算器例項並建立一個具有相同引數但沒有任何擬合 屬性的新例項,請使用clone。

在fit呼叫時,元估計器通常在擬合克隆例項之前克隆包裝的估計器例項。(例外,由於遺留原因,包括 Pipeline和 FeatureUnion。)

常見測試
這是指在Scikit中幾乎每個估算器類上執行的測試 - 學習檢查它們是否符合基本的API約定。它們可供外部使用 utils.estimator_checks.check_estimator,大部分實施都在sklearn/utils/estimator_checks.py。

注意:常見測試機制的一些例外目前已硬編碼到庫中,但我們希望通過使用語義估計器標記在估計器上標記異常行為來替換它。

棄用
我們使用棄用來慢慢違反我們的向後相容性保證,通常是為了:

更改引數的預設值; 要麼
刪除引數,屬性,方法,類等。
我們通常會在使用不推薦使用的元素時發出警告,儘管可能存在限制。例如,當有人設定已棄用的引數時,我們會發出警告,但是當他們訪問估算器例項上的引數屬性時,可能不會發出警告。

請參閱“ 貢獻者指南”。

維度
可用於指代特徵數(即 n_features)或二維特徵矩陣中的列。但是,尺寸也用於表示NumPy陣列形狀的長度,區分1d陣列和2d矩陣。
文件字串
模組,類,函式等的嵌入式文件,通常在程式碼中作為物件定義開頭的字串,並可作為物件的__doc__屬性訪問。

我們嘗試遵循PEP257,並遵循NumpyDoc約定。

雙下劃線
雙下劃線表示法
為巢狀估算器指定引數名稱時,__可以在某些上下文中用於分隔父級和子級。最常見的用途是通過帶有set_params的元估計器設定引數 ,從而在引數搜尋中指定搜尋網格 。參見引數。它還pipeline.Pipeline.fit用於將樣本屬性傳遞 給fit管道中的估計器方法。
D型
資料型別
NumPy陣列始終採用同類資料型別,可在.dtype陣列(或稀疏矩陣)的屬性中使用。我們通常假設scikit-learn資料的簡單資料型別:float或integer。在編碼或向量化之前,我們可能支援陣列的物件或字串數​​據型別。例如,我們的估算器不適用於struct陣列。

TODO:提到效率和精度問題; 施法政策。

鴨子打字
我們嘗試應用duck型別來確定如何處理某些輸入值(例如,檢查給定的估計器是否是分類器)。也就是說,我們isinstance儘可能避免使用,並依賴屬性的存在與否來確定物件的行為。遵循此方法需要一些細微差別:

對於某些估算器,只有在安裝後才能使用屬性 。例如,我們不能先驗地確定 predict_proba是否在網格搜尋中可用,其中網格包括在管道的最後步驟中在概率預測器和非概率預測器之間交替。在下文中,我們只能確定clf在將其擬合到某些資料後是否具有概率性:

從 sklearn.model_selection 進口 GridSearchCV
從sklearn.linear_model 進口SGDClassifier CLF = GridSearchCV (SGDClassifier (),param_grid = { '損失' :[ '登入' ,'鉸鏈' ]})

這意味著我們只能在擬合後檢查鴨類屬性,並且我們必須小心使元估計器 僅在擬合後根據基礎估計器的狀態呈現屬性。

檢查屬性是否存在(使用hasattr)通常與獲取屬性(getattr或點表示法)一樣昂貴。在某些情況下,獲取屬性可能確實很昂貴(例如,對於feature_importances_的某些實現 ,這可能表明這是API設計缺陷)。因此應該避免使用hasattr後面的程式碼getattr; getattr在try-except塊中是首選。

為了確定估算器對某些功能的期望或支援的某些方面,我們使用估算器標籤而不是鴨子型別。

提前停止
這包括在訓練損失收斂之前停止迭代優化方法,以避免過度擬合。這通常通過監視驗證集上的泛化分數來完成。可用時,通過引數early_stopping或設定正n_iter_no_change啟用它 。
估算器例項
我們有時使用這個術語來區分估計 類和構造的例項。例如,在下文中, cls是估計器的類,而est1且est2是例項:

cls = RandomForestClassifier
est1 = cls ()
est2 = RandomForestClassifier ()
例子
我們嘗試給出API中大多數函式和類的基本用法示例:

作為docstrings中的doctests(即在sklearn/庫程式碼本身內)。
作為示例庫中的示例 (使用sphinx-gallery)從examples/目錄中的指令碼中進行 示例,舉例說明估算器/函式的關鍵功能或引數。這些也應該從使用者指南中引用。
有時在使用者指南(內建doc/)和估算器的技術說明中。
評價指標
評估指標
評估指標可以衡量模型的執行情況。我們可以特別使用這個術語來指代metrics (忽略metrics.pairwise)中的函式,這與交叉驗證中使用的 得分方法和評分 API不同。參見模型評估:量化預測的質量。

這些函式通常接受基礎事實(或度量評估聚類而沒有基本事實的原始資料)和預測,無論是predict(y_pred),predict_proba(y_proba)的輸出,還是包括decision_function(y_score)的任意分數函式的輸出。。_score如果較高的分數表示更好的模型,並且_loss較小的分數表示更好的模型,則通常將函式命名為結束。這種多樣化的介面激發了評分API。

請注意,某些估算工具可以計算未包含在內的指標,metrics並且是特定於估算工具的指標,尤其是模型可能性。

估算器標籤
提議的特徵(例如#8022),通過該特徵通過一組語義標籤來描述估計器的能力。這將啟用基於估計器檢查的一些執行時行為,但它也允許每個估計器測試適當的不變性,同時從其他常見測試中排除。

估計器標籤的某些方面目前通過類似方法的鴨子型別predict_proba以及估算器物件上的一些特殊屬性來確定:

_estimator_type
這個字串值屬性將估計器標識為分類器,迴歸器等。它由mixins設定,例如 base.ClassifierMixin,但需要在元估計器上更明確地採用。它的值通常應該通過幫助器來檢查,例如base.is_classifier。
_pairwise
此布林屬性指示X傳遞給的data() fit和類似方法是否包含對樣本的成對度量,而不是每個樣本的特徵表示。通常情況True下,估算器具有值為“預計算” 的metricor affinity或kernel引數。其主要目的是當元估計器 提取用於成對估計器的資料的子樣本時,需要在兩個軸上索引資料,而其他資料僅在第一軸上索引。
功能
功能
特徵向量
在摘要中,特徵是將取樣物件對映到數字或分類數量的函式(在其數學意義上)。“特徵”也常用於指代這些量,是表示樣本的向量的各個元素。在資料矩陣中,要素表示為列:每列包含將要素函式應用於一組樣本的結果。

其他功能稱為屬性,預測變數,迴歸量或自變數。

幾乎所有scikit-learn中的估計都假設特徵是數字的,有限的而不是缺失的,即使它們具有語義上不同的域和分佈(分類,序數,計數值,實值,間隔)。另請參見分類功能和 缺失值。

n_features 表示資料集中的要素數。

擬合
在估算器上呼叫fit(或fit_transform,fit_predict等)。
擬合
擬合後估算器的狀態。

沒有傳統的程式來檢查是否安裝了估算器。但是,一個不適合的估算器:

exceptions.NotFittedError當呼叫預測方法(預測,變換等)時應該提高。(utils.validation.check_is_fitted在內部用於此目的。)
不應該有任何以字母字元開頭並以下劃線結尾的屬性。(注意,屬性的描述符可能仍然存在於類中,但hasattr應該返回False)
功能
我們為許多演算法提供ad hoc函式介面,而 估計器類提供更一致的介面。

特別是,Scikit-learn可以提供一個函式介面,使模型適合某些資料並返回學習的模型引數,如 linear_model.enet_path。對於轉換模型,這也返回嵌入或簇標籤,如 manifold.spectral_embedding或cluster.dbscan。許多預處理變換器還提供了一個函式介面,類似於呼叫fit_transform,如 preprocessing.maxabs_scale。使用這些等效函式時, 使用者應小心避免 資料洩漏fit_transform。

我們沒有關於何時或何時不提供估計器的函式形式的嚴格策略,但維護者應該考慮與現有介面的一致性,以及提供函式是否會導致使用者誤入最佳實踐(關於資料洩漏等)

畫廊
見例子。
超引數
超引數
參見引數。
估算
估算
大多數機器學習演算法要求其輸入沒有 缺失值,並且如果違反此要求將無法工作。試圖填充(或估算)缺失值的演算法稱為插補演算法。
可索引的
一個陣列狀,稀疏矩陣,熊貓資料幀或序列(通常是列表)。
歸納
歸納
歸納(與轉換對比)機器學習構建了一些資料模型,然後可以應用於新例項。Scikit-learn中的大多數估計都是歸納的,具有預測 和/或變換方法。
JOBLIB
Scikit中使用的Python庫(http://joblib.readthedocs.io) - 學習簡化並行和快取。Joblib旨在有效地處理numpy陣列,例如通過使用 記憶體對映。有關更多資訊,請參閱並行和分散式計算
標籤指示矩陣
多標籤指標矩陣
多標記指標矩陣
用於表示多標記資料的格式,其中2d陣列或稀疏矩陣的每一行對應於一個樣本,每列對應一個類,如果樣本用類標記,則每個元素為1,否則為0。
洩漏
資料洩漏
交叉驗證中的問題,其中泛化效能可能被高估,因為測試資料的知識無意中包括在訓練模型中。例如,當將變換器應用於整個資料集而不是交叉驗證拆分中的每個訓練部分時,這是一種風險。

我們的目標是提供保護使用者免受資料洩漏的介面(例如pipeline和 model_selection)。

memmapping
記憶圖
記憶體對映
一種記憶體效率策略,可將資料儲存在磁碟上,而不是將其複製到主記憶體中。可以使用可以讀取,寫入或兩者的陣列建立儲存器對映numpy.memmap。當使用joblib並行化Scikit-learn中的操作時,它可以自動memmap大型陣列,以減少多處理中的記憶體重複開銷。
缺失值
大多數Scikit-learn估算器不適用於缺失值。當它們(例如,在impute.SimpleImputer)時,NaN是浮點陣列中缺失值的首選表示。如果陣列具有整數dtype,則無法表示NaN。因此,我們支援在整數空間中執行插補或學習missing_values時指定另一個值。 未標記的資料 是目標中缺失值的特殊情況。
n_features
功能的數量。
n_outputs
的數量輸出在目標。
n_samples
樣本數量。
n_targets
n_outputs的同義詞。
敘事文件
敘事檔案
使用者指南的別名,即寫入的文件doc/modules/。與通過文件字串提供的API參考不同,使用者指南旨在:

Scikit提供的小組工具 - 按主題或用法學習;
激勵為什麼有人會使用每種特定的工具,通常是通過比較;
提供工具的直觀和技術描述;
提供或連結到使用工具的關鍵功能的示例。
NP
由於傳統的進口宣告,Numpy的簡寫:

匯入 numpy 為 np
線上學習
通過在對相應批次的資料進行預測之後立即接收每批地面實況目標來迭代更新模型。從本質上講,該模型必須可用於每批後的預測。見partial_fit。
核心外的
一種效率策略,通常通過對批量資料進行學習,而不是所有資料一次儲存在主儲存器中。見 partial_fit。
輸出
目標中每個樣本的單個標量/分類變數 。例如,在多標籤分類中,每個可能的標籤對應於二進位制輸出。也稱為響應, 任務或目標。請參閱多類多輸出和連續多輸出。

長度為2的元組。
引數
引數
引數
引數
我們主要使用引數來指代可以在其構造中指定的估計器的方面。例如,max_depth並且 random_state是引數RandomForestClassifier。估計器建構函式的引數未經修改地儲存為估計器例項上的屬性,並且通常以字母字元開頭並以字母數字字元結尾。每個估算器的建構函式引數都在估算器的docstring中描述。

我們不使用統計意義上的引數,其中引數是指定模型的值並且可以從資料估計。我們所謂的引數可能是統計學家將超引數稱為模型的方面:配置模型結構的方面通常不是直接從資料中學習的。但是,我們的引數也用於規定不影響學習模型的建模操作,例如用於控制並行性的n_jobs。

在討論元估計器的引數時,我們還可以包括由元估計器包裝的估計器的引數。通常,這些巢狀引數通過使用雙下劃線(__)來表示,以在estimator-as-parameter和其引數之間進行分隔。因此 具有值的深度引數,可以使用或 訪問。clf = BaggingClassifier(base_estimator=DecisionTreeClassifier(max_depth=3))base_estimator__max_depth3clf.base_estimator.max_depthclf.get_params()['base_estimator__max_depth']

可以使用其get_params方法從估計器例項中檢索引數列表及其當前值。

在構造和擬合之間,可以使用set_params修改引數 。要啟用此功能,在構造估算器或設定每個引數時,通常不會驗證或更改引數。呼叫fit時執行引數驗證。

常見引數如下所列。

成對度量
成對度量
從廣義上講,成對度量定義了用於測量兩個樣本之間的相似性或不相似性的函式(每個樣本通常表示為特徵向量)。我們特別提供了距離度量(以及不正確度量,如餘弦距離)metrics.pairwise_distances以及核心函式(相似函式的約束類)的實現 metrics.pairwise_kernels。這些可以計算對稱的成對距離矩陣,因此冗餘地儲存資料。

另請參閱預先計算和指標。

請注意,對於大多數距離指標,我們依賴於實現 scipy.spatial.distance,但可能會重新實現我們上下文中的效率。該neighbors模組還複製了一些度量實現,以便與高效的二叉樹搜尋資料結構整合。

PD
由於傳統的進口宣告,熊貓的簡寫:

將 pandas 匯入為 pd
預先計算的
如果演算法依賴於成對度量,並且可以僅從成對度量計算,我們通常允許使用者指定所提供的X已經在成對(dis)相似性空間中,而不是在特徵空間中。也就是說,當傳遞到 擬合時,它是方形的對稱矩陣,每個向量指示(dis)與每個樣本的相似性,並且當傳遞給預測/變換方法時,每行對應於測試樣本並且每列對應於訓練樣品。

預先計算的X的使用通常是通過設定一個指示metric, affinity或kernel引數為“預先計算”的字串。如果是這種情況,估算人員應將自己標記為_pairwise。

矩形
可以表示為具有第一軸上的樣本和第二軸上的固定的有限特徵集的矩陣的資料被稱為矩形。

該術語排除具有非向量結構的樣本,例如文字,任意大小的影象,任意長度的時間序列,一組向量等。向量化器的目的是產生這種資料的矩形形式。

樣品
樣品
我們通常使用該術語作為名詞來表示單個特徵向量。在其他地方,樣本稱為例項,資料點或觀察。 n_samples表示資料集中的樣本數,即資料陣列X中的行數。
樣本屬性
樣本屬性
樣本屬性是傳遞給估計器方法或類似函式的每個樣本(例如,長度n_samples的陣列)的資料,與特徵(X)和 目標(y)不同但不同。最突出的例子是 sample_weight ; 在資料和樣本屬性中檢視其他人。

從版本0.19開始,雖然經常使用引數,但我們沒有一致的方法來處理元估計器中的樣本屬性及其路由fit_params。

scikit學習-的contrib
釋出Scikit-learn相容庫的場所,這些庫由核心開發人員和貢獻社群廣泛授權,但不由核心開發人員團隊維護。見http://scikit-learn-contrib.github.io。
半監督
半監督學習
半監督
瞭解預期預測(標籤或地面實況)僅適用於在擬合模型時作為訓練資料提供的某些樣本 。我們通常將標籤-1 應用於半監督分類中的未標記樣本。
稀疏矩陣
二維數值資料的表示,其對應的密集numpy陣列具有更高的記憶體效率,其中幾乎所有元素都為零。我們使用scipy.sparse框架,它提供了幾種基礎稀疏資料表示或格式。對於特定任務,某些格式比其他格式更有效,並且當特定格式提供特殊益處時,我們嘗試在Scikit-learn引數描述中記錄此事實。

一些稀疏矩陣格式(特別是CSR,CSC,COO和LIL)區分隱式和顯式零。data在資料結構中儲存顯式零(即它們消耗陣列中的儲存器),而隱式零對應於未在顯式儲存中另外定義的每個元素。

在Scikit-learn中使用稀疏矩陣的兩個語義:

矩陣語義
稀疏矩陣被解釋為具有隱式和顯式零的陣列,其被解釋為數字0.這是最常採用的解釋,例如當稀疏矩陣用於特徵矩陣或多標記指示符矩陣時。
圖語義
與此同樣scipy.sparse.csgraph,顯式零被解釋為數字0,但隱式零表示遮蔽或缺少值,例如圖形的兩個頂點之間沒有邊緣,其中顯式值表示邊緣的權重。採用該解釋來表示聚類中的連通性,最近鄰域的表示(例如neighbors.kneighbors_graph),以及預計算距離表示,其中僅需要每個點附近的距離。
在處理稀疏矩陣時,我們假設它是稀疏的,並且避免編寫使使用者提供的稀疏矩陣變得密集的程式碼,而是在不可能的情況下保持稀疏性或引發錯誤(即,如果估算器不支援/不支援稀疏矩陣)。

監督
監督學習
在擬合模型時,學習每個樣本的預期預測(標籤或基礎事實)的位置,以 y表示。這是在其他估算器中的分類器或 迴歸器中採用的方法。
目標
目標
所述因變數在監督(和 半監督)的學習,它被傳遞ÿ到一個估計的 擬合方法。也稱為因變數,結果變數,響應變數,基礎事實或標籤。Scikit-learn適用於具有最小結構的目標:來自有限集的類,有限實值數,多個類或多個數。請參閱目標型別。
轉導
轉導
轉換(與感應對比)機器學習方法被設計用於對特定資料集建模,但不將該模型應用於看不見的資料。例項包括manifold.TSNE, cluster.AgglomerativeClustering和 neighbors.LocalOutlierFactor。
未標記的
未標記的資料
裝配時具有未知真實性的樣品; 等效, 遺漏值的目標。另見 半監督和無監督學習。
無人監督
無監督學習
學習擬合模型時每個樣本無法獲得預期預測(標籤或基礎事實)的位置,如 聚類器和異常檢測器。無監督的估計者忽略任何傳遞給適合的y。
類API和估算器型別
分類器
分類器
甲監督(或半監督)預測器 具有有限組離散可能輸出值的。

分類器支援對二進位制, 多類,多標記或多類多輸出目標進行建模。在scikit-learn中,所有分類器都支援多類分類,預設使用one-vs-rest策略而不是二元分類問題。

分類器必須在擬合後儲存classes_屬性,並且通常繼承自base.ClassifierMixin設定其_estimator_type屬性的類。

分類器可以與其他估計器區分開來 is_classifier。

分類器必須實現:

適合
預測
得分了
實現decision_function, predict_proba和predict_log_proba也可能是合適的。

人聚類
聚類
甲無監督 預測器具有有限組離散的輸出值的。

群集器通常在擬合後儲存標籤_,如果它是轉換的,則必須這樣做。

群集必須實現:

適合
如果轉換,fit_predict
預測是否歸納
密度估算器
去做
估算器
估算器
管理模型的估計和解碼的物件。該模型被估計為確定性函式:

在物件構造中或使用 set_params提供的 引數 ;
numpy.random如果估計器的random_state引數設定為None,則為全域性隨機狀態 ; 和
傳遞給fit,fit_transform或fit_predict的最新呼叫的任何資料或樣本屬性,或者在對partial_fit的一系列呼叫中類似傳遞的資料 。
估計的模型儲存在 估計器例項上的公共和私有屬性中,便於通過預測和變換方法進行解碼。

估計器必須提供fit方法,並且應該提供 set_params和get_params,儘管這些通常是通過繼承來提供的base.BaseEstimator。

某些估算器的核心功能也可作為 功能提供。

特徵提取器
特徵提取器
甲變壓器這需要每個樣品不表示為輸入陣列狀的固定長度的物件,併產生一個陣列狀的物體的特徵對每個樣品(因此狀陣列為一組樣本2維)。換句話說,它(有損)將非矩形資料表示對映成 矩形資料。

特徵提取器必須至少實現:

適合
轉變
get_feature_names
元估計
元估計
metaestimator
metaestimators
一種估計這需要另一種估計作為引數。例項包括pipeline.Pipeline, model_selection.GridSearchCV, feature_selection.SelectFromModel和 ensemble.BaggingClassifier。

在元估計器的擬合方法中,任何包含的估計器都應該在它們擬合之前克隆(儘管FIXME:Pipeline和FeatureUnion目前不這樣做)。一個例外是估計器可以明確地證明它接受預先安裝的估計器(例如,使用prefit=Truein feature_selection.SelectFromModel)。對此的一個已知問題是,如果克隆了元估計器,則預先安裝的估計器將丟失其模型。元fit預測器應該在預測之前呼叫,即使所有包含的估計器都是預先安裝的。

在元估計器的主要行為(例如, 預測或變換實現)是所提供的基礎估計器(或多個基礎估計器)的預測/變換方法的函式的情況下,元估計器應該至少提供由基礎提供的標準方法。估計。在元估計器已經擬合之前,可能無法確定底層估計器提供哪些方法(參見 鴨子打字),這 utils.metaestimators.if_delegate_has_method可能有所幫助。它還應提供(或修改)基本估計器提供的估計器標籤和 classes_屬性。

在將資料傳遞給基礎估算器之前,元估計應該儘可能小地驗證資料。這節省了計算時間,並且可以例如允許基礎估計器容易地處理非矩形的資料。

離群檢測器
離群檢測器
一種無監督的二元預測器,用於模擬核心和外圍樣本之間的區別。

異常檢測器必須實現:

適合
如果轉換,fit_predict
預測是否歸納
歸納異常值檢測器還可以實現 decision_function以給出歸一化的內部分數,其中異常值得分低於0. score_samples可以提供每個樣本的非標準化分數。

預測器
預測者
支援預測和/或 fit_predict的估算器。這包括分類器, 迴歸器,異常值檢測器和聚類器。

在統計中,“預測變數”指的是特徵。

迴歸者
迴歸量
甲監督(或半監督)預測 與連續輸出值。

迴歸函式通常繼承自base.RegressorMixin,設定_estimator_type屬性。

可以將回歸量與其他估計量區分開來 is_regressor。

迴歸量必須實現:

適合
預測
得分了
變壓器
變形金剛
支援變換和/或fit_transform的估算器。純轉換變壓器,例如 manifold.TSNE,可能無法實現transform。
向量化器
向量化器
請參閱功能提取器。
還有一些API專門與一小部分估算器相關,例如:

交叉驗證分離器
CV分離器
交叉驗證生成器
用於將資料集拆分為一系列訓練和測試部分的非估計器類系列(請參閱交叉驗證:評估估計器效能),方法是提供split和get_n_splits方法。請注意,與估算器不同,它們沒有擬合方法,也沒有提供set_params或get_params。可以在中執行引數驗證__init__。
得分手
非估計器可呼叫物件,用於評估給定測試資料的估計器,返回一個數字。與評估指標不同,返回的數字越大,分數越高。請參閱評分引數:定義模型評估規則。
更多例子:

neighbors.DistanceMetric
gaussian_process.kernels.Kernel
tree.Criterion
目標型別
二進位制
由兩個類組成的分類問題。二進位制目標可以表示為多類問題,但只有兩個標籤。二元決策函式表示為1d陣列。

在語義上,一個類通常被認為是“積極的”類。除非另有說明(例如在 評估指標中使用pos_label),我們認為類標籤具有更大的值(數字或詞典)作為正類:標籤[0,1],1是正類; [1,2],2是正類; ['不','是'],'是'是正面的; ['不','是'],'不'是正面的。例如,這會影響decision_function的輸出 。

請注意,從多類y或連續 取樣的資料集y可能看起來是二進位制的。

type_of_target 將為二進位制輸入返回'binary',或者僅存在一個類的類似陣列。

連續
迴歸問題,其中每個樣本的目標是有限浮點數,表示為浮點數(或有時是整數)的一維陣列。

type_of_target 對於連續輸入,將返回“連續”,但如果資料全部為整數,則將其標識為“多類”。

連續多輸出
多輸出連續
一個迴歸問題,其中每個樣本的目標由n_outputs 輸出組成,每個輸出都是一個有限的浮點數,用於特定資料集中的固定int 。n_outputs > 1

連續多輸出目標表示為多個 連續目標,水平堆疊成一個形狀陣列。(n_samples, n_outputs)

type_of_target 將為連續多輸出輸入返回“連續多輸出”,但如果資料全部為整數,則將其標識為“多類多輸出”。

多類
由兩個以上類組成的分類問題。多類目標可以表示為字串或整數的1維陣列。整數的2D列向量(即,在一個單一的輸出多輸出方面)也是可以接受的。

我們沒有正式支援其他可訂購的,可清洗的物件作為類標籤,即使估計器在給定此類型別的分類目標時可能會發生工作。

對於半監督分類,未標記的樣本應具有特殊標籤-1 in y。

在sckit-learn中,支援二進位制分類的所有估計器也支援多類分類,預設情況下使用One-vs-Rest。

A preprocessing.LabelEncoder有助於將多類目標規範化為整數。

type_of_target將為多類輸入返回'multiclass'。使用者可能還希望將“二進位制”輸入與“多類”相同地處理。

多類多輸出
多輸出多類
一個分類問題,其中每個樣本的目標由n_outputs 輸出組成 ,每個輸出都是一個類標籤,用於特定資料集中的固定int 。每個輸出都有一組固定的可用類,每個樣本都標有每個輸出的類。輸出可以是二進位制或多類,並且在所有輸出都是二進位制的情況下,目標是 多標記。n_outputs > 1

多類多輸出目標表示為多個 多類目標,水平堆疊成一個形狀陣列。(n_samples, n_outputs)

XXX:為簡單起見,我們可能並不總是支援多類多輸出的字串類標籤,應該使用整數類標籤。

multioutput提供使用多個單輸出估計器估計多輸出問題的估計器。這可能無法完全解釋不同輸出之間的依賴關係,本地處理多輸出情況的方法(例如決策樹,最近鄰居,神經網路)可能做得更好。

type_of_target 將為多類多輸出輸入返回'multiclass-multioutput'。

多標籤
阿多類多輸出目標,其中每個輸出是 二進位制。這可以表示為2d(密集)陣列或整數的稀疏矩陣,使得每列是單獨的二進位制目標,其中正標籤用1表示,負標籤通常是-1或0.不支援稀疏多標記目標到處都支援密集的多標記目標。

在語義上,多標記目標可以被認為是每個樣本的一組標籤。雖然不在內部使用, preprocessing.MultiLabelBinarizer但作為實用程式提供,以從集合表示的列表轉換為2d陣列或稀疏矩陣。對多類目標進行單熱編碼 preprocessing.LabelBinarizer會將其轉化為多標記問題。

type_of_target 將為多標籤輸入返回'multilabel-indicator',無論是稀疏還是密集。

多輸出
多輸出
每個樣本具有多個分類/迴歸標籤的目標。請參閱多類多輸出和連續多輸出。我們目前不支援對混合分類和迴歸目標進行建模。
方法
decision_function
在裝配分類或異常值檢測器,預測用於相對於各樣品每個類,而不是由製造的“硬”分類預測的“軟”的分數預測。它的輸入通常只是一些觀察到的資料,X。

如果估算器尚未安裝,則呼叫此方法應該提高a exceptions.NotFittedError。

輸出慣例:

二元分類
一維陣列,其中嚴格大於零的值表示正類(即classes_中的最後一個類 )。
多類分類
一個二維陣列,其中行方式arg-maximum是預測類。列按照 classes_排序。
多標籤分類
Scikit-learn在多標籤決策函式的表示方面不一致。一些估計器將其表示為多類多輸出,即2d陣列的列表,每個陣列具有兩列。其他人用單個2d陣列表示它,其列對應於各個二進位制分類決策。後一種表示與多類分類格式模糊地相同,儘管它的語義不同:它應該像二進位制情況一樣通過閾值處理來解釋。

TODO:這個要點 強調了使用不同格式的多標籤。

多輸出分類
2d陣列的列表,對應於每個多類決策函式。
異常值檢測
一維陣列,其中大於或等於零的值表示內部。
fit
fit在每個估計器上提供該方法。它通常需要一些樣本 X,如果模型受到監督則需要 目標 y,以及潛在的其他樣本屬性,例如 sample_weight。這應該:

清除估算器上儲存的任何先前屬性,除非使用 warm_start ;
驗證和解釋任何引數,理想情況下如果無效則引發錯誤;
驗證輸入資料;
根據估計的引數和提供的資料估計和儲存模型屬性; 和
返回現在擬合的估計器以方便方法連結。
目標型別描述了可能的格式y。

fit_predict
尤其用於無監督,直推式 估計,這符合模型和返回預測(類似於 預測訓練資料)。在clusterer中,這些預測也儲存在labels_屬性中,輸出 .fit_predict(X)通常等效於.fit(X).predict(X)。引數fit_predict與那些引數相同fit。
fit_transform
變換器的一種方法,它適合估計器並返回轉換後的訓練資料。它採用fit中的引數 ,其輸出應與呼叫具有相同的形狀。儘管如此,在極少數情況下, 返回相同的值並且不會返回相同的值,其中訓練資料需要以不同的方式處理(例如,由於堆疊的集合中的模型混合;應該清楚地記錄這種情況)。 直推式變壓器也可以提供 ,但沒有改變。.fit(X, ...).transform(X).fit_transform(X, ...).fit(X, ...).transform(X)fit_transform

實施的一個原因fit_transform是執行fit 和transform單獨執行效率低於一起。 base.TransformerMixin提供預設實現,在變換器之間提供一致的介面,其中 fit_transform是或不是專用的。

在歸納學習中 - 目標是學習可應用於新資料的通用模型 - 使用者fit_transform在進一步建模之前應注意不要應用於整個資料集(即一起訓練和測試資料),因為這導致資料洩漏。

get_feature_names
主要用於特徵提取器,但也用於其他變換器,為估算器變換方法的輸出中的每列提供字串名稱。它輸出一個字串列表,並可以將一個字串列表作為輸入,對應於可以從中生成輸出列名稱的輸入列的名稱。預設情況下,輸入要素名為x0,x1,....
get_n_splits
在CV拆分器(不是估計器)上,返回在給定相同引數的情況下迭代split的返回值時將獲得的元素 數。採用與拆分相同的引數。
get_params
獲取可以使用set_params設定的所有引數及其值 。當設定為False時,可以使用引數僅返回那些不包括的引數,即不是由於通過包含的估計器的間接引起的。deep__

大多數估算器都採用了定義base.BaseEstimator,它簡單地採用了定義的引數__init__。 pipeline.Pipeline其中包括重新實現,get_params 以宣告在其steps引數中命名的估算器本身是引數。

partial_fit
便於以線上方式擬合估算器。不同的是fit,重複呼叫partial_fit不會清除模型,而是根據提供的資料對其進行更新。提供給的資料部分partial_fit可以稱為小批量。每個小批量必須具有一致的形狀等。

partial_fit也可以用於核外學習,儘管通常僅限於可以線上進行學習的情況,即模型在每個之後可用partial_fit並且不需要單獨的處理來完成模型。 cluster.Birch引入了一個約定,即呼叫 partial_fit(X)將產生一個尚未最終確定的模型,但模型可以通過呼叫最終確定,partial_fit()即不通過另一個小批量。

通常,不應在呼叫之間修改估計器引數partial_fit,儘管partial_fit應該驗證它們以及新的小批量資料。相反,warm_start 用於使用相同資料但變化的引數重複擬合相同的估計器。

比如fit,partial_fit應該返回估算器物件。

要清除模型,應構建一個新的估算器,例如base.clone。

predict
對每個樣本進行預測,通常只將X作為輸入(但請參見下面的迴歸量輸出約定)。在 分類器或迴歸量中,該預測與擬閤中使用的目標空間相同(例如,如果y擬合由這些字串組成,則為''red','amber','green'} 之一。儘管如此,即使y傳遞給fit是一個列表或其他類似的陣列,輸出predict應始終是一個數組或稀疏矩陣。在 聚類器或異常值檢測器中,預測是整數。

如果估算器尚未安裝,則呼叫此方法應該提高a exceptions.NotFittedError。

輸出慣例:

分類
一排形狀。 如果在擬閤中使用稀疏矩陣,則多標記資料可以表示為稀疏矩陣。每個元素應該是分類器的classes_屬性中的一個值。(n_samples,) (n_samples, n_outputs)
人聚類
一個形狀陣列,(n_samples,)其中每個值從0到 相應的樣本被聚類,如果樣本沒有聚類,則為-1,如 。n_clusters - 1cluster.dbscan
離群檢測器
一個形狀陣列,(n_samples,)其中每個值對於異常值為-1,否則為1。
迴歸
形狀的數字陣列(n_samples,),通常為float64。一些迴歸量在他們的predict方法中有額外的選項,允許他們返回相對於預測值的標準偏差(return_std=True)或協方差(return_cov=True)。在這種情況下,返回值是根據需要對應於(預測mean,std,cov)的陣列的元組。
predict_log_proba
提供predict_proba輸出的自然對數,以促進數值穩定性。
predict_proba
分類器和聚類器中的一種方法,能夠返回每個類/叢集的概率估計。它的輸入通常只是一些觀察到的資料,X。

如果估算器尚未安裝,則呼叫此方法應該提高a exceptions.NotFittedError。

輸出約定與decision_function的約定類似,除了二進位制分類情況,其中為每個類輸出一列(同時decision_function輸出1d陣列)。對於二進位制和多類預測,每行應新增到1。

與其他方法一樣,predict_proba只有在估算器可以進行概率預測時才會出現(參見鴨子打字)。這意味著該方法的存在可以取決於估計器引數(例如in linear_model.SGDClassifier)或訓練資料(例如in model_selection.GridSearchCV)並且可以僅在擬合之後出現。

score
估算器上的一種方法,通常是預測器,用於評估其對給定資料集的預測,並返回單個數字分數。更高的回報值應表明更好的預測; 精度用於分類器,預設情況下用於迴歸量的R ^ 2。

如果估算器尚未安裝,則呼叫此方法應該提高a exceptions.NotFittedError。

一些估算器實現了自定義的估計器特定的分數函式,通常是模型下資料的可能性。

score_samples
去做

如果估算器尚未安裝,則呼叫此方法應該提高a exceptions.NotFittedError。

set_params
可在任何估算器中使用,獲取與get_params中的鍵對應的關鍵字引數。每個都提供了一個新的值來分配,以便呼叫get_paramsafter set_params將反映更改的引數。大多數估計器使用實現 base.BaseEstimator,它處理巢狀引數,否則將引數設定為估計器上的屬性。該方法被覆蓋在pipeline.Pipeline相關的估計器中。
split
在CV拆分器(不是估算器)上,此方法接受引數(X,y,groups),其中all可以是可選的,並返回迭代器 對。{train,test} _idx中的每一個都是1d整數陣列,其值為任意長度的0 ,因此在某些和相應的值中都不會出現任何值。(train_idx, test_idx)X.shape[0] - 1train_idxtest_idx
transform
在變換器中,將輸入(通常僅為X)轉換為某個變換空間(通常標記為Xt)。輸出是長度為n_samples的陣列或稀疏矩陣,並且在擬合後固定列數。

如果估算器尚未安裝,則呼叫此方法應該提高a exceptions.NotFittedError。

引數
這些常用引數名稱,特別是在估算器構造中使用(參見概念引數),有時也會出現為函式或非估計建構函式的引數。

class_weight
用於在將分類器擬合為目標類的函式時指定樣本權重。如果還支援並給出sample_weight,則將其乘以class_weight 貢獻。類似地,當class_weight在一個使用 多輸出(包括多標記)的任務,所述權重被跨越輸出相乘(即,列y)。

預設情況下,所有樣本都具有相同的權重,以便通過它們在訓練資料中的普遍性對類進行有效加權。對於所有類標籤,這可以明確地實現。class_weight={label1: 1, label2: 1, ...}

更一般地,class_weight指定為dict將類標籤對映到weights(),以便為命名類的每個樣本賦予該權重。{class_label: weight}

class_weight='balanced'通過給每個樣本提供與其在訓練資料中的類別流行度成反比的權重,可以用來給予所有類別相同的權重: 。 但請注意,此重新平衡不會考慮每個類中的樣本權重。n_samples / (n_classes * np.bincount(y))

對於多輸出分類,使用dicts列表來指定每個輸出的權重。例如,對於四級多標籤分類權重應該代替。[{0: 1, 1: 1}, {0: 1, 1: 5}, {0: 1, 1: 1}, {0: 1, 1: 1}][{1:1}, {2:5}, {3:1}, {4:1}]

該class_weight引數經過驗證和解釋 utils.compute_class_weight。

cv
確定交叉驗證拆分策略,用於基於交叉驗證的例程。cv也可以在估算器中使用,multioutput.ClassifierChain或者 calibration.CalibratedClassifierCV使用一個估計器的預測作為另一個估計器的訓練資料,以免過度訓練監督。

可能的輸入cv通常是:

一個整數,指定K折交叉驗證中的摺疊數。如果估計量是分類器(由確定base.is_classifier)並且目標可以表示二元或多類(但不是多輸出)分類問題(由 確定),則 K-fold將在類上分層utils.multiclass.type_of_target。
一個交叉驗證分路器例項。有關Scikit-learn中可用的分割器,請參閱“ 使用者指南”。
可迭代的屈服列車/測試分裂。
除了一些例外(特別是不使用交叉驗證的選項),預設值為3倍,在版本0.22中將變為5倍。

cv值經過驗證和解釋utils.check_cv。

kernel
去做
max_iter
對於涉及迭代優化的估計器,這確定了擬閤中要執行的最大迭代次數。如果 max_iter迭代在沒有收斂的情況下執行,則 exceptions.ConvergenceWarning應該引發a。請注意,“單次迭代”的解釋在估算器之間是不一致的:有些(但不是全部)使用它來表示單個時期(即對資料中的每個樣本進行傳遞)。

FIXME或許我們應該對ConvergenceWarning和max_iter之間的關係進行一些常見的測試。

memory
一些估算器用於joblib.Memory在擬合期間儲存部分解決方案。因此,當fit再次呼叫時,這些部分解決方案已被記憶並且可以重複使用。

甲memory引數可以被指定為與到一個目錄,或路徑的字串joblib.Memory例項(或具有類似介面的物件,即,cache方法)可以被使用。

memory值經過驗證和解釋 utils.validation.check_memory。

metric
作為引數,這是用於確定兩個資料點之間的距離的方案。見metrics.pairwise_distances。在實踐中,對於一些演算法,可以使用不適當的距離度量(不遵守三角形不等式的度量,例如餘弦距離)。

XXX:層次聚類使用affinity具有此含義。

我們還使用度量來指代評估指標,但避免將此含義用作引數名稱。

n_components
變換器應將輸入轉換為的功能數量。有關仿射投影的特殊情況,請參閱components_。
n_iter_no_change
在停止迭代過程之前等待沒有改進的迭代次數。這也稱為耐心引數。它通常用於提前停止,以避免過早停止。
n_jobs
這用於指定應該為並行化例程使用多少併發程序/執行緒。Scikit-learn預設使用一個處理器進行處理,儘管它也使用NumPy,NumPy可以配置為使用執行緒數字處理器庫(如MKL;請參閱常見問題解答)。

n_jobs是一個int,指定併發執行的作業的最大數量。如果設定為-1,則使用所有CPU。如果給出1,則根本不使用joblib級別並行性,這對於除錯很有用。即使使用,也可能由於數字處理庫而出現並行性(請參閱常見問題解答)。對於低於-1的n_jobs,使用(n_cpus + 1 + n_jobs)。因此 ,除了一個之外的所有CPU都被使用。n_jobs = 1n_jobs = -2

n_jobs=None意味著未設定 ; 它通常被解釋為 n_jobs=1,除非當前joblib.Parallel後端上下文另有說明。

n_jobs在估算器中使用基於並行的方法有所不同:

大多數情況下並行性發生在擬閤中,但有時並行性發生在預測中(例如在隨機森林中)。
預設情況下,某些並行性使用多執行緒後端,有些是多處理後端。可以使用覆蓋預設後端sklearn.utils.parallel_backend。
並行處理是否有助於提高執行時間取決於許多因素,通常是一個好主意,而不是假設增加工作數總是一件好事。 並行執行某些估算器或函式的多個副本對效能非常不利。
巢狀使用n_jobs具有相同後端的基於並行的將導致異常。所以 不行。GridSearchCV(OneVsRestClassifier(SVC(), n_jobs=2), n_jobs=2)

當n_jobs不是1時,並行化的估計器必須是可選擇的。這意味著,例如,lambda不能用作估計器引數。

random_state
每當隨機化是Scikit-learn演算法的一部分時, random_state可以提供引數來控制所使用的隨機數發生器。注意,僅僅存在random_state並不意味著總是使用隨機化,因為它可能依賴於另一個引數,例如shuffle被設定。

random_state的價值可能是:

無(預設)
使用全域性隨機狀態numpy.random。
整數
使用由給定整數播種的新隨機數生成器。為了使隨機演算法具有確定性(即多次執行將產生相同的結果),random_state可以使用任意整數。但是,檢查您的結果在許多不同的不同隨機種子中是否穩定可能是值得的。流行的整數隨機種子是0和42。
一個numpy.random.RandomState例項
使用提供的隨機狀態,僅影響同一隨機狀態例項的其他使用者。多次呼叫fit將重用相同的例項,併產生不同的結果。
utils.check_random_state用於內部驗證輸入random_state並返回RandomState 例項。

scoring
指定要最大化的分數函式(通常通過交叉驗證),或者 - 在某些情況下 - 要報告多個分數函式。得分函式可以是通過接受一個字串metrics.get_scorer或一個可呼叫的射手,不與一個混淆評估度量,因為後者具有更多樣化的API。 scoring也可以設定為None,在這種情況下使用估計器的得分方法。請參閱“ 使用者指南”中的評分引數:定義模型評估規則。

在可以評估多個度量的情況下,scoring可以將其作為唯一字串列表或以名稱作為鍵的dict和作為值的可呼叫符號給出。注意,這沒有指定要最大化哪個得分函式,以及refit 可以用於此目的的另一個引數。

使用scoring引數進行驗證和解釋 metrics.check_scoring。

verbose
目前在Scikit-learn中沒有非常一致地處理日誌記錄,但是當它作為選項提供時,該verbose引數通常可用於選擇無日誌記錄(設定為False)。任何True值都應該啟用一些日誌記錄,但可能需要更大的整數(例如,大於10)以獲得完整的詳細程度。詳細日誌通常列印到標準輸出。估算器不應使用預設verbose設定在標準輸出上生成任何輸出。
warm_start
當在相同資料集上重複擬合估計器時,但是對於多個引數值(例如在網格搜尋中找到最大化效能的值),可以重用從先前引數值學習的模型的方面,從而節省時間。當warm_start為真時,現有的擬合 模型屬性 a用於在隨後的擬合調用中初始化新模型。

請注意,這僅適用於某些模型和某些引數,甚至適用於某些引數值的順序。例如, warm_start可以在構建隨機森林時向森林中新增更多樹木(增加n_estimators)但不減少其數量。

partial_fit也保留了呼叫之間的模型,但有所不同:隨著warm_start引數的變化,資料在呼叫之間(或多或少)保持不變fit; 隨著partial_fit,小批量的資料變化和模型引數保持固定。

在某些情況下,您希望使用它warm_start來適應不同但密切相關的資料。例如,最初可以適合資料的子集,然後在完整資料集上微調引數搜尋。對於分類,一系列warm_start呼叫中的所有資料 fit必須包括每個類的樣本。

屬性
請參閱概念屬性。

classes_
分類器已知的類標籤列表,將每個標籤對映到模型表示中使用的數字索引輸出。例如,predict_proba的陣列輸出具有與之對齊的列classes_。對於多輸出分類器, classes_應該是列表列表,每個輸出都有一個類列表。對於每個輸出,應對類進行排序(數字或按字典順序排列)。

classes_並且通常使用preprocessing.LabelEncoder。來管理索引的對映 。

components_
在許多線性變換器中使用的仿射變換矩陣,其中n_components是輸出特徵的數量,n_features是輸入特徵的數量。(n_components, n_features)

另請參見components_,它是線性預測變數的類似屬性。

coef_
廣義線性模型預測器的權重/係數矩陣, (n_features,)用於二元分類和單輸出迴歸的形狀,用於多類分類和多輸出迴歸。請注意,這不包括儲存在其中的截距(或偏差)項。(n_classes, n_features)(n_targets, n_features)intercept_

如果可用,feature_importances_通常也不提供,但可以計算為每個要素輸入的標準 coef_。

另請參見components_,它是線性變換器的類似屬性。

embedding_
將訓練資料嵌入到流形學習估計器中,其形狀與fit_transform的輸出相同。另見 labels_。(n_samples, n_components)
n_iter_
在擬合可能在收斂時停止的迭代估計器時實際執行的迭代次數。另請參見max_iter。
feature_importances_
(n_features,)一些預測變數中可用 的形狀向量,用於提供模型預測中每個特徵重要性的相對度量。
labels_
含有用於在訓練資料中的每個樣本的簇標籤向量clusterers,相同的輸出 fit_predict。另見embedding_。
資料和樣本屬性
請參閱概念樣本屬性。

groups
用於交叉驗證程式,以識別相關的樣本。每個值都是一個識別符號,使得在支援的 CV分離器中,來自某個groups值的樣本可能不會出現在訓練集及其相應的測試集中。請參閱分組資料的交叉驗證迭代器。。
sample_weight
每個樣品的相對重量。直觀地,如果所有權重都是整數,則加權模型或分數應等於在重複樣本時計算的權重中指定的次數。權重可以指定為浮點數,因此樣本權重通常等於一個恆定的正比例因子。

FIXME這種解釋在實踐中總是如此嗎?我們沒有通用的測試。

一些估算器,例如決策樹,支援負權重。FIXME:此功能或其缺失可能無法在許多估算器中進行測試或記錄。

這並不完全其中該模型的其它引數考慮的區域中的樣本的數目,與殼體min_samples中 cluster.DBSCAN。在這種情況下,樣本計數變為其權重之和。

在分類中,樣本權重也可以使用class_weight估計器引數指定為類的函式。

X
表示在訓練和預測時觀察到的資料,用作學習中的獨立變數。符號是大寫的,表示它通常是一個矩陣(見矩形)。當矩陣時,每個樣本可以由特徵 向量表示,或者與每個訓練樣本預先計算(dis)相似性的向量。X也可能不是矩陣,並且在學習模型之前可能需要 特徵提取器或成對度量將其變為一個。
Xt
“變形X ”的簡寫。
y
Y
表示在訓練時可以觀察到的資料作為學習中的因變數,但是在預測時不可用,並且通常是預測的目標。符號可以是大寫的,表示它是一個矩陣,例如表示 多輸出目標; 但通常我們會使用y ,有時甚至在假定多個輸出時這樣做。