如何在Python中为一维矢量数据构建二进制分类器/预测器

时间:2018-11-20 23:08:39

标签: machine-learning classification svm prediction

[免责声明] ,这是我第一次涉足机器学习。

我有一个1-d numpy实向量的列表,它们代表已知与两个互斥类相关的实验条件。可以为每个向量分配1或0作为类标签。

使用这些类在Python中构造分类器/预测子以使两个类之间的差异最大化的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

假设您有1000个向量和10个值。您的x数据的形状为(1000,10),y数据的形状为(1000,1)(根据类,其值为0或1)。您想从x预测y。

最简单的模型可能看起来像(使用Keras):

from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam

mdl = Sequential()     // create model

mdl.add(Dense(8, input_shape=(10,), activation='sigmoid'))
mdl.add(Dense(1, activation='sigmoid')

mdl.compile(optimizer = 'adam', loss='binary_crossentropy')

mdl.fit(x, y, epochs = 30)

请注意,只有在有2个类的情况下,才可以在分类问题的最后一层使用sigmoid。对于更多的类,您应该使用softmax。

我建议您检查以下页面:https://keras.io/

此外,我认为比起张量流,keras更好。