機器學習
機器學習是從數據(data)中自動分析獲得模型(model),並利用規律對未知的數據進行預測(predict)
one-hot 編碼
- 不讓不同的特徵(皮膚顏色:黃、黑、白, 性別:男、女)之間有優先級之分
- 把不同類別的特徵轉換為以下形式,利於進行分析
Sample\皮膚顏色 | 黑 | 黃 | 白 |
---|---|---|---|
1 | 0 | 1 | 0 |
2 | 1 | 0 | 0 |
3 | 0 | 0 | 1 |
特徵抽取/提取(feature extraction)
特徵抽取是對任意數據(文本or圖像)等數據進行特徵值化便于機器學習
- 特徵值化是為了計算機更好的去理解數據
sklearn特徵抽取API
- 使用
sklearn.feature_extraction
字典特徵抽取
對字典數據進行特徵值化
- 把字典中一些類別的數據,分別轉換成特徵
- 應用場景:
- 數據集中有很多的類別特徵(性別,人員乘坐的船艙…等)
- 將數據集的特徵轉換成字典類型
DictVectorizer
轉換
- 本身拿到的數據就是字典類型即直接使用字典特徵抽取
- 數據集中有很多的類別特徵(性別,人員乘坐的船艙…等)
- 使用
sklearn.feature_extraction.DictVectorizer
DictVectorizer(sparse=True,…)
實例化了一個字典向量化的實例(轉換器類)
- sparse矩陣(節約內存,方便讀取處理)
sparse=False
時則返回一般矩陣(ndarray type)
fit_transform(X)
使用此方法就能將一個字典數據化
- X: 字典或者包含字典的迭代器
- 返回值: 返回sparse矩陣
inverse_transform(X)
- X: array陣列或者sparse矩陣
- 返回值: 轉換之前的數據格式(將陣列轉回原本的字典,形式會改變)
1 | [{'city=Taipei': 1.0, 'temperature': 35.0}, |
get_feature_names()
- 返回類別的名稱
1 | ['city=Chiayi', |
transform(X)
- 按照原先的標準轉換
流程
- 實例化類
DictVectorizer
- 調用
fit_transform
方法輸入數據並轉換
- 注意返回格式為sparse矩陣
Example
1 | from sklearn.feature_extraction import DictVectorizer |
sparse = True(預設)
結果返回稀疏(sparse)矩陣1
2
3
4
5
6
7
8(0, 3) 1.0
(0, 4) 35.0
(1, 2) 1.0
(1, 4) 32.0
(2, 1) 1.0
(2, 4) 30.0
(3, 0) 1.0
(3, 4) 31.0
- sparse矩陣較節約內存,提高加載數據的效率
- 前面的元組為第幾行,第幾列,後面的數字為值
sparse = False
DictVectorizer(sparse=False)
,返回ndarray(一般矩陣)1
2
3
4[[ 0. 0. 0. 1. 35.]
[ 0. 0. 1. 0. 32.]
[ 0. 1. 0. 0. 30.]
[ 1. 0. 0. 0. 31.]]