如果您是一名 Python 程序員,或者您正在尋找一個強大的工具包來將機器學習引入生產系統,那麼 Scikit-learn 是您需要查看的庫。
Scikit-learn 文檔齊全且易於使用,無論您是機器學習新手、想要快速啟動並運行,還是想要利用最新的 ML 研究工具。
它允許您僅用幾行代碼構建預測數據模型,然後使用該模型作為高級庫來適應您的數據。 它很靈活並且可以很好地與其他 Python 庫 例如用於繪製圖表的 Matplotlib、用於數組矢量化的 NumPy 以及用於數據可視化的 pandas。
在本指南中,您將了解它是什麼、如何使用它以及它的優點和缺點。
什麼是 Scikit學習?
Scikit-learn(也稱為 sklearn)提供了一組多樣化的統計模型和機器學習。 與大多數模塊不同,sklearn 是用 Python 而不是 C 開發的。儘管是用 Python 開發的,sklearn 的效率歸因於它使用 NumPy 進行高性能線性代數和數組運算。
Scikit-Learn 是 Google 代碼之夏項目的一部分,自此讓全世界數以百萬計以 Python 為中心的數據科學家的生活變得更加簡單。 本系列的這一部分重點介紹該庫並重點關註一個元素——數據集轉換,這是開發預測模型之前要採取的關鍵且重要的步驟。
該庫基於 SciPy(科學 Python),必須先安裝它才能使用 scikit-learn。 該堆棧包含以下項目:
- NumPy:Python的標準n維數組包
- SciPy:它是科學計算的基礎包
- Pandas:數據結構和分析
- Matplotlib:它是一個強大的2D/3D繪圖庫
- Sympy:符號數學
- IPython:改進的交互式控制台
Scikit-learn 庫的應用
Scikit-learn 是一個開源 Python 包,具有復雜的數據分析和挖掘功能。 它配備了大量內置算法,可幫助您充分利用數據科學項目。 Scikit-learn 庫的使用方式如下。
1. 回歸
回歸分析是一種用於分析和理解兩個或多個變量之間聯繫的統計技術。 用於進行回歸分析的方法有助於確定哪些元素是相關的、哪些元素可以被忽略以及它們如何相互作用。 例如,回歸技術可用於更好地理解股票價格的行為。
回歸算法包括:
- 線性回歸
- 嶺回歸
- 套索回歸
- 決策樹回歸
- 隨機森林
- 支持向量機(SVM)
2.分類
分類方法是一種監督學習方法,它使用訓練數據來識別新觀察的類別。 分類中的算法從給定的數據中學習 數據集 或觀察結果,然後將其他觀察結果分類為許多類別或分組之一。 例如,它們可用於將電子郵件通信分類為垃圾郵件或非垃圾郵件。
分類算法包括以下幾種:
- Logistic回歸
- K-最近鄰
- 支持向量機
- 決策樹
- 隨機森林
3. 聚類
Scikit-learn 中的聚類算法用於自動將具有相似屬性的數據排列成集合。 聚類是將一組項目分組的過程,使同一組中的項目與其他組中的項目更相似。 例如,客戶數據可能會根據其位置進行分離。
聚類算法包括以下幾種:
- 數據庫掃描
- K均值
- 小批量 K 均值
- 譜聚類
4. 模型選擇
模型選擇算法提供了比較、驗證和選擇數據科學計劃中使用的最佳參數和模型的方法。 給定數據,模型選擇是從一組候選模型中挑選統計模型的問題。 在最基本的情況下,會考慮預先存在的數據集合。 然而,該任務還可能包括實驗設計,以便獲取的數據非常適合模型選擇問題。
可以通過調整參數來提高精度的模型選擇模塊包括:
- 交叉驗證
- 網格搜索
- 指標
5. 降維
將數據從高維空間轉移到低維空間,以便低維表示保留原始數據的一些重要方面,最好接近其固有維度,這稱為降維。 當維度降低時,用於分析的隨機變量的數量也會減少。 例如,可能不會考慮外圍數據來提高可視化效率。
降維算法包括以下內容:
- 功能選擇
- 主成分分析(PCA)
安裝 Scikit-learn
使用 Scikit-learn 之前需要安裝 NumPy、SciPy、Matplotlib、IPython、Sympy 和 Pandas。 讓我們使用控制台中的 pip 安裝它們(僅適用於 Windows)。
現在我們已經安裝了所需的庫,讓我們安裝 Scikit-learn。
功能
Scikit-learn,有時也稱為 sklearn,是一個用於實現機器學習模型和統計建模的 Python 工具包。 我們可以用它來創建用於回歸、分類和聚類的多個機器學習模型,以及用於評估這些模型的統計工具。 它還包括降維、特徵選擇、特徵提取、集成方法和內置數據集。 我們將逐一研究這些品質。
1. 導入數據集
Scikit-learn 包含許多預先構建的數據集,例如 iris 數據集、房價數據集、titanic 數據集等。 這些數據集的主要優點是易於掌握,並且可用於立即開發機器學習模型。 這些數據集適合新手。 同樣,您可以使用 sklearn 導入其他數據集。 同樣,您可以使用它來導入其他數據集。
2. 分割數據集進行訓練和測試
Sklearn 能夠將數據集劃分為訓練和測試部分。 為了對預測性能進行公正的評估,需要分割數據集。 我們可以指定訓練和測試數據集中應包含多少數據。 我們使用訓練測試分割來劃分數據集,使得訓練集包含 80% 的數據,測試集包含 20%。 數據集可以劃分如下:
3. 線性回歸
線性回歸是一種基於監督學習的機器學習技術。 它執行回歸工作。 基於自變量,回歸對目標預測值進行建模。 它主要用於確定變量和預測之間的聯繫。 不同的回歸模型在評估因變量和自變量之間的連接類型以及所使用的自變量數量方面有所不同。 我們可以使用 sklearn 簡單地創建線性回歸模型,如下所示:
4. 邏輯回歸
常見的分類方法是邏輯回歸。 它與多項式和線性回歸屬於同一家族,並且屬於線性分類器家族。 邏輯回歸的結果易於理解並且計算速度很快。 與線性回歸一樣,邏輯回歸是一種監督回歸技術。 輸出變量是分類變量,因此這是唯一的區別。 它可以確定患者是否患有心髒病。
各種分類問題,例如垃圾郵件檢測,可以使用邏輯回歸來解決。 糖尿病預測、確定消費者是否會購買特定產品或轉向競爭對手、確定用戶是否會點擊特定營銷鏈接以及更多場景只是幾個例子。
5. 決策樹
最強大且使用最廣泛的分類和預測技術是決策樹。 決策樹是一種看起來像流程圖的樹結構,每個內部節點代表對屬性的測試,每個分支代表測試的結論,每個葉節點(終端節點)保存一個類標籤。
當因變量與自變量不存在線性關係時,即當線性回歸不能產生正確的結果時,決策樹是有益的。 DecisionTreeRegression() 對象可以以類似的方式使用決策樹進行回歸。
6. 隨機森林
隨機森林是一個 機器學習 解決回歸和分類問題的方法。 它利用集成學習,這是一種結合多個分類器來解決複雜問題的技術。 隨機森林方法由大量決策樹組成。 它可用於對貸款申請進行分類、檢測欺詐行為並預測疾病爆發。
7. 混淆矩陣
混淆矩陣是用於描述分類模型性能的表格。 以下四個詞用於檢查混淆矩陣:
- 真陽性:這意味著模型預測了有利的結果並且是正確的。
- True Negative:這意味著模型預測了一個糟糕的結果,但它是正確的。
- 誤報:這意味著模型預期會出現有利的結果,但實際上卻是負面的。
- 假陰性:表示模型預期結果為陰性,但結果實際上是陽性。
混淆矩陣實現:
優點
- 使用起來很簡單。
- Scikit-learn 包適應性極強且有用,可服務於現實世界的目標,例如消費者行為預測、神經圖像開發等。
- 希望將算法與其平台連接起來的用戶可以在 Scikit-learn 網站上找到詳細的 API 文檔。
- 許多作者、合作者和大型全球在線社區支持 Scikit-learn 並使其保持最新狀態。
缺點
- 它不是深入研究的理想選擇。
結論
Scikit-learn 是一個重要的軟件包,每個數據科學家都需要充分掌握並積累一些經驗。 本指南應該幫助您使用 sklearn 進行數據操作。 當您在數據科學探索中取得進展時,您會發現 Scikit-learn 的更多功能。 在評論區分享你的觀點。
發表評論