ML足够的特征?

我在尝试用加速度计数据集训练随机森林。我计算了均值、标准差、轴之间的相关性、曲线下面积等特征。我是机器学习新手。

我想了解两件事:

1.如果我将一个人的数据集分为测试和训练集,然后运行随机森林预测,准确率很高(>90%)。然而,如果我用不同人的数据训练随机森林,然后进行预测,准确率很低(<50%)。这是为什么?如何调试这个问题?我不确定自己做错了什么。

  1. 在上面的例子中,要达到90%的准确率,需要多少特征才算“足够”?需要多少数据才算“足够”?

我可以提供更多细节。数据集来自10个人,包含大量标记的数据。我限制自己使用上述特征以避免大量计算。


回答:

  1. 你的分类器很可能过拟合了,当你只用一个人的数据进行训练时,它无法很好地泛化,它可能只是“记住”了带标签的数据集,而不是捕捉到分布的一般规律:每个特征如何与其他特征相关/它们如何影响结果等。也许你需要更多数据,或者更多特征。

  2. 这不是一个简单的问题,这是泛化问题,关于这个问题有许多理论研究,例如:Vapnik–Chervonenkis理论Akaike信息准则。即使你了解这些理论,也无法准确回答这个问题。大多数此类理论的主要原则是:你拥有的数据越多,你尝试拟合的模型变化性越小,你要求的训练和测试准确率之间的差异越小——这些理论会给你的模型更高的评价。例如,如果你想最小化测试集和训练集上的准确率差异(以确保测试数据上的准确率不会崩溃),你需要增加数据量,提供更有意义的特征(相对于你的模型),或者使用变化性较小的模型进行拟合。如果你对理论方面的更详细解释感兴趣,你可以观看加州理工学院的讲座,从这个开始:CaltechX – CS1156x 从数据中学习

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中创建了一个多类分类项目。该项目可以对…

发表回复

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