基于python的决策树能进行多分类吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于python的决策树能进行多分类吗相关的知识,希望对你有一定的参考价值。

新手小白一个,想请问各位大神一个问题:假设有ABC三种类别,使用决策树算法(只能进行二分类)进行分类,如果区分AB的准确率是90%,区分AC的准确率是85%,区分BC的准确率是80%,那正确区分A,B,C的准确率是多少?
请问是从统计学的角度还是别的什么方法能对这个问题进行解释?
不胜感谢!!!

参考技术A

决策树主文件 tree.py

[python] view plain copy

    # coding: utf-8  

    from math import log  

    import json  

    from plot import createPlot  

    class DecisionTree():  

    def __init__(self,criterion = "entropy"):  

    self.tree = None  

    self.criterion = criterion  

    def _is_continuous_value(self,a):  

    # 判断一个值是否是连续型变量  

    if type(a).__name__.lower().find('float')>-1 or \\  

    type(a).__name__.lower().find('int')>-1:  

    return True  

    else:  

    return False  

    def _calc_entropy(self,dataset):  

    # 计算数据集的香农熵  

    classes = dataset.ix[:,-1]  

    total = len(classes)  

    cls_count =   

    for cls in classes:  

    if cls not in cls_count.keys():  

    cls_count[cls] = 0  

    cls_count[cls] += 1  

    entropy = 1.0  

    for key in cls_count:  

    prob = float(cls_count[key]) / total  

    entropy -= prob * log(prob, 2)  

    return entropy  

    def _calc_gini(self,dataset):  

    # 计算数据集的Gini指数  

    classes = dataset.ix[:,-1]  

    total = len(classes)  

    cls_count =   

    for cls in classes:  

    if cls not in cls_count.keys():  

    cls_count[cls] = 0  

    cls_count[cls] += 1  

    gini = 1.0  

    for key in cls_count:  

    prob = float(cls_count[key]) / total  

    gini -= prob ** 2  

    return gini  

    def _split_data_category(self, dataset, feature, value):     

    # 对分类变量进行拆分       

    # 将feature列的值为value的记录抽取出来,同时删除feature列  

本回答被提问者和网友采纳

机器学习SVM多分类问题及基于sklearn的Python代码实现

SVM多分类问题及Python代码实现

1. 什么是SVM?

对于这个点已经介绍的非常多了,不管是西瓜书还是各种博客,就是需要找到一个超平面,用这个超平面把数据划分成两个类别,最开始的SVM就是在二分类的问题上应用,在之后被扩展到多类别的分类。对于SVM的推导公式不是很复杂,在此就不进行推导,大概清楚最基本的原理然后就进行应用就可以了。

如上图所示,我们就是要找到中间这条线,使得 ∣ ∣ w ∣ ∣ ||w||

以上是关于基于python的决策树能进行多分类吗的主要内容,如果未能解决你的问题,请参考以下文章

机器学习之决策树算法

Matlab基于决策树算法实现多分类预测(源码可直接替换数据)

Matlab基于决策树算法实现多分类预测(源码可直接替换数据)

使用 Apache Spark 决策树分类器进行多类分类时出错

02. 基本分类:基于决策树的分类

特征是不是必须是浮点数才能通过决策树进行多类分类?