我的 csv 文件中有非常大的数据集(1,700,000 个原始数据和 300 个稀疏特征)。 - 它有很多缺失值。 - 数据在数值和类别值之间变化。 - 因变量(类)是二元的(1 或 0)。 - 数据严重倾斜,积极响应的数量较低。
现在我需要做的是对这些数据应用回归模型和任何其他机器学习算法。
我是新手,需要帮助.. - 在回归模型中如何处理分类数据?缺失值是否对其影响太大? - 对于这样的大型、稀疏、倾斜数据,我可以尝试的最佳预测模型是什么? - 你建议我使用什么程序?我尝试了Weka,但它甚至无法打开那么多数据(内存故障)。我知道 matlab 可以打开数字 csv 或不混合的类别 csv,此外还必须估算缺失值才能打开文件。我懂一点 R。
- 我正在尝试使用 Excel、Access 和 Perl 脚本来操作数据。对于如此大量的数据来说,这真的很困难。 Excel 无法打开超过近 1M 的记录,Access 无法打开超过 255 列。任何建议。
感谢您提前提供帮助
最佳答案
首先,您谈论的是分类,而不是回归 - 分类允许从固定集合(例如 0 或 1)中预测值,而回归则产生真实的数字输出(例如 0、0.5、 10.1543 等)。另外,不要与所谓的逻辑回归混淆 - 它也是分类器,它的名称只是表明它基于线性回归。
要处理如此大量的数据,您需要归纳(可更新)模型。特别是,在 Weka 中,分类部分有许多此类算法(例如 Naive Bayes Updatable、Neutral Networks Updatable 等)。使用归纳模型,您将能够逐部分加载数据并以适当的方式更新模型(对于 Weka,请参阅知识流界面以了解如何更轻松地使用它的详细信息)。
一些分类器可能适用于分类数据,但我不记得它们有任何可更新的内容,所以很可能您仍然需要将分类数据转换为数字。这里的标准解决方案是使用指标属性,即将每个分类属性替换为多个二元指标。例如。如果您的属性 day-of-week
有 7 个可能的值,您可以用 7 个二进制属性替换它 - Sunday
、Monday
等。当然,在每个特定实例中,7 个属性中只有一个可以保存值 1
,所有其他属性都必须为 0
。
缺失值的重要性取决于数据的性质。有时值得事先用一些中性值替换它们,有时分类器实现本身会这样做(有关详细信息,请查看算法手册)。
最后,对于高度倾斜的数据,请使用 F1(或仅精度/召回)测量而不是准确性。
关于database - 分类数据的回归模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10180113/