我试图解决以下分类问题:一个有一个大的(~2-10 GB) .csv文件,其中包含各种类型的数据帧。特别是,有包含数字浮点数以及日期/时间、文本字符串和来自一个小集合的离散参数的列。还存在一个二进制参数,对每个条目进行分类,以便在未来使用机器学习方法进行预测。
那么,什么才是最适合这项工作的工具呢?在进行了一些研究之后,我决定把学习作为主要的选择,但是如果有其他的软件从根本上来说更适合这个任务,我会很乐意切换的。
第二,随机森林方法是这里最好的方法吗?我意识到可能有很多因素影响着这个问题的答案,但通过阅读一些教程,看看科学工具包-学习流程图,我现在倾向于随机森林。
假设你使用随机森林,你应该如何准备这些数据才能让模型有意义?据我所知,scikit-学习只使用数字浮子作为模型的输入。虽然我可以使用像OneHotEncoder这样的方法来离散日期/时间和其他离散字段,但它并不清楚如何处理文本字段,因为我认为处理过程是非常不同的。(我看过“一字一句”的方法,但作为一个新手,我觉得现在很难掌握。)是否有一种转换文本字段以便在模型中使用的有意义的方法?
最后,处理这个任务的大型数据集的最佳方法是什么?虽然在开始时,它们的大小可以限制在运行时内存中,但理想情况下,应该有一种方法将训练集扩展到非常大的范围。
对一些问题含糊不清表示歉意。由于我对数据科学非常陌生,如果你能在你的答案中包括实际的工作例子,我将不胜感激。谢谢!
发布于 2017-11-11 17:50:46
当我们使用随机森林时,要记住的一件事是,当你使用一个分类特性进行训练时,它不应该超过53个类别。有时,RandomForest将数字数据作为绝对数据。若要克服这一问题,请确保使用此命令将所有类别转换为因素。
df['col_name'] = df['col_name'].astype('category')最后,确保一个分类特性中的所有级别都存在于训练和测试数据中,否则模型无法提供这样的情况。
我认为,如果您可以使用任何服务器(因为模型可以最充分地使用服务器处理能力)并在其上进行部署,并且在您离开前让它运行,然后在部署之前确保您已经在示例数据上测试了代码,我认为您可能会让模型运行。所以,它不会出现错误。
如果你需要更多的信息,请告诉我。
发布于 2016-07-28 13:37:21
您可以在scikit文档和教程页面上找到所需的所有内容。考虑使用使用此映射http://scikit-learn.org/stable/tutorial/machine_学习_地图/的不同算法
对于文本变量,请使用向量器。
https://datascience.stackexchange.com/questions/13032
复制相似问题