資料預處理系列 (十三)用字典學習分解法分類

2021-07-14 02:09:04 字數 2944 閱讀 8621

博主簡介:風雪夜歸子(英文名: 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...