如何使用下面的训练数据将新的数据集分类到A类和B类中?
1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 classDataset 1 42 13 22 324 270 96 107 93 80 228 ADataset 2 45 23 14 596 445 135 153 124 132 331 ADataset 3 42 22 16 479 407 130 150 121 128 342 ADataset 4 37 63 10 481 397 155 143 159 172 394 BDataset 5 46 18 10 387 356 127 118 129 136 359 BDataset 6 23 34 9 550 436 147 166 164 208 467 B
如果有一个可以区分数据集的方程,那就再理想不过了。
例如,如果1.0的数量加上0.9的数量超过55,那么它属于A类。(这可能不对,但类似这样的规则)
回答:
如果你熟悉分类任务,这种任务几乎可以用任何分类算法来完成,比如SVM、神经网络、C4.5、ID3、随机森林等。
但如果要建立模型,请看一下逻辑回归:https://en.wikipedia.org/wiki/Logistic_regression。它可以将数据集分类为两个类别(例如,正类和负类)。
关于实现,请参考Python的scikit-learn中的线性模型和逻辑回归:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html 和这里:http://scikit-learn.org/stable/modules/linear_model.html#logistic-regression
X = [[...]] #你的数据集列表(矩阵)y = [...] #你的标签列表from sklearn.liner_mode import LogisticRegressionclf = LogisticRegresion()clf.fit(X,y)
这个例子也可能有帮助:http://scikit-learn.org/stable/auto_examples/linear_model/plot_iris_logistic.html