apache - 简单地更改 apache Mahout 分类器输入中的 csv header 会产生不同的模型?

标签 apache machine-learning classification mahout

我正在尝试查看 Mahout 分类器示例 (donut.csv )。但我发现,只需更改标题行中某些列的名称,并更改分类器命令中相应的预测变量名称,就会产生不同的模型。这没有意义。

首先,您通过以下方式获取 donut.csv

mahout cat donut.csv |tail -40 > donut0.csv

(“尾部”是因为象夫猫会产生一些初始信息行)

然后我们使用以下命令来训练 donut0.csv :(按照“Mahout in action”一书的建议)

mahout trainlogistic --input donut0.csv \
--output ./model \
--target color --categories 2 \
--predictors x y a b c  --types numeric \
--features 20 --passes 100 --rate 50

它给出了以下输出

color ~ 7.068*Intercept Term + 0.581*a + -1.369*b + -25.059*c + 0.581*x + 2.319*y
      Intercept Term 7.06759
                   a 0.58123
                   b -1.36893
                   c -25.05945
                   x 0.58123
                   y 2.31879
    0.000000000     0.000000000     0.000000000     0.000000000     0.000000000    -1.368933989     0.000000000     0.000000000     0.000000000     0.000000000     0.581234210     0.000000000     0.000000000     7.067587159     0.000000000     0.000000000     0.000000000     2.318786209     0.000000000   -25.059452292 
12/04/27 09:29:21 INFO driver.MahoutDriver: Program took 789 ms (Minutes: 0.01315)

但如果简单地将标题中的“x”列更改为“xa”,以及命令中相应的预测器名称,输出模型就会完全改变。

$ head -3 donut4.csv 
xa,y,shape,color,k,k0,xx,xy,yy,a,b,c,bias
0.923307513352484,0.0135197141207755,21,20,4,8,0.852496764213146,0.0124828536260896,0.000182782669907495,0.923406490600458,0.0778750292332978,0.644866125183976,1
0.711011884035543,0.909141522599384,22,20,3,9,0.505537899239772,0.64641042683833,0.826538308114327,1.15415605849213,0.953966686673604,0.46035073663368,1



mahout trainlogistic --input donut4.csv \
--output ./model \
--target color --categories 2 \
--predictors xa y a b c  --types numeric \
--features 20 --passes 100 --rate 50



color ~ 6.380*Intercept Term + -1.913*a + -0.577*b + -23.236*c + 2.647*xa + 3.009*y
      Intercept Term 6.38017
                   a -1.91308
                   b -0.57676
                   c -23.23552
                  xa 2.64657
                   y 3.00925
    0.000000000     0.000000000     0.000000000     0.000000000     0.000000000    -0.576759549     0.000000000     0.000000000     2.646572912     0.000000000    -1.913075634     0.000000000     0.000000000     6.380173126     0.000000000     0.000000000     0.000000000     3.009245162     0.000000000   -23.235521029 
12/04/27 10:21:10 INFO driver.MahoutDriver: Program took 728 ms (Minutes: 0.012133333333333333)

我还没有验证新模型,也许它也适合数据,但简单地更改名称应该不会影响算法的工作方式。对吗??

谢谢 杨

最佳答案

我怀疑这是标题更改。我更容易认为这是因为算法中选择的随机值不同。尝试两次不做任何更改的运行,看看是否有任何变化。

关于apache - 简单地更改 apache Mahout 分类器输入中的 csv header 会产生不同的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10355118/

相关文章:

php - WAMP 上的 LDAP 身份验证

python - 如何在numpy的范围内获得正态分布?

python - 如何将时间序列数据输入自动编码器网络进行特征提取?

machine-learning - 根据数据包识别应用程序

java - 监视器 tomcat 中禁用的启动和停止按钮

perl - Perl 的最佳 XSLT 引擎是什么?

python - 如何使用 django 配置 apache?

python - 张量形状错误 : Must be rank 2 but is rank 3

c# - 如何在 C# 中针对大量维度最好地实现 K 最近邻?

machine-learning - 罕见事件检测