如何基于一组3元组训练模型

时间:2018-01-04 09:39:28

标签: python machine-learning

我是整个机器学习主题的新手,我想得到一些建议,起点:

我有一个包含多达100个条目的数组。一个条目是3双双打:

e.g。

x: 0.01
y: 0.02
z: 0.03

数组示例:

[(0.01, 0.02, 0.03), (0.01, 0.02, 0.03)]

我想根据这些3元组的数组训练一个输出真或假的模型。

[(0.01, 0.02, 0.03), (0.01, 0.02, 0.03), ...] => true
[(0.02, 0.021, 0.03), (0.041, 0.022, 0.035), ...] => false

你建议我从哪里开始?你会用像Caffe或Keras这样的东西。

希望这个问题不是太广泛......

1 个答案:

答案 0 :(得分:2)

我建议从scikit-learn开始,它已经填充了很多功能。

如何完成这样的事情的一个非常基本的例子可能如下所示:

import numpy as np

from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score

np.random.seed(42)

# Generate some random data

X_train = np.random.rand(1000, 3)
y_train = np.random.randint(0, 2, len(X_train))

X_test = np.random.rand(2000, 3)
y_test = np.random.randint(0, 2, len(X_test))

# Train a classifier

clf = GaussianNB()
clf.fit(X_train, y_train)

# Test the classifier and print performance measure (here: accuracy)

y_pred = clf.predict(X_test)
y_random = np.random.randint(0, 2, len(X_test))

print('Accuracy (pred): {:.4f}'.format(accuracy_score(y_test, y_pred)))
print('Accureary (random): {:.4f}'.format(accuracy_score(y_test, y_random)))

将输出:

Accuracy (pred): 0.5030
Accureary (random): 0.5210

由于这是所有随机数据,因此该示例没有任何意义。但是,如果您的xyz元组确实对您的目标值有任何预测能力,那么您应该看到比随机更高的准确度。

相关问题