2
我想在sklearn中使用DictVectorizer來訓練分類特徵。一些功能是整數,一些雙打和一些字符串。機器學習:轉換數組到字典列表
我有數據的數組:
array([['SalesPerson', 'Customer', 'Createdon', ...,
'TotEmailsOnFRIPM', 'TotEmailsOnSATPM', 'TotEmailsOnSUNPM'],
['Jim Bean',
'Acme Inc', '30:52.0', ..., '0', '0',
'0'],
['Stephie Graph',
'BigOil', '47:12.0', ..., '0', '0',
'0'],
...,
['Steven Amos',
'BBF Industries', '35:41.0', ..., '0', '0',
'0']])
其中第一行是列標題,並且行是下面的值。
爲了使用DictVectorizer我轉換這個數組字典列表如下:
features = data[0,:]
dict_list = []
N, F = data.shape
d = {}
for n in range(N):
for f in range(F):
feature = features[f]
d[feature] = data[n,f]
dict_list.append(d)
這產生字典列表如下:
[{'SalesPerson':'Jim Bean', 'Customer':'Acme Inc', 'Createdon':'35:41.0',...,'TotEmailsOnSUNPM':'0'},
...
{'SalesPerson':'Stephen Amos', 'Customer':'BBF Industries', 'Createdon':'30:52.0',...,'TotEmailsOnSUNPM':'0'}]
然而,當我運行DictVectorizer在這我得到一個數組滿1。
from sklearn.feature_extraction import DictVectorizer
v = DictVectorizer()
X_train = v.fit_transform(data_list)
X_train.toarray()
產地:
array([[ 1., 1., 1., ..., 1., 1., 1.],
[ 1., 1., 1., ..., 1., 1., 1.],
[ 1., 1., 1., ..., 1., 1., 1.],
...,
[ 1., 1., 1., ..., 1., 1., 1.],
[ 1., 1., 1., ..., 1., 1., 1.],
[ 1., 1., 1., ..., 1., 1., 1.]])
我要去哪裏錯了? 任何幫助將不勝感激。 預先感謝您
謝謝,愚蠢的錯誤。我現在有另一個問題,這是工作,我有不同的數據類型(字符串,浮點數和整數)的單獨列,我想連接它們,而不會丟失它們的類型。堆棧和列堆棧會丟失類型並將其全部推廣到字符串。 – user3240210
你有沒有考慮在[''pandas''](http://pandas.pydata.org/)中使用''DataFrame''?否則,您可能需要像[結構化數組](http://docs.scipy.org/doc/numpy/user/basics.rec.html)這樣的異構數據。 –