对于不同大小的训练数据,哪种是最好的scikit学习机器学习算法



我有这个数据集,我需要使用它将(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的概念,你可以尝试一下,但它需要深入理解。

最新更新