基于 python 的 sklearn 包 Easy-Classify

未知
Python
跨平台
2017-01-08
万世想

Easy-Classify是什么?

Easy-Classify是一个基于python的sklearn包,自动生成二分类Excel实验报告和ROC值的小脚本,是二分类集成分类器的良好解决方案。分类器目前集成:

  • Nearest Neighbors

  • Bagging

  • GradientBoosting

  • SGD

  • LibSVM

  • Linear SVM

  • SMO

  • LinearSVC

  • Decision Tree

  • Random Forest

  • AdaBoost

  • Naive Bayes

  • Neural Network

  • ......

运行环境

  • python 2.7及其基础科学计算包numpy、scipy、pandas;

  • python的scikit-learn包用于跑分类器:

  pip install scikit-learn
  • python的scikit-neuralnetwork包用于跑神经网络:

  pip install scikit-neuralnetwork
  • python的xlwt用于写入excel结果报告:

  pip intall xlwt

输入输出

  • 输入:包含全部正反例的libsvm或arff格式文件,支持多文件混合输入。文件正反例标签为{0,1},arff格式为weka软件默认格式,libsvm格式如:

  1 1:7.964601769911504 2:0.8849557522123894 3:1.1799410029498525
  0 1:9.583333333333334 2:0.8333333333333334 3:4.1666666666666660
  1 1:6.427423674343867 2:0.8569898232458489 3:5.9989287627209430
  0 1:12.50000000000000 2:2.2727272727272730 3:5.1136363636363640
  • 输出:

    • easy_classify.py: 输出Excel实验表格,如results.xls文件所示

    • easy_roc.py: 输出pdf格式的roc曲线图数据表,如ROC.xls文件所示

使用命令

1. easy_classify.py专用于生成excel实验报告:

  • 必选参数:

    # 交叉验证如:python easy_classify.py -i train.libsvm -c 10
    # 训练测如:python easy_classify.py -i train.libsvm -t 0.25
    • -i:输入的arff或libsvm格式文件,支持混输。如:-i train.libsvm,train2.arff,注意文件之间用英文,连接;

    • -c-t-c为交叉验证模式,值为交叉验证折数,如-c 5,默认为5;-t为训练测试模式,值为训练集测试集分割比例,如-t 0.33,默认为0.33.

  • 可选参数:

    • -o:指定输出excel文件名。默认为results.xls。

    • -s:是否寻找最佳分类器参数。0为不寻找,1为寻找。默认为0

    • -m:是否并行运算,1GB以上大数据集不推荐使用。0为单线程运算,1为多线程并行运算,线程数是同时运行的分类器数,适合CPU和内存资源强大的用户。默认为1

  • 帮助:

  python easy_classify.py -h

2. easy_roc.py专用于生成绘制ROC曲线图需要的数据(只支持交叉验证):

  • 交叉验证:

  python easy_roc.py -i {input_file.libsvm} -c {int: cross validate folds}
  # 单文件命令如:python easy_roc.py -i train.libsvm -c 5
  # 多文件命令如:python easy_roc.py -i train.libsvm,train2.libsvm -c 5
  • 帮助:

  python easy_roc.py -h

升级日志

  • 2016-08-08,version 0.20:

    • 完成基本功能框架,集成主要分类器

    • 自动生成测试报告

    • 支持并行

  • 2016-08-12,version 0.40:

    • 增加神经网络等更多分类器

    • 增加分类器参数自动调优

    • 支持多种文件同时输入

  • 2016-09-15,version 0.50:

    • 增加ROC曲线图输出数据

  • 2016-10-26,version 0.60:

    • 更好地支持并行

    • 增加参数可选

    • 修复一些bug

加载中

评论(0)

暂无评论

暂无资讯

暂无问答

面向对象恶心的地方

Classes drive me crazy. That might seem strange, so let me explain why. Clearly classes should be great. Our brain excels at classifying everything around us. So it seems natura...

2012/12/13 09:26
41
0
Types of programmers

In my code journeys and programming adventures I’ve encountered many strange foes, and even stranger allies. I’ve identified at least six different kinds of code warriors, so...

2016/12/17 18:15
2
0
mybatis+mysql +insert 外键约束报错

外键约束这块还得多学习和注意

2015/08/19 11:39
1K
0
php上下箭头排序

点击向上的箭头时候,排序顺序会与上面的交换。点击向下的箭头时候会与下面的排序交换。当排在第一个时候点击向上箭头提示已经是第一个,当排在最后一个时候点击向下箭头,提示已经是最后一个...

2015/07/19 17:08
7
0
php上下箭头排序

点击向上的箭头时候,排序顺序会与上面的交换。点击向下的箭头时候会与下面的排序交换。当排在第一个时候点击向上箭头提示已经是第一个,当排在最后一个时候点击向下箭头,提示已经是最后一个...

2015/07/19 17:13
22
0
【Mysql左右值】左右值法实现Mysql无限级分类

数据表结构和数据 表结构 [sql] view plaincopy CREATE TABLE `classify` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(20) NOT NULL COLLATE 'utf8_general_ci', `lf...

2016/09/09 11:59
39
0
小得瑟一下,记一下一个SQL语句

INSERT INTO T_CAR_TYPE(CAR_TYPE_ID,CAR_TYPE_NAME,CAR_BRAND_ID,IS_VALID,STAMP) select SEQ_CAR_TYPE.nextval,c1.typename ,brand.car_brand_id,0,sysdate from t_car_brand brand, (sele...

2013/04/11 19:39
32
0
永远用小的结果集驱动大的结果集

转载自:公司内 数据工程师: 永远用小的结果集驱动大的结果集 很多人喜欢在优化 SQL 的时候使用小表驱动大表,个人认为这不太严谨。为什么?因为大表经过 WHERE 条件过滤之后返回的结果集并...

2016/07/11 17:15
177
0
Jetson Nano Developer Kit

  在使用Entity Framework这种ORM框架得时候,一般结合Repository仓储形式来处理业务逻辑;虽然这种模式带来很多好处,但是也会引发一些争议,在此抛开不谈,小弟结合项目经验来实现一下,...

04/09 20:59
14
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部