楊桃的Python機器學習2——標籤和特徵

本人CSDN博客專欄:https://blog.csdn.net/yty_7

Github地址:https://github.com/yot777/

 

好了,機器學習進入正題了,我們從大家身邊的實例開始講起。

什麼是標籤

標籤,通俗的講是對某人某事物的憑經驗的分類 。

大家都知道,人有高矮胖瘦之分,那麼高是怎樣定義出來的呢?

我查了一下,“高”在字典裏的解釋是:從下向上距離大;離地面遠(跟“低”相對)。爲什麼解釋“高”,要扯到“低”?

爲了弄清楚“高”,我又查了一下“低”:從下向上距離小;離地面近(跟“高”相對)。

真想用愛情公寓裏陳美嘉的名言對字典說:“我一口鹽汽水噴si你!”

總之呢,從字典裏搞清楚“高”是不可能的。但是我們每個人確實都覺得有的人長得高,有的人長得低(矮),這又是爲什麼呢?

什麼是特徵

如果你問姚明,覺得什麼人算長得高?他可能會說:2米以上算長得高!

如果你問美女模特,覺得什麼樣的男人算長得高?她可能會說,1米75以上算長得高!

如果你問普通男人,覺得什麼樣的女人算長得高?他可能會說,1米6以上算長得高!

如果你問非洲某小人國部落,他可能會說,1米以上就算是巨人了!

明白了嗎?其實大家心裏都有一杆秤啊!標籤的背後,是有某種可以量化爲數字的指標做支撐,這就叫特徵

特徵和標籤的配對

好了,解釋了特徵和標籤,現在我們可以進行特徵和標籤的配對了。接着上面的話題:

姚明眼中的人類:

  特徵(身高,以米爲單位) 標籤
A 1.51
B 1.61
C 1.76
D 2.1

美女模特眼中的人類:

  特徵(身高,以米爲單位) 標籤
A 1.51
B 1.61
C 1.76
D 2.1

普通男人眼中的人類:

  特徵(身高,以米爲單位) 標籤
A 1.51
B 1.61
C 1.76
D 2.1

非洲某小人國部落眼中的人類:

  特徵(身高,以米爲單位) 標籤
A 1.51
B 1.61
C 1.76
D 2.1

可以看出,在不同人眼中,即使相同的標籤代表的含義也是不同的。以下我們以“普通男人眼中的人類”進一步展開討論。

我們已經知道了普通男人眼中的人類關於高矮的標準是:1米6以上算長得高。

那麼再有其他高度的人,我們很容易得到其他人的標籤,如下:

  特徵(身高,以米爲單位) 標籤
A 1.51
B 1.61
C 1.76
D 2.1
E 1.58
F 1.68 高 

爲了方便計算機識別,通常我們把標籤改爲0/1/2這樣的數字,本例中我們用0代表“矮”,用1代表“高”,因此上表簡化爲

  特徵(身高,以米爲單位) 標籤
A 1.51 0
B 1.61 1
C 1.76 1
D 2.1 1
E 1.58 0
F 1.68 1

這樣就形成了一個人類身高的特徵——標籤矩陣,一般來說,標籤都是位於該矩陣的最後一列。

Python實現特徵——標籤矩陣

代碼如下:

import numpy as np
S = np.array([[1.51,0],[1.61,1],[1.76,1],[2.1,1],[1.58,0],[1.68,1]])
print(S)

#運行結果:
[[1.51 0.  ]
 [1.61 1.  ]
 [1.76 1.  ]
 [2.1  1.  ]
 [1.58 0.  ]
 [1.68 1.  ]]

取出標籤和特徵:

import numpy as np
S = np.array([[1.51,0],[1.61,1],[1.76,1],[2.1,1],[1.58,0],[1.68,1]])
#原始特徵——標籤矩陣
print("原始特徵——標籤矩陣是\n",S)
#取出標籤
print("標籤是\n",S[:,-1])
#取出特徵
print("特徵是\n",S[:,0:-1])

運行結果:
原始特徵——標籤矩陣是
 [[1.51 0.  ]
 [1.61 1.  ]
 [1.76 1.  ]
 [2.1  1.  ]
 [1.58 0.  ]
 [1.68 1.  ]]
標籤是
 [0. 1. 1. 1. 0. 1.]
特徵是
 [[1.51]
 [1.61]
 [1.76]
 [2.1 ]
 [1.58]
 [1.68]]

請注意,標籤都是位於該矩陣的最後一列,因此我們用到了之前講過的數組(矩陣)取列的寫法:

[ ]以冒號逗號(即:,)開頭,表示取列元素因此S[:,-1]就是開始數的第1列,也就是標籤

再看本例中取特徵的寫法是S[:,0:-1],表示開始數直到最右邊第1列的左列爲止(如果不理解,請回看:楊桃的Python進階講座16——數組array(六)一維數組和二維數組的索引和取值),貌似直接寫S[:,0]也沒問題?

需要說明,本例只有一個特徵列,實際應用中往往是多個特徵列對應一個標籤,因此這裏取特徵的寫法S[:,0:-1]是通用的寫法。

 

總結

標籤,是對某人某事物的憑經驗的分類 。

某種可以量化爲數字的指標,叫做特徵

通常把標籤改爲0/1/2這樣的數字便於計算機處理。

可以把標籤和特徵配對形成:特徵——標籤矩陣,一般來說,標籤都是位於該矩陣的最後一列。

利用Python實現特徵——標籤矩陣S,S[:,-1]表示標籤S[:,0:-1]表示特徵。

 

本人CSDN博客專欄:https://blog.csdn.net/yty_7

Github地址:https://github.com/yot777/

如果您覺得本篇本章對您有所幫助,歡迎關注、評論、點贊!Github歡迎您的Follow、Star!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章