python機器學習之使用scikit-learn庫

2021-01-08 一起學python

引言

數據分析由一連串的步驟組成,對於其中預測模型的創建和驗證這一步,我們使用scikit-learn這個功能強大的庫來完成。

scikit-learning庫

python庫scikit-learn整合了多種機器學習算法。2007年,Cournapeu開始開發這個庫,但是直到2010年才發布它的第一個版本。

這個庫是SciPy(scientific Python,python科學計算)工具集的一部分,該工具集包含多個為科學計算尤其是數據分析而開發的庫。通常這些庫被稱作SciKits,庫名scikit-learn的前半部分正是來源於此,而後半部分則是來自該庫所面向的應用領域——機器學習(即Machine Learning)。

機器學習

機器學習研究的是識別作為數據分析對象的數據集中模式的方法,尤其是指研發算法,從數據中學習,並作出預測。所有的機器學習方法都是以建立特定的模型為基礎。

要建立能夠學習的機器,方法有很多種,但是各有各的特點,選用哪種方法取決於數據的特點和預測數據的類型。選用哪種方法這個問題被稱作學習問題。

在學習階段,遵從某種模式的數據可以是數組形式,其中每個元素只包含單個值或多個值。這些值通常被稱為特徵或屬性。

有監督和無監督學習

根據數據和所要創建的模型的類型,學習問題通常可以分為兩大類。

有監督學習(supervised learning):訓練集包含作為預測結果(目標值)的額外的屬性信息。這些信息可以直到模型對新數據(測試集)作出跟已有數據類似的預測結果。

分類:訓練集數據屬於兩種或以上類別;已標註的數據可直到系統學習能夠識別每個類別的特徵。預測系統未見過的新數據時,系統將根據新數據的特徵,評估它的類別。

回歸:被預測結果為連續型變量。最易於理解的應用場景是,在散點圖中找出能夠描述一系列數據點趨勢的直線。

無監督學習(unsupervised learning):訓練集數據由一系列輸入值x組成,其目標值未知。

聚類:發現數據集中由相似的個體組成的群組。

降維:將高維數據集的維數減少到兩維或三維,這樣不僅便於數據可視化,而且大幅降低維度後,每一維所傳達的信息還會更多。

除了上述兩大類別的方法之外,還有一類方法,它們以驗證、評估模型為目的。

訓練集和測試集

機器學習方法使得我們可以用數據集創建模型,識別模型的特性之後,再用來處理新數據。在機器學習過程中,經常需要評估算法的好壞。評估算法需要把算法分為訓練集和測試集兩部分,從前者學習數據的特性,再用後者測試得到的特性。

使用scikit-learn實現有監督學習

我們將在下一節中實現一些使用scikit-learn的例子,首先我們需要明白有監督學習方法從數據集讀取數據,學習兩個或以上特徵之間可能的模式;因為訓練集結果(目標或標籤)已知,所以學習是可行的。scikit-learn的所有模型都被稱為有監督估計器,訓練估計器要用到fit(x,y)函數:其中x指的是觀察到的特徵,y指的是目標。估計器經過訓練後,就能預測任何標籤未知的新數據x的y值;預測是由predict(x)函數完成的。

相關焦點

  • Python粉都應該知道的開源機器學習框架:Scikit-learn入門指南
    命令,詳見官方文檔):$ sudo pip install -U scikit-learn這裡加上sudo是為了避免安裝過程中出現一些權限問題,如果用戶已經確保了管理員權限也可以省略。他表示,Scikit-learn樣例的運行結果和文檔描述一模一樣,API接口的設計合理且一致性高,而且幾乎不存在「阻抗不匹配」的數據結構,使用這種功能完善且幾乎沒有Bug的開源框架進行機器學習研究,無疑是一件值得高興的事。更深入地學習Scikit-learn如前所述,Scikit-learn針對每個算法和模塊都提供了豐富的參考樣例和詳細的說明文檔,據官方的統計大約有200多個。
  • Python 機器學習 Scikit-learn 完全入門指南
    使用 Python 的科研人員,幾乎都用過 SciPy。SciPy 是一個開源的 Python 科學計算庫,其中涵蓋了科學計算中的各種工具,包括統計、積分、插值、最優化,圖像處理等等。SciPy 可以與 NumPy 合作,高效地進行矩陣計算。
  • CDA承接的全球頂級機器學習Scikit-learn 中文社區上線啦!
    (注:scikit-learn的官網是www.scikit-learn.org,CDA承接的中文社區網址是www.scikit-learn.org.cn,這同時也標誌著CDA與全球頂級深度學習和機器學習框架更進一步融合,CDA認證更加得到全球頂級技術框架的認可!
  • Python 機器學習庫 Top 10,你值得擁有!
    這些庫包括 LightGBM, XGBoost, 和 CatBoost。這些庫互為競爭對手,同樣使用了幾乎相同的思路來解決一個共同問題。這些庫都提供了高度可擴展,優化和快速的梯度增強實現,使其在機器學習開發人員中很受歡迎。 因為大多數機器學習開發人員通過使用這些算法贏得了機器學習競賽。
  • 令人讚嘆的8個Python新手工具!
    IDLE 易於學習,因為它重量輕且易於使用。但它僅僅是編程世界的敲門磚,可以讓你快速上手,之後的路途依然要找尋一些別的工具。2、 Scikit-learnscikit-learn是一個建立在Scipy基礎上的用於機器學習的Python模塊。
  • 遊戲夜讀|Scikit-learn的2018自述
    那該如何有理有據地抨擊一款正被廣泛使用的工具呢?請務必從用戶需求下手。那就聊一聊機器學習模塊,算法,模型,策略,評估,可視化……那些跟人工智慧有關的需求。Scikit-learn的初心是…這裡應該回憶一遍Scikit-learn(sklearn)是如何成長為Python的機器學習庫的,哪怕是最快速的帶過:2007年開始,距離2018年已經過去11年。(其他的廢話準備另寫一篇《Scikit-learn迎來0.21之前》。)Python在數據科學領域的快速發展,歸功於那些頻繁提交commit的傢伙們。
  • Scikit-learn核心開發人員:建立機器學習工作流最容易犯2點錯誤
    受訪者:Andreas Muller,Scikit learn 的核心開發人員,書籍《Python 機器學習入門》的作者,哥倫比亞大學數據科學研究所的科學家、講師。Haebichan Jung:開源社區是如何維護 Scikit-learn 的?結構化的庫的工作流程和所有權是怎麼樣的?Andreas Muller:首先是用戶。
  • 2019 必知的 10 大頂級 python 庫
    在本文中,我們將討論一些 python 中的頂級庫,開發人員可以使用這些庫在現有的應用程式中應用、清洗和表示數據,並進行機器學習研究。然而,最重要的一點是它有大量的庫供用戶使用。python 的簡單性吸引了許多開發人員為機器學習創建新的庫。由於有大量的庫,python 在機器學習專家中變得非常流行。所以,這裡要介紹的第一個庫是 TensorFlow。1.TensorFlow
  • 20個超棒的Python 庫集合分享
    Plotly (Commits: 2906, Contributors: 48) 官網:https://plot.ly/python/ Plotly 是一個流行的庫,它可以讓你輕鬆構建複雜的圖形。該軟體包適用於交互式 Web 應用程,可實現輪廓圖、三元圖和三維圖等視覺效果。 8.
  • 使用Scikit-learn 理解隨機森林
    雷鋒網按:本文為 AI 研習社編譯的技術博客,原標題 Random forest interpretation with scikit-learn,作者 ando。我的一些代碼包正在做相關工作,然而,大多數隨機森林算法包(包括 scikit-learn)並沒有給出預測過程的樹路徑。因此 sklearn 的應用需要一個補丁來展現這些路徑。
  • Python機器學習的迷你課程(14天教學)
    您可能需要使用特定於平臺的包管理器,如OS X上的macports或RedHat Linux上的yum。您還需要安裝SciPy平臺和scikit-learn庫。我建議使用與安裝Python相同的方法。你可以用Anaconda一次安裝所有的東西(更容易)。推薦給初學者。
  • 用scikit-learn解救蔡徐坤
    本文介紹一個自動檢測仇恨言論系統——使用scikit-learn構建,並通過Heroku上的Docker進行部署。作為線上留言板或評論區的監管員,在網上評論開始出現攻擊性、和辱罵性言語時能得到快速提醒。及時採取控制措施。工作流程只需四步:1. 用scikit-learn訓練並堅持使用一個預測模型2.
  • scikit-learn中的自動模型選擇和複合特徵空間
    使用scikit-learn管道自動組合文本和數字數據有時,機器學習模型的可能配置即使沒有上千種,也有數百種,這使得手工找到最佳配置的可能性變得不可能,因此自動化是必不可少的。在處理複合特徵空間時尤其如此,在複合特徵空間中,我們希望對數據集中的不同特徵應用不同的轉換。
  • 只需十四步:從零開始掌握Python機器學習(附資源)
    即便如此,我也建議你常使用 Python 文檔:https://www.python.org/doc/第二步:機器學習基礎技巧KDnuggets 的 Zachary Lipton 已經指出:現在,人們評價一個「數據科學家」已經有很多不同標準了。這實際上是機器學習領域領域的一個寫照,因為數據科學家大部分時間幹的事情都牽涉到不同程度地使用機器學習算法。
  • 在機器學習回歸問題中,你應該使用哪種評估指標?
    1 - (SSE/SST)SSE是誤差的平方和;實際值與預測值之差的平方和。SST為總平方和(有時用TSS表示);實際值與實際均值之差的平方之和實際值與實際均值之差的平方之和。用更數學的符號:1 - (∑(y - ) / ∑(y - y))下面是代碼的樣子——改編自scikit-learn,主要的Python機器學習庫。
  • 那些讓人驚豔的Python庫
    pyBarcode–不藉助PIL庫在Python程序中生成條形碼。pygram–類似Instagram的圖像濾鏡。python-qrcode–一個純Python實現的二維碼生成器。Quads–基於四叉樹的計算機藝術。scikit-image–一個用於(科學)圖像處理的Python庫。
  • 手把手教您Python機器學習項目
    加載數據集並使用統計摘要和數據可視化理解它的結構。創建6個機器學習模型,選擇最好的,建立準確性可靠的信心。如果您是一個機器學習初學者,並希望最終開始使用Python,那麼本教程就是為您設計的。讓我們開始吧2017年1月/2017年1月更新:更新以反映scikit-learn API在0.18版本中的變化。2017年3月/更新:添加幫助設置Python環境的。2018年4月更新:增加了一些關於隨機性和預測的有用連結。
  • 五個鮮為人知,但又不可不知的機器學習開源項目
    Hyperopt-sklearnHyperopt-sklearn是基於scikit-learn項目的一個子集,其全稱是:Hyper-parameter optimization for scikit-learn,即針對scikit-learn項目的超級參數優化工具。由於scikit-learn是基於Python的機器學習開源框架,因此Hyperopt-sklearn也基於Python語言。
  • 鳶尾花預測:如何創建機器學習Web應用程式?
    作為數據科學家或機器學習工程師,能夠部署數據科學項目非常重要,這有助於完成數據科學生命周期。通過既有框架(如Django或Flask)對傳統機器學習模型進行部署,可能是一項艱巨耗時的任務。本文就將展示如何在Python庫中使用streamlit,用不到50行的代碼構建一個簡單的基於機器學習的數據科學web應用程式。
  • Python入門很簡單,只要掌握3456點
    模塊操作(導入使用、模塊查尋等操作) 4.並發操作(進程與線程、鎖/信號號/安全隊列等) 五大基本語句(5) 1. 賦值語句(變量、對象、賦值運算符) 2. 輸入輸出語句(print, input函數) 3.