如何將 Scikit-learn Python 庫用於數據科學項目

如何將 Scikit-learn Python 庫用於數據科學項目

編譯自: https://opensource.com/article/18/9/how-use-scikit-learn-data-science-projects

作者: Dr.michael J.garbade

靈活多樣的 Python 庫為數據分析和數據挖掘提供了強力的機器學習工具。

Scikit-learn Python 庫最初於 2007 年發佈,通常用於解決各種方面的機器學習和數據科學問題。這個多種功能的庫提供了整潔、一致、高效的 API 和全面的在線文檔。

什麼是 Scikit-learn?

Scikit-learn 是一個開源 Python 庫,擁有強大的數據分析和數據挖掘工具。 在 BSD 許可下可用,並建立在以下機器學習庫上:

  • NumPy,一個用於操作多維數組和矩陣的庫。它還具有廣泛的數學函數彙集,可用於執行各種計算。
  • SciPy,一個由各種庫組成的生態系統,用於完成技術計算任務。
  • Matplotlib,一個用於繪製各種圖表和圖形的庫。

Scikit-learn 提供了廣泛的內置算法,可以充分用於數據科學項目。

以下是使用 Scikit-learn 庫的主要方法。

1、分類

分類 工具識別與提供的數據相關聯的類別。例如,它們可用於將電子郵件分類為垃圾郵件或非垃圾郵件。

Scikit-learn 中的分類算法包括:

  • 支持向量機(Support vector machines)(SVM)
  • 最鄰近(Nearest neighbors)
  • 隨機森林(Random forest)

2、迴歸

迴歸涉及到創建一個模型去試圖理解輸入和輸出數據之間的關係。例如,迴歸工具可用於理解股票價格的行為。

迴歸算法包括:

  • 支持向量機(Support vector machines)(SVM)
  • 嶺迴歸(Ridge regression)
  • Lasso(LCTT 譯註:Lasso 即 least absolute shrinkage and selection operator,又譯為最小絕對值收斂和選擇算子、套索算法)

3、聚類

Scikit-learn 聚類工具用於自動將具有相同特徵的數據分組。 例如,可以根據客戶數據的地點對客戶數據進行細分。

聚類算法包括:

  • K-means
  • 譜聚類(Spectral clustering)
  • Mean-shift

4、降維

降維降低了用於分析的隨機變量的數量。例如,為了提高可視化效率,可能不會考慮外圍數據。

降維算法包括:

  • 主成分分析(Principal component analysis)(PCA)
  • 功能選擇(Feature selection)
  • 非負矩陣分解(Non-negative matrix factorization)

5、模型選擇

模型選擇算法提供了用於比較、驗證和選擇要在數據科學項目中使用的最佳參數和模型的工具。

通過參數調整能夠增強精度的模型選擇模塊包括:

  • 網格搜索(Grid search)
  • 交叉驗證(Cross-validation)
  • 指標(Metrics)

6、預處理

Scikit-learn 預處理工具在數據分析期間的特徵提取和規範化中非常重要。 例如,您可以使用這些工具轉換輸入數據(如文本)並在分析中應用其特徵。

預處理模塊包括:

  • 預處理
  • 特徵提取

Scikit-learn 庫示例

讓我們用一個簡單的例子來說明如何在數據科學項目中使用 Scikit-learn 庫。

我們將使用 鳶尾花花卉數據集 ,該數據集包含在 Scikit-learn 庫中。 鳶尾花數據集包含有關三種花種的 150 個細節,三種花種分別為:

  • Setosa:標記為 0
  • Versicolor:標記為 1
  • Virginica:標記為 2

數據集包括每種花種的以下特徵(以釐米為單位):

  • 萼片長度
  • 萼片寬度
  • 花瓣長度
  • 花瓣寬度

第 1 步:導入庫

由於鳶尾花花卉數據集包含在 Scikit-learn 數據科學庫中,我們可以將其加載到我們的工作區中,如下所示:

from sklearn import datasets

iris = datasets.load_iris()

這些命令從 sklearn 導入數據集 datasets 模塊,然後使用 datasets 中的 load_iris() 方法將數據包含在工作空間中。

第 2 步:獲取數據集特徵

數據集 datasets 模塊包含幾種方法,使您更容易熟悉處理數據。

在 Scikit-learn 中,數據集指的是類似字典的對象,其中包含有關數據的所有詳細信息。 使用 .data 鍵存儲數據,該數據列是一個數組列表。

例如,我們可以利用 iris.data 輸出有關鳶尾花花卉數據集的信息。

print(iris.data)

這是輸出(結果已被截斷):

[[5.1 3.5 1.4 0.2]

[4.9 3. 1.4 0.2]

[4.7 3.2 1.3 0.2]

[4.6 3.1 1.5 0.2]

[5. 3.6 1.4 0.2]

[5.4 3.9 1.7 0.4]

[4.6 3.4 1.4 0.3]

[5. 3.4 1.5 0.2]

[4.4 2.9 1.4 0.2]

[4.9 3.1 1.5 0.1]

[5.4 3.7 1.5 0.2]

[4.8 3.4 1.6 0.2]

[4.8 3. 1.4 0.1]

[4.3 3. 1.1 0.1]

[5.8 4. 1.2 0.2]

[5.7 4.4 1.5 0.4]

[5.4 3.9 1.3 0.4]

[5.1 3.5 1.4 0.3]

我們還使用 iris.target 向我們提供有關花朵不同標籤的信息。

print(iris.target)

這是輸出:

[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

2 2]

如果我們使用 iris.target_names,我們將輸出數據集中找到的標籤名稱的數組。

print(iris.target_names)

以下是運行 Python 代碼後的結果:

['setosa' 'versicolor' 'virginica']

第 3 步:可視化數據集

我們可以使用 箱形圖 來生成鳶尾花數據集的視覺描繪。 箱形圖說明了數據如何通過四分位數在平面上分佈的。

以下是如何實現這一目標:

import seaborn as sns

box_data = iris.data # 表示數據數組的變量

box_target = iris.target # 表示標籤數組的變量

sns.boxplot(data = box_data,width=0.5,fliersize=5)

sns.set(rc={'figure.figsize':(2,15)})

讓我們看看結果:


如何將 Scikit-learn Python 庫用於數據科學項目


在橫軸上:

  • 0 是萼片長度
  • 1 是萼片寬度
  • 2 是花瓣長度
  • 3 是花瓣寬度

垂直軸的尺寸以釐米為單位。

總結

以下是這個簡單的 Scikit-learn 數據科學教程的完整代碼。

from sklearn import datasets

iris = datasets.load_iris()

print(iris.data)

print(iris.target)

print(iris.target_names)

import seaborn as sns

box_data = iris.data # 表示數據數組的變量

box_target = iris.target # 表示標籤數組的變量

sns.boxplot(data = box_data,width=0.5,fliersize=5)

sns.set(rc={'figure.figsize':(2,15)})

Scikit-learn 是一個多功能的 Python 庫,可用於高效完成數據科學項目。

如果您想了解更多信息,請查看 LiveEdu 上的教程,例如 Andrey Bulezyuk 關於使用 Scikit-learn 庫創建 機器學習應用程序 的視頻。

有什麼評價或者疑問嗎? 歡迎在下面分享。


via: https://opensource.com/article/18/9/how-use-scikit-learn-data-science-projects

作者: Dr.Michael J.Garbade 選題: lujun9972 譯者: Flowsnow 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出


分享到:


相關文章: