iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 25
1

嗨,今天是第25天,昨天開始介紹了何謂機器學習,機器學習有哪些類型,
今天我們說明機器學習內的名詞:特徵(features)標籤(labels),未來也會用這個說法。

主要內容:

  • 什麼是特徵(features)
  • 什麼是標籤(labels)
  • 特徵與標籤的範例說明
    • DecisionTreeClassifier
    • DecisionTreeClassifier預測

上一次說明了什麼是機器學習:簡單來說就是讓機器學習透過觀察分辨特徵來分類。

特徵與標籤

現在我們將簡單的用特徵標籤來介紹機器學習的原理!

現在來說明什麼是特徵吧,假設要讓機器分辨橘子或是蘋果該怎麼區分?
你可能會覺得用顏色分辨!
這是一個非常好的答案,但假設我們得到的照片是黑白照片我們要如何分辨?

範例

來看下面這個例子:

重量 表面 標籤
150g 橘子
170g 橘子
130g 平滑 蘋果
140g 平滑 蘋果
... ... ...

利用重量表面來當我們訓練的資料,而重量表面的資料就是我們所謂的特徵
標籤就是定義這些特徵的結果是哪一種水果,也就是我們透過機器學習想讓電腦告訴我們的答案。

轉換符號

接下來將上面的字改成電腦看得懂的二元數字:01

重量 表面 標籤
150g 1 0
170g 1 0
130g 0 1
140g 0 1

像上面這樣,我們將1表示、平滑用0表示。橘子用0、蘋果用1,用這種資料格式餵給電腦可以讓電腦容易理解。

Sklearn

有了資料之後,我們就可以用Sklearn來做機器學習了,來看看如何使用:

我們會用到簡單的二元樹分類,所以先import

from sklearn import tree 

特徵定義:

透過上面的表格我們可以這樣寫:

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

標籤定義:

透過上面的表格我們可以這樣寫:

labels = [0,0,1,1]

DecisionTreeClassifier

建立一個DecisionTreeClassifier二元樹分類:

clf = tree.DecisionTreeClassifier()

上面這邊我們參數使用預設的,當然,你可以參考:sklearn.tree.DecisionTreeClassifier自行修改。

放入資料到分類模型內:

clf = clf.fit(features,labels)

預測:

假設我們重量120g表面為平滑是什麼水果?

wantPredict = clf.predict([[120,0]]) 
if wantPredict == [1]:
    print('This is an apple')
elif wantPredict == [0]:
    print('This is an orange')

會得到結果:This is an apple。
Imgur

好的!那這個就是機器學習特徵與標籤的概念,是不是非常簡單呢!

總結

今天介紹了什麼是特徵標籤的概念,我們用簡單的範例做說明,也簡單介紹了Sklearn是如何快速的幫助我們做分類的動作,接下來我們將用Sklearn介紹更多的機器學習分類的範例!

更多參考資料:
sklearn.tree.DecisionTreeClassifier


上一篇
[Day24]什麼是機器學習Machine Learning?
下一篇
[Day26]機器學習:KNN分類演算法!
系列文
使用Python進行資料分析30

尚未有邦友留言

立即登入留言