博主簡介:風雪夜歸子(英文名: allen),機器學習演算法攻城獅,喜愛鑽研machine learning的黑科技,對deep learning和artificial intelligence充滿興趣,經常關注kaggle資料探勘競賽平台,對資料、machine learning和artificial intelligence有興趣的各位童鞋可以一起**哦,個人csdn部落格:
在這個主題中,我們將介紹一種可以用於分類的分解方法——字典學習(dictionary learning),將資料集轉換成乙個稀疏的形式。
dictionarylearning
方法的思想是把特徵看作構成資料集的基礎。首先我們匯入iris
資料集:
in [1]:
%matplotlib inline
import
matplotlib.pyplot
asplt
import
numpy
asnp
in [2]:
from
sklearn.datasets
import
load_iris
iris
=load_iris
()iris_data
=iris
.data
iris_target
=iris
.target
首先,匯入dictionarylearning
:
in [3]:
from
sklearn.decomposition
import
dictionarylearning
然後用三個成分表示iris
資料集中花的型別:
in [4]:
dl=dictionarylearning(3
)
再用fit_transform
轉換其他資料,這樣我們就可以對比訓練前後的資料了:
in [5]:
transformed=dl
.fit_transform
(iris_data
[::2
])transformed[:5
]
array([[ 0. , 6.34476574, 0. ],[ 0. , 5.83576461, 0. ],
[ 0. , 6.32038375, 0. ],
[ 0. , 5.89318572, 0. ],
[ 0. , 5.45222715, 0. ]])
我們可以視覺化這個結果。注意,每個成分的值分別平行
x x,y
y和zz
三個軸,其他座標都是0;這就是稀疏性。
in [6]:
from
mpl_toolkits.mplot3d
import
axes3d
colors=np
.array
(list
('rgb'))f
=plt
.figure
()ax=f
.add_subplot
(111
,projection
='3d')ax
.set_title
("training set")ax
.scatter
(transformed
[:,0
],transformed
[:,1
],transformed
[:,2
],color
=colors
[iris
.target
[::2
]]);
如果你細心看,還是會發現一些誤差。有乙個樣本分錯了型別,雖然乙個錯誤並不是很嚴重。
下面,讓我們用fit
而不用fit_transform
來訓練資料集:
in [7]:
transformed=dl
.transform
(iris_data[1
::2])
in [8]:
colors=np
.array
(list
('rgb'))f
=plt
.figure
()ax=f
.add_subplot
(111
,projection
='3d')ax
.set_title
("training set")ax
.scatter
(transformed
[:,0
],transformed
[:,1
],transformed
[:,2
],color
=colors
[iris
.target[1
::2]]);
還是有一些分類錯誤的樣本。如果你看看之前降維主題中的圖,會發現綠色和藍色兩類資料有交叉部分。
dictionarylearning
具有訊號處理和神經學領域的背景知識。其理念是某一時刻只有少數特徵可以實現。因此,dictionarylearning
在假設大多數特徵都是0的情況下,嘗試發現乙個適當的資料表現形式。
資料預處理系列 (五)分類變數處理
博主簡介 風雪夜歸子 英文名 allen 機器學習演算法攻城獅,喜愛鑽研machine learning的黑科技,對deep learning和artificial intelligence充滿興趣,經常關注kaggle資料探勘競賽平台,對資料 machine learning和artificial...
系列二 資料預處理
旨在對資料探勘有個系統的認識,這部分僅僅是對於資料預處理!對於常規的資料預處理主要分為以下4步驟 1 資料清洗 解決缺失值 異常值 離群點的問題 2 資料整合 解決樣本重複 指標構建 屬性高度相似的問題 2 資料規約 解決資料規模過大的問題 4 資料變換 將資料轉化為更方便分析的資料 1 填充缺失值...
機器學習 資料預處理
均值為0,標準差為1 from sklearn import preprocessing scaler preprocessing.standardscaler scaler.fit transform x 對原始資料進行線性變換,變換到 0,1 區間 也可以是其他固定最小最大值的區間 from s...