Easy-Classify基于 python 的 sklearn 包
Easy-Classify是什么?
Easy-Classify是一個(gè)基于python的sklearn包,自動(dòng)生成二分類Excel實(shí)驗(yàn)報(bào)告和ROC值的小腳本,是二分類集成分類器的良好解決方案。分類器目前集成:
Nearest Neighbors
Bagging
GradientBoosting
SGD
LibSVM
Linear SVM
SMO
LinearSVC
Decision Tree
Random Forest
AdaBoost
Naive Bayes
Neural Network
......
運(yùn)行環(huán)境
python 2.7及其基礎(chǔ)科學(xué)計(jì)算包numpy、scipy、pandas;
python的scikit-learn包用于跑分類器:
pip install scikit-learn
python的scikit-neuralnetwork包用于跑神經(jīng)網(wǎng)絡(luò):
pip install scikit-neuralnetwork
python的xlwt用于寫入excel結(jié)果報(bào)告:
pip intall xlwt
輸入輸出
輸入:包含全部正反例的libsvm或arff格式文件,支持多文件混合輸入。文件正反例標(biāo)簽為{0,1},arff格式為weka軟件默認(rèn)格式,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實(shí)驗(yàn)表格,如results.xls文件所示
easy_roc.py: 輸出pdf格式的roc曲線圖數(shù)據(jù)表,如ROC.xls文件所示
使用命令
1. easy_classify.py專用于生成excel實(shí)驗(yàn)報(bào)告:
-
必選參數(shù):
# 交叉驗(yàn)證如:python easy_classify.py -i train.libsvm -c 10 # 訓(xùn)練測(cè)如:python easy_classify.py -i train.libsvm -t 0.25
-i:輸入的arff或libsvm格式文件,支持混輸。如:-i train.libsvm,train2.arff,注意文件之間用英文,連接;-c或-t:-c為交叉驗(yàn)證模式,值為交叉驗(yàn)證折數(shù),如-c 5,默認(rèn)為5;-t為訓(xùn)練測(cè)試模式,值為訓(xùn)練集測(cè)試集分割比例,如-t 0.33,默認(rèn)為0.33.可選參數(shù):
-o:指定輸出excel文件名。默認(rèn)為results.xls。-s:是否尋找最佳分類器參數(shù)。0為不尋找,1為尋找。默認(rèn)為0。-m:是否并行運(yùn)算,1GB以上大數(shù)據(jù)集不推薦使用。0為單線程運(yùn)算,1為多線程并行運(yùn)算,線程數(shù)是同時(shí)運(yùn)行的分類器數(shù),適合CPU和內(nèi)存資源強(qiáng)大的用戶。默認(rèn)為1。幫助:
python easy_classify.py -h
2. easy_roc.py專用于生成繪制ROC曲線圖需要的數(shù)據(jù)(只支持交叉驗(yàn)證):
交叉驗(yàn)證:
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
升級(jí)日志
2016-08-08,version 0.20:
完成基本功能框架,集成主要分類器
自動(dòng)生成測(cè)試報(bào)告
支持并行
2016-08-12,version 0.40:
增加神經(jīng)網(wǎng)絡(luò)等更多分類器
增加分類器參數(shù)自動(dòng)調(diào)優(yōu)
支持多種文件同時(shí)輸入
2016-09-15,version 0.50:
增加ROC曲線圖輸出數(shù)據(jù)
2016-10-26,version 0.60:
更好地支持并行
增加參數(shù)可選
修復(fù)一些bug
