如何提取学习的ML模型以实现独特的实现?

时间:2018-02-21 18:07:39

标签: python python-3.x machine-learning scikit-learn svm

我是一名电子爱好者,他试图使用ML来模拟传感器中的错误,我已经在python中使用SVM scikit-learn中的SVM训练模型中的传感器数据。

但过滤数据的用例非常即时,即传感器数据用于维持四轴飞行器的飞行,原始传感器数据应至少以200 Hz的速率过滤学习模型,确定我的PC可以做到,但我不能将我的PC放在四轴飞行器上,因此我需要在微型CPU /微控制器上运行该模型,但是,我选择的微控制器没有支持python。

那么如何获取/提取学习模型的数学本质,换句话说,我如何获得通过训练近似的函数,以便我可以在我选择的任何微控制器中实现它。

只是初学者试图学习,任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

由于计算能力有限,使用Logistic回归可能是一个很好的选择,它很简单,计算成本低且易于重现,它是一个简单的函数,如y = w0 + w1.x1 + w2.x2 + ... + wn.xn。

要提取函数,您可以使用scikit-learn LogisticRegresion模型(http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html)中的以下属性:

  

属性 coef _ :数组,形状(1,n_features)或(n_classes,   n_features)

     

决策函数中的特征系数。

     当给定问题是二进制时,

coef_具有形状(1,n_features)。

     

拦截_ :数组,形状(1,)或(n_classes,)

     

拦截(a.k.a. bias)添加到决策函数中。

     

如果fit_intercept设置为False,则截距设置为零。   当问题是二进制时,intercept_的形状为(1,)。

如果您仍想使用SVM,我认为这个类似的问题对您有用:How to extract info from scikits.learn classifier to then use in C code