六行代碼實現你的第一個機器學習程序!

2021-02-25 辰語學習筆記

Google出了一個面向新手的機器學習教程,每集六七分鐘,言簡意賅,只掌握最基礎的Python語法知識,便可以實現一些基本的機器學習算法。



Machine learning recipes(一)

開始前,課程將用到兩個開源的庫文件—scikit-learn和Tensorflow。

接下來步入正題:寫一個能區分蘋果和橘子的代碼,若寫出大量規則是行不通的,因為現實生活中充滿著不確定因素,制定的規則往往會被打破。所以我們需要一種算法能自動生成規則,這就需要訓練一個分類器classifier(可以認為是一種方法:接收輸入數據後給它們分配標籤labels作為輸出)。而用來實現分類器的技術稱為監督學習(Supervised Learning)。

寫這個分類器的代碼要用到scikit-learn這個Python包。

安裝scikit-learn之前,要先安裝Numpy+MKL、Scipy這兩個包,進入加州大學實驗室的網站:http://www.lfd.uci.edu/~gohlke/pythonlibs/ ,分別找到Numpy、Scipy這兩個包的下載連結,然後下載whl格式的安裝文件。

注意下載安裝文件的版本號要和電腦上的Python版本相對應,比如小編的電腦是64位作業系統,Python是3.5版本的,下載的安裝文件是numpy-1.13.1+mkl-cp35-cp35m-win_amd64.whl、scipy-1.0.0b1-cp35-cp35m-win_amd64.whl。


下載Numpy的安裝包

下載Scipy的安裝包


在安裝Python的包以前,我們要確認電腦上的Python中有pip模塊,這樣我們才能使用whl文件安裝Python包。

下載好安裝文件以後,在「開始」菜單的「運行」裡面輸入「cmd」打開DOS命令行,在DOS命令行下面進入剛才下載安裝文件的文件夾,分別輸入下面兩個命令,安裝Numpy、Scipy這兩個包:

pip install numpy-1.13.1+mkl-cp35-cp35m-win_amd64.whl

pip install scipy-1.0.0b1-cp35-cp35m-win_amd64.whl

安裝numpy包


安裝scipy包


最後,在上面說到的加州大學實驗室網站下載並安裝scikit-learn:

pip install scikit_learn-0.19.0-cp35-cp35m-win_amd64.whl


下載scikit-learn的安裝包


安裝scikit-learn包


在Python中輸入:

import sklearn

若沒有報錯則說明安裝成功!

那麼首先用第1行代碼:引用分類器(決策樹)後面解釋

from sklearn import tree

對於監督學習有幾個基本步驟我們得去實現:

Step1:Collect Training Data(收集訓練數據)

Step2:Train Classifier(訓練分類器)

Step3:Make Predictions(作出預測)

Step1:Collect Training Data(收集訓練數據)

擁有越多的訓練數據,我們的分類器就能工作越好。

下面用第2、3行代碼表示訓練數據,定義兩個變量:features特徵和labels標籤並處理一下特性數據用整數而不用字符串,0代表Bumpy;1代表Smooth;0代表Apple;1代表橘子。

features = [[140, 1], [130, 1], [150, 0], [170, 0]]

labels = [0, 0, 1, 1]


Step2:Train Classifier(訓練分類器)

這裡用到的分類器類型為決策樹Decision Tree,後面課程會深入解釋。

第4行代碼中創建一個分類器:

clf = tree.DecisionTreeClassifier()

 

第5行代碼來訓練分類器:

clf = clf.fit(features, labels)


現在就有了一個訓練好的分類器啦!

Step3:Make Predictions(作出預測)

下面用最後一行第6行代碼我們用訓練好的分類器預測一個水果Weight:150g,表皮Bumpy的水果是什麼?如果輸出為0則為Apple,1為Orange。

print clf.predict([150, 0])

注意:如果你用的是Python3,需要將第六行代碼改為:

print(clf.predict([150, 0]))


程序的6行代碼


我們人為來預測一下會是什麼?根據訓練數據我們認為會是1即Orange

在Python中運行一下結果輸出為

[1]

恭喜!我們用了6行代碼就實現了一個機器學習程序!

作為練習,你可以再在另一個程序,改變訓練數據,來創建一個新的分類器。數據如下,來動手練習一下吧!


你也會有疑問,為什麼用水果特徵來做訓練數據而不用圖片?


在後面的章節會提到,但是這次用的方法是最普遍的。

後續的課程我會繼續和大家一起學習,有的小夥伴覺得節奏太慢忍不住要先學習一下,我把課程連結放在這裡,方便小夥伴們自行觀看學習!

傳送門:http://i.youku.com/i/UMjczOTc0NDkzNg==/custom?id=87105


好了,以上就是本篇文章的所有內容了,強烈建議大家能夠親手實踐一下,畢竟紙上得來終覺淺,絕知此事要躬行。最後感謝大家的閱讀。



相關焦點

  • 10 行代碼,實現手寫數字識別
    聽說世界上只有百分之3的人關注Jayson,很幸運你是其中一位識別手寫的阿拉伯數字,對於人類來說十分簡單,但是對於程序來說還是有些複雜的
  • 小試牛刀,手把手帶你實現第一個Go程序
    上篇文章,我們已經搭建了Go語言環境,可以戳這裡:手把手帶你進行Golang環境配置,本次我們來安排一下如何在win平臺上輸出都一個Go程序。小試牛刀,第一個Go程序每學一門新語言,都是從Hello World開始的。
  • 幾行代碼搞定ML模型,低代碼機器學習Python庫正式開源
    想提高機器學習實驗的效率,把更多精力放在解決業務問題而不是寫代碼上?低代碼平臺或許是個不錯的選擇。最近,機器之心發現了一個開源低代碼機器學習 Python 庫 PyCaret,它支持在「低代碼」環境中訓練和部署有監督以及無監督的機器學習模型。
  • 機器學習實戰指南:如何入手第一個機器學習項目?
    8.部署、監控、維護系統本文將介紹前三個部分,教你如何入手第一個機器學習項目!1. 使用真實數據學習機器學習時,最好使用真實數據,而不是「人造」數據。幸運的是,有許多開源的數據集可以免費使用,涉及許多行業領域。
  • Jeff Dean推薦:用TPU跑Julia程序,只需不到1000行代碼
    這篇論文描述了通過這個新的API和Google XLA編譯器,將Julia程序的適當部分卸載(offload)到TPU的方法和實現。這一方法能夠將表示為Julia程序的VGG19模型的前向傳遞(forward pass)完全融合到單個TPU可執行文件中,以便卸載到設備。
  • 【下載】Scikit-learn作者新書《Python機器學習導論》, 教程+代碼手把手帶你實踐機器學習算法
    Müller同時也是著名機器學習Python包scikit-learn的主要貢獻者 Andreas Muller 和 Reonomy 公司數據科學家 Sarah Guido 的新書《Python機器學習導論》(Introduction to machine learning with Python)從實戰角度出髮帶你用Python快速上手機器學習方法。
  • 【C語言】02.第一個C語言程序
    三、連結程序四、運行程序五、總結六、學習建議七、clang指令匯總前言前面已經嘮叨了這麼多理論知識,從這講開始,就要通過接觸代碼來學習C語言的語法。 2.寫代碼1> C程序由函數構成寫代碼之前,你首先要知道:任何一個C語言程序都是由一個或者多個程序段(小程序)構成的,每個程序段都有自己的功能,我們一般稱這些程序段為「函數」。所以,你可以說C語言程序是由函數構成的。比如你用C語言編寫了一個MP3播放器程序,那麼它的程序結構如下圖所示:
  • 【R教程】R做你的第一個機器學習項目教程(一)
    你是否想要用R做機器學習,但又苦惱於怎麼開始做?在這篇文章裡你將會用R完成你的第一個機器學習項目。
  • 機器學習建模神器 PyCaret 已開源!提升效率,幾行代碼輕鬆搞定模型
    (low-code)機器學習庫,支持在「低代碼」環境中訓練和部署有監督以及無監督的機器學習模型,提升機器學習實驗的效率。現在,讓我們一起來領略下:如何用僅僅幾行代碼搞定一個機器學習模型吧。首發 PyCaret 1.0.0我們很高興能宣布PyCaret,這是一個使用Python的開源機器學習庫,用於在Windows上訓練和部署有監督和無監督的機器學習模型低碼環境。通過PyCaret,您可以在選擇筆記本電腦環境後的幾秒鐘內,從準備數據到部署模型。
  • 幾行JavaScript代碼構建計算機視覺程序,這裡有6個js框架
    如何使用幾行 JavaScript 代碼輕鬆構建計算機視覺應用程式?近年來,計算機視覺一直都是熱門話題,造就了無數好的應用程式。
  • AI從其他程序偷代碼,來編寫自己的程序
    由微軟和劍橋大學研發的系統DeepCoder已經能夠解決類似編程比賽中出現的基礎編程問題。這樣一來就方便多了,人類無需熟知代碼也可以完成簡單的程序。給每段代碼一列輸入和輸出值,DeepCoder就會懂得需要哪些代碼片段來獲得指定的結果。讓人工智慧在這上面自由發揮的優勢在於它比人類程式設計師的程序搜索範圍更廣泛更徹底,所以最終AI有可能拼接出人類根本沒設想過的原始碼。此外,DeepCoder還利用機器學習窮盡原始碼資料庫,並根據潛在的實用價值將代碼片段進行排序。這些改良使系統比它的前輩們動作快多了。
  • 【讓調參全部自動化】自動機器學習,神經網絡自主編程(代碼與訣竅)
    在過去幾年,自動機器學習(AutoML)成了一個研究的熱點。在繼續接下來的話題之前,我們先簡單介紹什麼是 AutoML,它為什麼重要。然後,我們將介紹一個訓練神經網絡自動編程的項目,附上代碼,你可以自己練習。看著神經網絡自己編程是件很令人興奮的事情,我們強烈推薦你自己動手實踐。首先,什麼是自動機器學習(AutoML)?
  • 比Keras更好用的機器學習「模型包」:0代碼上手做模型
    做機器學習模型時,只是融合各種算法,就已經用光了腦細胞?又或者覺得,數據預處理就是在「浪費時間」?一位畢業於哥廷根大學、做機器學習的小哥也發現了這個問題:原本只是想設計個模型,結果「實現比設計還麻煩」。
  • 機器學習之特徵工程Feature-Engineering及sklearn代碼實現
    這個原理應用到機器學習中,就是在可以很好地解釋訓練數據的模型中,越簡單的模型才是最好的。那麼做好特徵工程,就非常有利於我們得到一個「更好的」模型;在機器學習的整個過程中特徵工程佔用了70~80%的時間,其完成質量也直接影響模型最終的輸出結果。就特徵工程的流程、類型、工具、數據預處理、特徵選擇、降維在學習之餘,做簡單的總結和介紹、附可執行的python代碼。
  • 比Keras更好用的機器學習「模型包」:無需預處理,0代碼上手做模型
    原標題:比Keras更好用的機器學習「模型包」:無需預處理,0代碼上手做模型蕭簫發自凹非寺量子位報導|公眾號QbitAI做機器學習模型時,只是融合各種算法,就已經用光了腦細胞?一位畢業於哥廷根大學、做機器學習的小哥也發現了這個問題:原本只是想設計個模型,結果「實現比設計還麻煩」。於是他自己動手做了個項目igel(德語中意為「刺蝟」,但也是Init、Generate、EvaluateMachineLearning的縮寫),無需編寫任何多餘代碼,就能設計出想要的模型。
  • 鳶尾花預測:如何創建機器學習Web應用程式?
    作為數據科學家或機器學習工程師,能夠部署數據科學項目非常重要,這有助於完成數據科學生命周期。通過既有框架(如Django或Flask)對傳統機器學習模型進行部署,可能是一項艱巨耗時的任務。本文就將展示如何在Python庫中使用streamlit,用不到50行的代碼構建一個簡單的基於機器學習的數據科學web應用程式。
  • 收藏 | 如何用Python實現機器學習算法(完整代碼)
    ,真正幫你從零轉型機器學習工程師!用Python實現出來的機器學習算法都是什麼樣子呢?下面從線性回歸到反向傳播算法、從SVM到K-means聚類算法,咱們一一來分析其中的Python代碼。,所以如下圖,處理後的y,前500行的第一列是1,其餘都是0,500-1000行第二列是1,其餘都是0....
  • 用python建立第一個機器學習模型-TF教程
    現在我們開始逐步了解機器學習庫Tensorflow。前期文章請看推文第二條。
  • 10行Python代碼也能實現,親測好用!
    大數據文摘出品編譯:朱一輝、雪清、小魚短短10行代碼就可以實現目標檢測?!本文作者和他的團隊構建了一個名為ImageAI 的Python庫,集成了現今流行的深度學習框架和計算機視覺庫。本文將手把手教你構建自己的第一個目標檢測應用,而且文摘菌已經幫你踩過坑了,親測有效!
  • 算法應用|機器學習python應用,簡單機器學習項目實踐
    上一篇文章中介紹了機器學習的簡單知識,還有python中進行機器學習實踐需要的生態環境,接下來將會通過鳶尾花分類這個例子對機器學習做一個簡要的介紹。通過一步一步地實現這個項目來介紹以下內容。導入和使用python中機器學習的各個方面的類庫。