机器学习和生物信息学实验室联盟

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2385|回复: 6
打印 上一主题 下一主题

EasyClassifier:一行命令生成分类器测试报告

[复制链接]
跳转到指定楼层
楼主
发表于 2016-8-8 17:42:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前些日子学习TensorFlow,按照官网示例学还好,一到了想用它做点什么的时候,就感觉血槽已空,智商需要充值。别人家的HelloWorld == 它的MNIST,学习曲线较陡峭,它的API很基础,适合做有挑战性的工作,比如谷歌的阿尔法狗之类。要是做点简单的工作,sklearn更简单快速,效果也不差。sklearn用熟了再去学tensorflow应该会好些吧。

然后,翻看sklearn文档,发现确实不错,就想着为需求不高的研究者写个小脚本,节省点体力。该小脚本是Easy_Classify,用户可以直接输入一个包含两类正反例的libsvm文件,能够有交叉验证或随机切分文件为训练集测试集,通过各类分类器快速并行实验,最终直接得到一个Excel实验报告表。

报表格式示例如下:



下一步增添它的功能,加入更多分类器,支持参数寻优,支持输入多个不同维度文件同时测试。

Github托管地址:https://github.com/ShixiangWan/Easy-Classify

2016-08-12,版本已更新:
Easy-Classify(0.40)已支持神经网络等13种分类器,可多维度文件同时进行测试,并行速度不错。
99服务器中路径为:/Bioinformatics_Machine_Learning/Machine_Learning/classifier/Easy_Classify/0.40,可以直接使用,Github中有详细使用说明。

2016-10-26,版本已更新(Easy-Classify 0.60):

1. 支持arff文件作为输入:
对于arff文件,程序先将它转为libsvm格式,再运行分类器。

2. 更好地支持并行:
sklearn自带的并行不怎么work。现在的原理是对每个分类器开一个线程,同时跑,都跑完后一起写入excel结果;测试结果显示,单线程运行耗时330s的文件,并行只需80s。

3. 增加参数可选:
-o指定输出excel文件名。默认为results.xls。
-s指定是否寻找最佳分类器参数。0为不寻找,1为寻找。默认为0。
-m是否并行运算,1GB以上大数据集不推荐使用。0为单线程运算,1为多线程并行运算,线程数是同时运行的分类器数,适合CPU和内存资源强大的用户。默认为1。之前的参数不变。

4. 去掉了神经网络分类器:
原因是我们的生物信息学数据量一般都在100W条以下,用神经网络容易过拟合且耗时极长,效果不好。

5. 本机安装EasyClassify更简单:根据操作系统位数,下载exe文件直接安装即可。

6. 修复一些bug,如输入文件之间不能有空格字符等。

7. 新logo,新开始:未来加入层次多标签递进分类、投票法处理不平衡数据等。



更多信息,参见Github托管地址。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享
回复

使用道具 举报

板凳
发表于 2016-8-8 23:22:38 | 只看该作者
提示: 该帖被管理员或版主屏蔽
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2016-8-9 08:46:43 | 只看该作者
提示: 该帖被管理员或版主屏蔽
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-8-14 06:31:48 | 只看该作者
Easy-Classify已更新至0.40,99服务器部署路径为:/Bioinformatics_Machine_Learning/Machine_Learning/classifier/Easy_Classify/0.40,
使用方法:
1. 交叉验证:
  1. python easy_classify.py -i {input_file.libsvm} -c {int: cross validate folds}
  2. # 单文件命令如:python easy_classify.py -i train.libsvm -c 5
  3. # 多文件命令如:python easy_classify.py -i train.libsvm,train2.libsvm -c 5
复制代码

2. 训练测试:
  1. python easy_classify.py -i {input_file.libsvm} -t {float: test size rate of file}
  2. # 单文件命令如:python easy_classify.py -i train.libsvm -t 0.33
  3. # 多文件命令如:python easy_classify.py -i train.libsvm,train2.libsvm -t 0.33
复制代码
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2016-10-29 17:16:38 | 只看该作者
2016-10-26,版本已更新(Easy-Classify 0.60)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

机器学习和生物信息学实验室联盟  

GMT+8, 2024-11-23 09:03 , Processed in 0.068544 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表