我有这个数据集,我需要使用它将(fit
)训练到我的machine learning
算法中:
data= [
{'timestamp': '1406025645732', 'datatype': 'mass', 'fat': '0.348', 'lean': '0.06'},
{'timestamp': '1406025645776', 'datatype': 'body', 'value': 122.0, 'location': 'nose'},
{'timestamp': '1406025645793', 'datatype': 'mass', 'fat': '0.32', 'lean': '0.04'},
{'timestamp': '1406025645810', 'datatype': 'mass', 'fat': '0.308', 'lean': '0.1'},
{'timestamp': '1406027645916', 'datatype': 'body', 'value': 6.0, 'location': 'eye'},
{'timestamp': '1406025645949', 'datatype': 'mass', 'fat': '0.312', 'lean': '0.052'},
{'timestamp': '1406025645966', 'datatype': 'mass', 'fat': '0.32', 'lean': '0.032'},
{'timestamp': '1406025645983', 'datatype': 'mass', 'fat': '0.28', 'lean': '0.06'},
{'timestamp': '1406025646000', 'datatype': 'gender', 'value': '0.3096', 'size': '7.0'}
]
我有一个包含3种数据类型的数据样本:
body
mass
gender
每个数据类型的样本数是随机的(即,有时我可以有10个mass
样本和1个gender
样本。或者我可以有300个mass
样本和20个body
样本)。
无论哪种方式,我都希望有一个具有这种不一致数据的训练集。
这可能吗
最好的scikit学习训练算法应该是什么
- 逻辑回归
- 天真的贝叶斯
- k-最近邻居
- 分类和回归树
- 支持向量机
这里有一些示例代码,但我不知道下一步该如何实现。
请告诉我应该遵循哪一步,或者一些教程,我可以在这里学习并粘贴解决方案。
from sklearn import tree
from sklearn.externals import joblib
import pandas
import numpy
import pylab
# this is one traning set for Abel
features = [
{'timestamp': '1406025645732', 'datatype': 'mass', 'fat': '0.348', 'lean': '0.06'},
{'timestamp': '1406025645776', 'datatype': 'body', 'value': 122.0, 'location': 'nose'},
{'timestamp': '1406025645793', 'datatype': 'mass', 'fat': '0.32', 'lean': '0.04'},
{'timestamp': '1406025645810', 'datatype': 'mass', 'fat': '0.308', 'lean': '0.1'},
{'timestamp': '1406027645916', 'datatype': 'body', 'value': 6.0, 'location': 'eye'},
{'timestamp': '1406025645949', 'datatype': 'mass', 'fat': '0.312', 'lean': '0.052'},
{'timestamp': '1406025645966', 'datatype': 'mass', 'fat': '0.32', 'lean': '0.032'},
{'timestamp': '1406025645983', 'datatype': 'mass', 'fat': '0.28', 'lean': '0.06'},
{'timestamp': '1406025646000', 'datatype': 'gender', 'value': '0.3096', 'size': '7.0'}
]
# 0 for Abel, 1 for Jasminne
labels = [0]
# Here I train the model with the above arrays
clf = tree.DecisionTreeClassifier()
clf = clf.fit(features, labels) # crashes here due to the use of a dict, instead of an array
joblib.dump(clf, 'model.pkl')
非常感谢。
当数据集可以拟合为线性图时,将应用逻辑回归。由于您的数据集包含多个特征,因此您可以使用KNN、决策树和朴素贝叶斯。KNN很简单,但在计算上是详尽的。决策树[CART]是一个更好的选择,因为该算法将理解不同于KNN的数据。如果你熟悉SVM的概念,你可以尝试一下,但它需要深入理解。