机器学习决策树

一、香农公式

熵:

信息增益:

信息增益=信息熵-条件熵

前者是初始信息熵大小,后者是因为条件加入后带来的确定性增加

信息增益表示得知特征X的信息而使得类Y的信息的不确定性减少的程度

信息增益越大说明影响越大

二、代码

python 复制代码
"""
决策树对泰坦尼克号进行预测生死
:return: None
"""
# 获取数据
titan = pd.read_csv("./data/titanic.txt")
titan.info() # info()查看数据信息,包括每列的类型,非空值个数,内存占用等
python 复制代码
# 处理数据,找出特征值和目标值
x = titan[['pclass', 'age', 'sex']]

y = titan['survived']
print(x.info())  # 用来判断是否有空值
x.describe(include='all') # 用来查看数据的描述性统计信息
python 复制代码
# 一定要进行缺失值处理,填为均值
mean=x['age'].mean()
print(mean)
x.loc[:,'age']=x.loc[:,'age'].fillna(mean)
python 复制代码
# 分割数据集到训练集合测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25, random_state=4)
print(x_train.head())
python 复制代码
x_train.to_dict(orient="records") #把df变为列表套字典,后面方便变成one_hot编码
python 复制代码
# 进行处理(特征工程)特征-》类别-》one_hot编码
dict = DictVectorizer(sparse=False) # sparse=False表示不用稀疏矩阵,用numpy数组

# 这一步是对字典进行特征抽取,to_dict可以把df变为字典,records代表列名变为键
x_train = dict.fit_transform(x_train.to_dict(orient="records"))
print(type(x_train))
print(dict.get_feature_names_out())
print('-' * 50)
x_test = dict.transform(x_test.to_dict(orient="records"))
print(x_train)
python 复制代码
# 用决策树进行预测,修改max_depth试试,修改criterion为entropy
#树过于复杂,就会产生过拟合
dec = DecisionTreeClassifier()

#训练
dec.fit(x_train, y_train)

# 预测准确率
print("预测的准确率:", dec.score(x_test, y_test))

# 导出决策树的结构
export_graphviz(dec, out_file="tree.dot",
                feature_names=['age', 'pclass=1st', 'pclass=2nd', 'pclass=3rd', 'female', 'male'])
相关推荐
进击的_鹏16 分钟前
【C++】stack和queue以及priority_queue的使用以及模拟实现
开发语言·c++·算法
手握风云-17 分钟前
优选算法的智慧之光:滑动窗口专题(二)
数据结构·算法
SomeB1oody17 分钟前
【Python机器学习】1.1. 机器学习(Machine Learning)介绍
开发语言·人工智能·python·机器学习
闻缺陷则喜何志丹19 分钟前
【二分查找 前缀和】P10429 [蓝桥杯 2024 省 B] 拔河|普及+
c++·算法·前缀和·蓝桥杯·二分查找·洛谷·拔河
atwdy33 分钟前
【决策树】分类属性的选择
决策树·机器学习·cart
Jason_Orton35 分钟前
决策树(Decision Tree):机器学习中的经典算法
人工智能·算法·决策树·随机森林·机器学习
紫雾凌寒38 分钟前
计算机视觉|ConvNeXt:CNN 的复兴,Transformer 的新对手
人工智能·神经网络·机器学习·计算机视觉·transformer·动态网络·convnext
筏.k1 小时前
动态规划之 “完全背包“ ------P8646 [蓝桥杯 2017 省 AB] 包子凑数
算法·蓝桥杯·动态规划
clownAdam1 小时前
通俗易懂的分类算法之支持向量机详解
算法·支持向量机·分类·数据挖掘
飞3001 小时前
淘天集团算法岗-计算机视觉(T-Star Lab)内推
人工智能·算法·计算机视觉·业界资讯