酷播亮新聞
最棒的知識補給站

你需要的Scikit-learn中文文檔:步入機器學習的完美實踐教程

摘要:Scikit-learn中文文檔已經由ApacheCN
完成校對,這對於國內機器學習用戶有非常大的幫助。 該文檔自2017年11
月初步完成校對,目前很多細節都已經得到完善。 該中文文檔包含了分類、回歸、

Scikit-learn 中文文檔已經由 ApacheCN
完成校對,這對於國內機器學習用戶有非常大的幫助。 該文檔自 2017 年 11
月初步完成校對,目前很多細節都已經得到完善。 該中文文檔包含了分類、回歸、聚類和降維等經典機器學習任務,並提供了完整的使用教程與 API
註釋。 入門讀者也可以藉此文檔與教程從實踐出發進入數據科學與機器學習的領域。

中文文檔地址:http://sklearn.apachecn.org

Scikit-learn
  是基於 Python 的開源機器學習庫,它基於 NumPy 和 SciPy 等科學計算庫,並支持支持向量機、隨即森林、梯度提升樹、K
均值聚類等學習算法。 Scikit-learn 目前主要由社區成員自發進行維護,且專注於構建機器學習領域內經廣泛驗證的成熟算法。

Scikit-learn
  項目最早為數據科學家 David Cournapeau 於 2007 年發起的 scikits.learn 項目,且 Scikit
的名字可視為 SciPy Toolkit,即 SciPy 的第三方擴展。 Scikit-learn 大部分都是由 Python
構建,但還是有很多核心算法是由 Cython 完成而實現更好的效果,例如支持向量機就是由 Cython 構建。

在監督學習部分,Scikit-learn 提供了廣義線性模型、支持向量機、最近鄰算法、高斯過程、樸素貝葉斯、決策樹和集成方法等算法教程,同時還介紹了特徵選擇、 隨即 梯度下降算法、線性與二次判別分析等在監督學習中非常重要的概念。

除了監督學習,半監督學習中的標籤傳播算法和無監督學習中的聚類與降維算法都有非常多的教程。 此外,在模型選擇中,文檔教程描述了交叉驗證的使用、估計器超參數的調整、模型評估方法和模型持久化概念等。

數據預處理是機器學習非常重要的部分,我們可以使用歸一化等方法大大降低前向傳播與學習算法的計算複雜度,也可以利用缺失值插補和特徵提取等方法增加數據的有效性。 以下選取了
  SVM 的部分使用教程,讀者可藉此了解 Scikit-learn 中文文檔的組織形式與基本內容,更完整的內容前查看原文檔。

支持向量機 (SVMs) 可用於以下監督學習算法分類、回歸和異常檢測。 支持向量機的優勢在於:

  • 在高維空間中非常高效。

  • 即使在數據維度比樣本數量大的情況下仍然有效。

  • 在決策函數(稱為支持向量)中使用訓練集的子集,因此它也是高效利用內存的。

  • 通用性:不同的核函數 核函數 與特定的決策函數一一對應。

支持向量機的缺點包括:

  • 如果特徵數量比樣本數量大得多,在選擇核函數時要避免過擬合,而且正則化項是非常重要的。

  • 支持向量機不直接提供概率估計,這些都是使用昂貴的五次交叉驗算計算的。


  scikit-learn 中,支持向量機提供 dense(numpy.ndarray , 可以通過 numpy.asarray 進行轉換) 和
  sparse(任何 scipy.sparse)樣例向量作為輸出。 然而,要使用支持向量機來對 sparse
數據作預測,它必須已經擬合這樣的數據。 使用 C 代碼的 numpy.ndarray (dense) 或者帶有 dtype=float64 的
scipy.sparse.csr_matrix (sparse) 來優化性能。

分類

SVC、NuSVC 和 LinearSVC 能在數據集中實現多元分類:

SVC
  和 NuSVC 是相似的方法,但是接受稍許不同的參數設置並且有不同的數學方程。 另一方面,LinearSVC
是另一個實現線性核函數的支持向量分類。 記住 LinearSVC 不接受關鍵詞 kernel,因為它被假設為線性的。 它也缺少一些 SVC 和
NuSVC 的成員(members)比如 support_。

和其他分類器一樣,SVC、NuSVC 和 LinearSVC 將兩個數組作為輸入:[n_samples, n_features] 大小的數組 X 作為訓練樣本,[n_samples] 大小的數組 y 作為類別標籤 (字符串或者整數):

 >>> from sklearn import svm
>>> X = [[0, 0], [1, 1]]
>>> y = [0, 1]
>>> clf = svm.SVC()
>>> clf.fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape=’ovr’, degree=3, gamma=’auto’, kernel=’rbf’,
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)

在擬合後, 這個模型可以用來預測新的值:

>>> clf.predict([[2., 2.]])

array([1])

SVMs 決策函數取決於訓練集的一些子集, 稱作支持向量. 這些支持向量的部分特性可以在 support_vectors_、support_和 n_support 找到:

>>> # 獲得支持向量
>>> clf.support_vectors_
array([[ 0., 0.],
[ 1., 1.]])
>>> # 獲得支持向量的索引get indices of support vectors
>>> clf.support_
array([0, 1]…)
>>> # 為每一個類別獲得支持向量的數量
>>> clf.n_support_
array([1, 1]…)

以上是 SVM 簡單的介紹,這些內容都由 ApacheCN 翻自 Scikit-learn 。 最後,感謝參與翻譯文檔的志願者,正因為他們,開源社區才能有如此高質量的學習資料。

版權聲明

本文僅代表作者觀點,不代表百度立場。
本文係作者授權百度百家發表,未經許可,不得轉載。

如有侵權請來信告知:酷播亮新聞 » 你需要的Scikit-learn中文文檔:步入機器學習的完美實踐教程