您现在的位置: 爱51代码网 >> 范文 >> 文章正文
mahout训练出来的分类模型如何用来分类数据

已经通过mahout中trainlogistic训练出来模型了data.model,想问下如何使用这个模型来分类数据,网上很多使用runlogistic函数的都只是评估模型,我现在要的是使用这个模型,

trainlogistic,没弄过。

找了下这个类。
我看下mahout下代码,是逻辑回归?
上面说明--“Train a logistic regression for the examples from Chapter 13 of Mahout in Action”
你可以看下mahout下面的org.apache.mahout.classifier.sgd这个包


mahout自带的example里面sgd也有这个说明吧。

resources下面的数据donut.csv是原始数据集,donut-test.csv验证数据集这两个都是目标变量已经给出了的,我要的就是目标变量没有,然后通过model来求得目标变量,resources下面还有一个test_data.csv这个数据不知道是干什么的,感觉不像是用来生产用的数据。

mahout下的逻辑回归只能自己定义好目标向量训练出 评分函数。
如果自定义定义目标变量,这需要因子筛选方法。。
这需要你自己建立2个训练集。
两个训练集是对立的比如好坏,自己定义一个因素,判断这个因子大小是否影响这两个对立集。
如果有影响,才可以把这个因素放入目标变量。
逻辑回归只是把目标向量训练成评分函数。

tranlogistic训练出的model,mahout喜欢把输出文件弄成序列化,以方便第二次读入。
比如这篇文章
http://www.tuicool.com/articles/FbQ7Vb6
./mahout trainlogistic --input /data/mahout-data/donut.csv --output /data/mahout-output/model2 --target color --categories 2 --predictors x y a b c --types numeric --features 20 --passes 100 --rate 50中的 --output /data/mahout-output/model2就是模型输出文件。
当他进行./mahout runlogistic --input /data/mahout-data/donut-test.csv --model /data/mahout-output/model2 --scores --auc --confusion中利用tranlogistic输出文件。

在输出结果中,scores打印预测值和原始值对比
"target","model-output","log-likelihood"
0,0.009,-0.009241
0,0.000,-0.000481
1,0.985,-0.015038
1,0.991,-0.009407
0,0.001,-0.000883
1,0.974,-0.026000
1,0.823,-0.194875
0,0.041,-0.042015

在runlogistic.java中看它score输出那个行
 if (showScores) {
        output.printf(Locale.ENGLISH, "\"%s\",\"%s\",\"%s\"\n", "target", "model-output", "log-likelihood");
      }
。。。
 if (showScores) {
          output.printf(Locale.ENGLISH, "%d,%.3f,%.6f\n", target, score, lr.logLikelihood(target, v));
        }
如果你只要用model评分结果,只要改写下output只打印出score就行了。target表示数据test原始值,score表示你利用模型评分出来的。

runlogstic.java开头有  LogisticModelParameters lmp = LogisticModelParameters.loadFrom(new File(modelFile));
这个就是导入你利用ranlogistic的model。

=====================================================================
如果你想怎么donut.csv中x,y,a,b,为什么选这些因素,
因为他测试模型利用x y a b c预测color因素的。
这个需要你自己建立筛选因子,来圈定预测变量因素。那个比方判断苹果是否难吃标准,是否烂了这个因素,可以当做评判标准,烂了肯定不好吃。但是苹果大小这个因素,肯定不能当判断标准,不是苹果小就难吃了。
这就意味着,判断苹果好吃,需要有特定因素。
如果你想圈定特定因素,需要百度 筛选因子评分模型。
========================================
mahout只能根据你已经筛选后的因子,已经收集的变量值,评估预测变量。
也就是trainlogistic建立模型, runlogistic评估模型(其实已经包含评估分数,已经输出了)。

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    Unable to write data to the tr
    asp.net中listbox的items.count属
    C#不是每次查询数据是不是被缓存
    ASP.NET发布后能加载引用的js文件
    Hadoop2.2.0在eclipse控制台没有
    maven如何加自定义的包
    redhat 2.6 (santigo 5.6) vsftp
    shell如何实现自动填写操作执行下
    linux shell 文件配置sh:color:
    shell script语法一定要加path吗
    Hadoop2.2.0在eclipse控制台没有
    maven如何加自定义的包
    redhat 2.6 (santigo 5.6) vsftp
    shell如何实现自动填写操作执行下
    linux shell 文件配置sh:color:
    shell script语法一定要加path吗
    SecureCRT如何访问虚拟机vmWare中
    C#如何读取WINDOWS的放大系数
    cximge的图如何存入数据库并提取
    DBGRID控件显示查询结果文本类型
    安装cloudera cdh5.2.0后执行
    sqoop数据导出不完整
    hadoop distcp源集群如何识别
    Hadoop2.2.0在eclipse控制台
    windows客户端如何访问hdfs
    yarn.scheduler.fair.locali
    asp中的access年度成绩查询排
    access如何用SQL语句查询时间
    sqlserver数据库刚启动 客户
    RESTORE FILELIST 操作异常终
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |