如何提取机器学习模型用于不同实现?

我是一名电子爱好者,正在尝试使用机器学习来建模传感器中的误差。我在个人电脑上使用Python中的scikit-learn库的SVM算法对传感器数据进行了训练。

但是,过滤数据的使用场景要求非常即时,即传感器数据用于维持四轴飞行器的飞行,原始传感器数据需要通过训练的模型以至少200 Hz的速率进行过滤。虽然我的电脑可以做到这一点,但我无法将电脑放置在四轴飞行器上,因此我需要将该模型运行在小型CPU/微控制器上,但我的选择范围内的微控制器都不支持Python。

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

我只是一个初学者,正在尝试学习,任何帮助都将不胜感激。


回答:

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

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

属性coef_ : 数组,形状为 (1, n_features) 或 (n_classes, n_features)

决策函数中特征的系数。

当问题是二元时,coef_ 的形状为 (1, n_features)。

intercept_ : 数组,形状为 (1,) 或 (n_classes,)

添加到决策函数中的截距(也称为偏置)。

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

如果你仍然想使用SVM,我认为这个问题可能对你有帮助:如何从scikits.learn分类器中提取信息以便在C代码中使用

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注