具有双值和scikit的多类分类

时间:2016-09-03 09:07:27

标签: python scikit-learn classification

我想训练一个程序,根据它们包含的数字值给出各种标签 - 用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)

1 个答案:

答案 0 :(得分:0)

您需要训练两个分类器并将它们适合您的数据两次。假设您的数据是(您可以使用Pandas将您的dicts转换为数据框):

| "temp" | "airpressure" | "airmoisture"| "target1" | "target2" | 
|:------:|:-------------:|:------------:|:---------:|:---------:|
|   30   |      104      |      70      |  'sticky' |   'hot'   |
|   2    |      100      |      40      |    'wet'  |   'cold'  |
|   .    |       .       |       .      |      .    |     .     |
|   .    |       .       |       .      |      .    |     .     |
|   .    |       .       |       .      |      .    |     .     |

首先,您将第一个分类器(clf1)与所有样本(我们称之为X)和目标的第一列target1拟合(让我们称之为y1)

clf1.fit(X,y1)

然后是目标target2(或y2)的X和第二列上的第二个分类器(clf2)。

clf2.fit(X,y2)