我想训练一个程序,根据它们包含的数值给字典不同的标签-使用scikit。我的问题是,我似乎只知道如何分类文本(句子)或数字变量(而不是包含多个数字的变量)。
下面是我要做的:
# available classes:
# hot, cold, wet, sticky
first_sample = {}
first_sample["temp"] = 30
first_sample["airpressure"] = 104
first_sample["airmoisture"] = 70
second_sample = {}
second_sample["temp"] = 2
second_sample["airpressure"] = 100
second_sample["airmoisture"] = 40
# do this manually X times
train(first_sample, ['sticky', 'hot'])
train(second_sample, ['wet', 'cold'])
train(...)
# then do it on a bunch of data by programme
classify(bunch_of_data)
您需要训练两个分类器并使它们两次适合您的数据。假设您的数据是(您可以使用Pandas
将您的字典转换为数据帧):
| "temp" | "airpressure" | "airmoisture"| "target1" | "target2" |
|:------:|:-------------:|:------------:|:---------:|:---------:|
| 30 | 104 | 70 | 'sticky' | 'hot' |
| 2 | 100 | 40 | 'wet' | 'cold' |
| . | . | . | . | . |
| . | . | . | . | . |
| . | . | . | . | . |
首先,将第一个分类器(clf1)拟合到所有样本(设为X)和目标target1
的第一列(设为y1)
clf1.fit(X,y1)
然后是X上的第二个分类器(clf2)和目标target2
(或y2)的第二列。
clf2.fit(X,y2)