机器学习决策树作业

机器学习决策树作业

作业1:用独热编码表达天气数据集,并画出决策树。

作业2:

对于以下数据集,实际值和预测值:

data = {‘y_Actual’: [‘Yes’, ‘No’, ‘No’, ‘Yes’, ‘No’, ##‘Yes’, ‘No’, ‘No’, ‘Yes’, ‘No’, ‘Yes’, ‘No’],

‘y_Predicted’: [‘Yes’, ‘Yes’, ‘No’, ‘Yes’, ‘No’, ‘Yes’, ‘Yes’, ‘No’, ‘Yes’, ‘No’, ‘No’, ‘No’] }

1)手动计算查全率、查准率、精确率和F1分数(F1 score 先自学)(重要,可能会考试)

2)利用skleran编程验证上述结果

作业1:用独热编码表达天气数据集,并画出决策树。

用独热编码表达天气数据集

# 导入库
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import tree
from sklearn import preprocessing
from sklearn.tree import DecisionTreeClassifier
# 导入数据
df = pd.read_csv('playornot.csv')
# 分割数据集
X, y = df.iloc[:, :-1], df.iloc[:, -1]   
#实例化
enc = preprocessing.OneHotEncoder()        
# 训练模型
enc.fit(X,y)
# 以数组形式显示转化后的独热编码                             
df1 = enc.transform(X).toarray()
输出

在这里插入图片描述

画出决策树

# 构建模型
cls = DecisionTreeClassifier()           
# 训练模型
cls.fit(df1,y)
# 树相关信息
feature_name,class_name = df1,df['类别'].unique() #中间节点和叶子节点
# 中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei'] 
# 创建画布,并设置画布格式为1行1列,画布长宽为10英寸
fig, ax = plt.subplots(1, 1, figsize = (10,10))
# 绘制决策树
tree.plot_tree(cls, feature_names = feature_name, class_names = class_name, filled = True)
plt.show()
输出

在这里插入图片描述

作业2:

对于以下数据集,实际值和预测值:

data = {‘y_Actual’: [‘Yes’, ‘No’, ‘No’, ‘Yes’, ‘No’, ##‘Yes’, ‘No’, ‘No’, ‘Yes’, ‘No’, ‘Yes’, ‘No’],

‘y_Predicted’: [‘Yes’, ‘Yes’, ‘No’, ‘Yes’, ‘No’, ‘Yes’, ‘Yes’, ‘No’, ‘Yes’, ‘No’, ‘No’, ‘No’] }

from sklearn import metrics
y_Predicted = [1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0]
y_Actual = [1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0]
print("precision_score = :", metrics.precision_score(y_Predicted, y_Actual))
print("recall_score = :", metrics.recall_score(y_Predicted, y_Actual))
print("accuracy_score = :", metrics.accuracy_score(y_Predicted, y_Actual))
print("f1_score=:", metrics.f1_score(y_Predicted, y_Actual))
结果

在这里插入图片描述

请添加图片描述
原创不易 转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈请添加图片描述

### 关于机器学习决策树期末大作业的资源与指南 #### 决策树简介 决策树是一种监督学习算法,广泛应用于分类和回归任务。该模型通过构建一棵或多棵决策树来进行预测。每棵树由节点和分支组成,其中内部节点表示属性上的测试,分支代表测试的结果,叶节点保存类别标签或数值输出。 #### 构建决策树的过程 为了完成基于决策树的项目,了解如何创建和优化这些结构至关重要。通常涉及以下几个方面: - **数据预处理** 数据清洗、缺失值填充以及异常检测都是必要的前期工作。对于离散型变量可能还需要编码转换[^1]。 - **特征工程** 特征选择能够有效减少维度并提高泛化能力。可以采用过滤式方法对候选特征打分;也可以利用包裹式策略迭代挑选最优组合;更进一步还可以考虑嵌入式的自动机制,在训练期间同步调整输入空间[^2]。 - **模型搭建** 使用Python中的`scikit-learn`库非常方便快捷地实现这一目标。下面给出一段简单的代码用于生成二叉分类器实例: ```python from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier # 加载鸢尾花样本集合 data = load_iris() X, y = data.data, data.target # 划分训练集/验证集 X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.3) # 初始化决策树对象 clf = DecisionTreeClassifier() # 训练过程 clf.fit(X_train, y_train) # 输出准确率 print(f'Accuracy on validation set: {clf.score(X_val, y_val):.4f}') ``` - **超参数调优** 可以借助网格搜索(Grid Search)或者随机搜索(Randomized Search),配合交叉验证(Cross Validation),找到最佳配置下的性能表现。 - **可视化分析** 绘制出最终得到的决策路径有助于理解其内在逻辑关系,并辅助解释结论背后的原因。可参考matplotlib等绘图工具包的帮助文档获取更多信息。 #### 实践建议 当着手准备此类课题时,除了上述技术要点外,还应该注重理论基础的学习,比如熵(Entropy)、基尼不纯度(Gini Impurity)的概念及其计算方式;同时也要关注实际应用场景的选择,确保所选案例既贴近生活又具备一定的挑战性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞滕人生TYF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值