我试图使用Weka的NaiveBayesUpdateable分类器。我的数据包含名义和数字属性:
@relation cars
@attribute country {FR, UK, ...}
@attribute city {London, Paris, ...}
@attribute car_make {Toyota, BMW, ...}
@attribute price numeric %% car price
@attribute sales numeric %% number of cars sold
我需要根据其他属性预测销售数量(数字!)。
据我所知,我不能在Weka中使用数字属性进行贝叶斯分类。一种技术是在长度为k的N个区间中拆分数值属性的值,而使用标称属性,其中n是类名,如下所示:@attribute class {1,2,3,... N}。
我需要预测的数字属性范围从0到1 000 000.创建1 000 000个类根本没有意义。如何使用Weka预测数字属性或者在Weka没有用于此任务的工具的情况下查找哪些算法?
答案 0 :(得分:12)
您要做的是回归,而不是分类。差异正是您所描述/想要的:
大多数基于回归的技术可以通过定义阈值转换为二元分类,类别由预测值是高于还是低于此阈值来确定。
我不知道所有提供回归的WEKA分类器,但你可以从这两个分类开始:
您可能必须使用NominalToBinary
过滤器将名义属性转换为数字(二进制)属性。
答案 1 :(得分:2)
你可以在weka分类器中找到使用回归>功能>线性回归。 这是在weka https://www.ibm.com/developerworks/opensource/library/os-weka1/
中创建回归模型的示例答案 2 :(得分:1)
这些天,我相信首先在Weka 3.7中引入,RandomForest可以按照您的需要工作。这些特征可以是名义和数字的混合,并且允许预测也是数字。
缺点(我认为在你的情况下)是它不是一个可更新的类,因为NaiveBayesUpdateable适用于大量数据,这些数据可能不会同时适合内存。