python决策树计算熵计算gini
时间: 2023-07-13 14:35:13 浏览: 103
python决策树代码
计算熵的Python代码如下:
```python
import math
def calc_entropy(data):
"""
计算数据集的熵
:param data: 数据集
:return: 熵
"""
n = len(data)
label_count = {}
for item in data:
label = item[-1]
if label not in label_count:
label_count[label] = 0
label_count[label] += 1
entropy = 0.0
for key in label_count:
prob = float(label_count[key]) / n
entropy -= prob * math.log(prob, 2)
return entropy
```
计算Gini系数的Python代码如下:
```python
def calc_gini(data):
"""
计算数据集的Gini系数
:param data: 数据集
:return: Gini系数
"""
n = len(data)
label_count = {}
for item in data:
label = item[-1]
if label not in label_count:
label_count[label] = 0
label_count[label] += 1
gini = 1.0
for key in label_count:
prob = float(label_count[key]) / n
gini -= prob ** 2
return gini
```
以上代码都是基于数据集的标签(最后一列)来计算熵或Gini系数。数据集的格式是一个列表,每个元素是一个列表,表示一个样本,最后一个元素是标签。例如:
```python
data = [[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, 'no']]
```
其中第一个样本的特征为[1, 1],标签为'yes'。
阅读全文