OK,我们来使用决策树试试,先试试大名鼎鼎的C4.5分类器,在weka中对应J48。 在trees里找到J48,同样选择10次折叠,点击start。 可以看到正确率在50%。 当然对于这个案例,通过使用融合梯度提升后的J48,也能让正确率达到70%多。 导入数据,分别使用逻辑回归和J48来跑一下,发现两个都是96%的正确率。 ? ? 这个数据集经过多次尝试,在各个算法上表现比较类似,差距不大,最好的结果是在SVM(支持向量机)上,96.6667%。
此处可以直接打开并行编译执行make命令, 比如笔者机器是24核的, 此处直接将并发数设置为48进行编译, 实测效果不错. make -j48 漫长的等待后(公司DevCloud24核机器应该是10 /configure make -j48 sudo make install 默认安装的路径是/usr/local/bin, 并不会覆盖老的GDB(老的在/usr/bin/下), 所以使用VSCode
)); bootstrap.add(data.instance(idx)); } // 训练基模型(以J48 为例) J48 tree = new J48(); tree.buildClassifier(bootstrap); models[i]
; (8) 调用cartformtree(T2); 以鸢尾花数据集为例,使用cart算法,得到决策树: 要实现C4.5算法,R提供了一个程序包RWeka,J48 下面我们来简要介绍他们: J48(formula, data, subset, na.action, control = Weka_control(), options = NULL) tree (RWeka) library(party) oldpar=par(mar=c(3,3,1.5,1),mgp=c(1.5,0.5,0),cex=0.3) data(iris) m1<-J48 隐形眼镜一例: [plain] view plaincopyprint lenses<-read.csv("D:/R/data/lenses.csv",head=FALSE) m1<-J48
LibSVM(需要额外安装扩展包)、Logistic Regression、Linear Regression;lazy下的IBK(KNN);meta下的boosting和bagging分类器;trees下的J48 我们采用常用的J48决策树分类器进行4折交叉验证,得到的实验结果如下: ? 在Result list里右键实验,Visualize Tree,得到图形界面的直观的决策树。 ?
CMAKE_C_COMPILER=/usr/local/gcc-8.3.0/bin/gcc -D CMAKE_CXX_COMPILER=/usr/local/gcc-8.3.0/bin/g++ make -j48 CMAKE_C_COMPILER=/usr/local/gcc-8.3.0/bin/gcc -D CMAKE_CXX_COMPILER=/usr/local/gcc-8.3.0/bin/g++ make -j48
2.3 机器学习算法 四种机器学习算法(贝叶斯网络、逻辑回归、J48和随机森林)采用Weka 3.8.1实现来解决分类任务。对于所有算法,都使用了默认的Weka参数。 接下来,采用四种机器学习算法(贝叶斯网络、逻辑回归、J48和随机森林),评估了他们之间解决分类问题的能力。 作者发现,如图2a所示,对于所有经过测试的机器学习算法,预测变量族的最佳组合提供的AUC与随机分类器 (AUC=0.50) 的面积大不相同,其中随机森林是最好的分类器(AUC=0.87) 和 J48最差
注意跳线帽是要装在J48这个位置,安装的时候注意不要把针脚给撅断了..... ? Jetsohacks大叔也提醒用户们需要注意,TX2电源线跟Nano电源线的接口孔是一样大小的。 ?
; (8) 调用cartformtree(T2); 以鸢尾花数据集为例,使用cart算法,得到决策树: 要实现C4.5算法,R提供了一个程序包RWeka,J48 下面我们来简要介绍他们: J48(formula, data, subset, na.action, control = Weka_control(), options = NULL) tree (RWeka) library(party) oldpar=par(mar=c(3,3,1.5,1),mgp=c(1.5,0.5,0),cex=0.3) data(iris) m1<-J48 隐形眼镜一例: [plain] view plaincopyprintlenses<-read.csv("D:/R/data/lenses.csv",head=FALSE) m1<-J48
基于密度的聚类算法:LOF (Local Outlier Factor) 随机森林(random forest) Isolation Forest 经过一系列试验,结论中推举了以下步骤: 如果是维度非常高的数据,用J48 用iForest预选异常点,标准为score > 0.50 把ANN,J48,RF作为一个组合再处理2步得到的异常点。 被较多算法标注为异常的点就认为有高可信度。
分裂标准信息增益率信息增益率(优化)基尼系数 / 方差连续特征✅✅✅缺失值处理✅✅(更鲁棒)✅(替代法)Boosting 集成❌✅(原生支持)❌(需手动集成)规则集输出✅✅(优先)❌回归任务❌❌✅开源状态✅(Weka J48 t 10 表示10轮boosting ✅ 方案3:Java(通过 JNI 调用 C 引擎)C5.0 官方提供 C 源码可通过 JNI 封装为 Java 库但无现成开源 Java 实现(Weka 仍用 J48
rpart算法的集成算法;boosting函数,基于rpart算法的集成算法 party包ctree函数,条件分类树算法 RWeka包OneR函数,一维的学习规则算法;JPip函数,多维的学习规则算法;J48
sunny,85,85,FALSE,no sunny,80,90,TRUE,no overcast,83,86,FALSE,yes rainy,70,96,FALSE,yes 选择分类算法:从算法库里边选择J48
J48算法 J48流程 (1)使用经过预处理的数据集,使用 CVParameterSelection 中的classifier中的Tree-J48并调整和寻找最佳参数,在test option中选择 Supplied 因此J48算法中,当使用目前的参数时ROI最大为-621800。
此处可以直接打开并行编译执行make命令, 比如笔者机器是24核的, 此处直接将并发数设置为48进行编译, 实测效果不错. make -j48 漫长的等待后(公司DevCloud24核机器应该是10
J48算法 J48流程 (1)使用经过预处理的数据集,使用 CVParameterSelection 中的classifier中的Tree-J48并调整和寻找最佳参数,在test option中选择 Supplied 因此J48算法中,当使用目前的参数时ROI最大为-621800。
dataset.setClassIndex(dataset.numAttributes() - 1); } // 创建决策树分类器 J48 tree = new J48(); tree.setUnpruned(true); // 不剪枝 // 训练模型 tree.buildClassifier
args) throws Exception { // TODO Auto-generated method stub Classifier m_classifier = new J48
最后make即可: make -j48 #用48核并行编译 得到的可执行文件在bin目录中,最后将该目录写入.bashrc文件中: export PATH=/home/zhigang/software/
选择J48算法,看看结果 ? 可以看到在全部使用3000条数据作为训练集,并没有进行交叉验证的情况下,模型预测准确率59%。这个数据是比较尴尬的,也就和瞎猜差不多。