我有一個數據集users
。每個用戶都有性別和顏色屬性(最喜歡的顏色),等等。我分一種性別的用戶的每個顏色和總和其中這樣顏色的一個列表:我應該如何重新格式化我的數據sklearn.naive_bayes.GaussianNB
features_train = [['indigo', 2341], ['yellow', 856], ['lavender', 690], ['yellowgreen', 1208], ['indigo', 565], ['yellow', 103], ['lavender', 571], ['yellowgreen', 234] ...]
在第二列表中的每個元件從所述第一列表我說哪個性別表示該元素:
labels_train = [0, 0, 0, 0, 1, 1, 1, 1, ...]
現在我有第三個顏色列表:features_test = ['yellow', 'red', ...]
,我需要預測性別。
我必須使用naive_bayes.GaussianNB
函數從sklearn
我將有更多的屬性users
,但解釋我的問題,我只使用顏色和性別。所以,我找到了一個正式的例子,但我不明白我應該如何重新格式化我的數據集才能使用它們。我是否應該將我的顏色轉換爲以下幾種數字表示形式:[[0, 2341], [1, 856]]
或者我應該使用sklearn
中的一些其他功能來做到這一點?
import numpy as np
from sklearn.naive_bayes import GaussianNB
clf = GaussianNB()
clf.fit(features_train, labels_train)
print(clf.predict(features_test))
轉換顏色爲整數,並嘗試運行你的代碼。 –
我不明白。你想使用每個列表的第二個元素(關於「一個性別的用戶總數」的功能)嗎?如果是,那麼在預測數據時也需要提供它。無論如何,scikit-learn估計器不支持X中的字符串。您需要按照@Shiva的建議將它們轉換爲數字。 –
[sklearn.preprocessing.LabelEncoder](http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html)可能會幫助您將1D字符串數組轉換爲數值... – MaxU