我有一个数据集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