學 Python 的理由有很多:簡單、方便、適合寫爬蟲、處理數據等等,但相信還有不少人是衝著 Python 在人工智慧領域的「扛把子」地位而來的。
在人工智慧領域,大部分的項目都是使用 Python 或構建在 Python 基礎上的框架搭建的,這對 Python 程式設計師來說是一個福音。但我們都知道,機器學習常用的算法有很多,例如:線性回歸、支持向量機、k 近鄰、決策樹、樸素貝葉斯、邏輯回歸等。其中的一些算法都有著比較複雜的數學過程,如果每一次都需要自己通過代碼實現這些算法,那麼機器學的門檻就變得很高了。
這時,scikit-learn 來了。
Scikit-learn 是一個非常流行的機器學習工具,它幾乎集成了所有經典的機器學習算法,你只需要幾行代碼,通過簡單的方法類調用,就可以實現原本複雜的機器學習模型。如果你是一名 Python 程式設計師,又正好想學習一下人工智慧技術,scikit-learn 可能是你最好的選擇之一。
實驗樓上線了一門新課 —《scikit-learn 機器學習入門實戰》,可以帶大家快速掌握 scikit-learn 框架使用方法、機器學習基礎概念、常用算法等知識點,並通過模型的搭建和選擇,進一步提升你的實踐能力。https://www.shiyanlou.com/courses/1572下面是課程的第一節內容,機器學習和 scikit-learn 的基本介紹。監督學習概念
無監督學習概念
機器學習算法
scikit-learn 工具
監督學習介紹機器學習中,我們通常會接觸到:監督學習、無監督學習、半監督學習,強化學習等不同的應用類型。其中,監督學習(英語:Supervised learning)是最為常見,且應用最為廣泛的分支之一。監督學習的目標是從已知訓練數據中學習一個預測模型,使得這個模型對於其他輸入數據產生一個預測輸出。其中,監督學習的「監督」是相對與「無監督」的一種表達,二者的區別在於,監督學習的訓練數據經過了人工進行標註,而無監督學習則沒有這個過程。如同上面的兩個簡單的數據集。左邊的數據集明顯沒有經過標註。而右邊數據集則進行了顏色標註,也就是人為給數據樣本打上了橙色、綠色和藍色的標籤。監督學習的類型監督學習中,所面對的問題大致分為兩類:分類和回歸。其中,分類問題可以簡單概括為:已有了一些數據樣本及明確的樣本分類。現在從這些樣本的特徵中總結規律,再用於判斷新輸入樣本到底屬於哪一類別。例如下圖展示了一個分類過程,使用監督學習算法對水果進行類別區分。分類的例子在生活中處處可見。比如這裡正在講,監督學習可以分為分類和回歸一樣。而面對一個新問題,判斷它是屬於分類還是回歸,就需要根據這個問題具備的特徵來判斷。其中,回歸問題與分類問題的最大區別(特徵)在於,輸出變量的類型不同。詳細來說:舉個例子,當我們預測一個人的性別時,就是一個典型的分類問題。而預測一個人的年齡時,則應看作是回歸問題。無監督學習介紹什麼是無監督學習?籠統來講,它和監督學習是一個相對的概念。在監督學習的過程中,我們需要對訓練數據打上標籤,這是必不可少的一步。而無監督學習面對的數據是沒有標籤的。舉個例子,比如我們現在有一堆動物的照片。在監督學習中,我們需要提前對每張照片代表的動物進行標記。這一張是狗,那一張是貓,然後再進行訓練。最後,模型對於新輸入的照片,就能分清楚動物的類別。當進行無監督學習時,照片並未進行標註。我們需要將所有的訓練樣本照片「餵」給算法即可。注意,這個時候和監督學習有一些不同,無監督學習只能識別出訓練樣本裡包含了幾種類別的動物,而並不能直接告訴你這只是貓,那一隻是狗。但是,這裡的類別數量一般都不會太大,你可以手動對類別進行標記,再將數據用於其他用途。上面這個例子中,無監督學習識別出樣本包含幾種類別,就是我們通常所說的「聚類」。如下圖所示,演示了一個無監督的聚類過程。當然,上面所說的聚類只是無監督學習主要面對的問題,實際上無監督學習還包括降維等更多的應用方面。機器學習中,當我們使用到的數據沒有特定標籤時,基本都可以被歸為無監督學習問題。scikit-learn 介紹機器學習常用的算法有很多,例如:線性回歸、支持向量機、k 近鄰、決策樹、樸素貝葉斯、邏輯回歸等。其中的一些算法都有著比較複雜的數學過程,如果每一次都需要自己通過代碼實現這些算法,那麼機器學的門檻就變得很高了。 scikit-learn 是一個十分流行的開源機器學習工具,它基於 Python 的 NumPy 和 SciPy 庫構建,將眾多的機器學習算法封裝起來,往往只需要幾行代碼,通過簡單的方法類調用,就可以實現原本複雜的機器學習模型,在學術界和工業界廣泛使用。scikit-learn 中的數據在 scikit-learn 中實現的大多數機器學習算法都將數據存儲在二維數組或矩陣中。數組可以是 numpy 數組,在某些情況下是 scipy.sparse 矩陣。篇幅有限,後續的課程內容,請在實驗樓邊敲代碼邊學習~