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

标题: EasyClassifier:一行命令生成分类器测试报告 [打印本页]

作者: shixiang    时间: 2016-8-8 17:42
标题: EasyClassifier:一行命令生成分类器测试报告
前些日子学习TensorFlow,按照官网示例学还好,一到了想用它做点什么的时候,就感觉血槽已空,智商需要充值。别人家的HelloWorld == 它的MNIST,学习曲线较陡峭,它的API很基础,适合做有挑战性的工作,比如谷歌的阿尔法狗之类。要是做点简单的工作,sklearn更简单快速,效果也不差。sklearn用熟了再去学tensorflow应该会好些吧。

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

报表格式示例如下:
[attach]2599[/attach]


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

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,新开始:未来加入层次多标签递进分类、投票法处理不平衡数据等。

[attach]2772[/attach]

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



作者: guojiasheng    时间: 2016-8-8 23:17

作者: zouquan    时间: 2016-8-8 23:22
提示: 该帖被管理员或版主屏蔽
作者: shixiang    时间: 2016-8-9 08:46
提示: 该帖被管理员或版主屏蔽
作者: shixiang    时间: 2016-8-14 06:31
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
复制代码

作者: zouquan    时间: 2016-9-22 11:28
亲测好使{:257:}
作者: shixiang    时间: 2016-10-29 17:16
2016-10-26,版本已更新(Easy-Classify 0.60)




欢迎光临 机器学习和生物信息学实验室联盟 (http://123.57.240.48/) Powered by Discuz! X3.2