sklearn -分类算法 -决策树

信息熵(香农提出)

在这里插入图片描述
= 每一种类别的概率 * log 概率 ,求和 ,再乘以 -1

信息熵 衡量不确定性,信息熵越小,不确定性也越小。信息熵越大,不确定性越大。



信息增益

表示得知特征A的信息之后,信息熵减少的程度。在这里插入图片描述
= 初始信息熵 – A条件信息熵

在这里插入图片描述

初始信息熵: 只看目标值 。是(9/15)和否(6/15)
初始信息熵 = -1 (9/15log 9/15+6/15* log 6/15 )
年龄信息熵 :青年(5 / 15) 中年(5 / 15) 老年(5 / 15)

年龄信息熵 = -1 * [ 5/15 * H(青年) + 5/15 * H(中年)+5/15 * H(老年) ]

H(青年) = -1 (2/5log 2/5 + 3/5*log 3/5)





决策树:把信息增益 越大的(不确定性下降越大的特征)放在树的越前面。

api :

from sklearn.tree import DecisionTreeClassifier
DecisionTreeClassifier(criterion=’gini’, max_depth=None,random_state=None)

criterion: 默认是’gini’系数,也可以选择信息增益’entropy’

max_depth:树的深度大小,

代码

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个基于Python的文本分类的代码分享,使用了sklearn中的决策树和随机森林算法。 首先,需要安装sklearn库,可以使用以下命令进行安装: ``` pip install -U scikit-learn ``` 然后,导入所需的库和模块: ```python from sklearn.feature_extraction.text import CountVectorizer from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score ``` 接下来,加载数据集并进行数据预处理: ```python # 加载数据集 data = open('data.txt').read() # 分割为文本和类别 text, labels = [], [] for line in data.split('\n'): text.append(line.split('\t')[0]) labels.append(line.split('\t')[1]) # 将文本数据转换为数值特征向量 vectorizer = CountVectorizer() X = vectorizer.fit_transform(text) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, labels, test_size=0.2, random_state=42) ``` 然后,使用决策树进行文本分类: ```python # 创建决策树分类器并进行训练 dt_classifier = DecisionTreeClassifier() dt_classifier.fit(X_train, y_train) # 在测试集上进行预测 y_pred_dt = dt_classifier.predict(X_test) # 计算准确率 accuracy_dt = accuracy_score(y_test, y_pred_dt) print("决策树准确率:", accuracy_dt) ``` 最后,使用随机森林进行文本分类: ```python # 创建随机森林分类器并进行训练 rf_classifier = RandomForestClassifier() rf_classifier.fit(X_train, y_train) # 在测试集上进行预测 y_pred_rf = rf_classifier.predict(X_test) # 计算准确率 accuracy_rf = accuracy_score(y_test, y_pred_rf) print("随机森林准确率:", accuracy_rf) ``` 以上就是基于Python的文本分类代码示例,使用了sklearn中的决策树和随机森林算法。可以根据自己的数据集和需求进行相应的调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值