课堂实验-【集成学习】

【实验名称】 实验:集成学习
【实验目的】
1.了解决策树,随机森林理论基础
2.平台实现算法
3. 编程实现决策树,随机森林算法
【实验原理】
决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。
【实验环境】
OS:Ubuntu16.04
PyCharm: 2017.3
【实验步骤】
实验开始前,我们先安装实验所需依赖库

pip install sklearn
pip install matplotlib

题目一:分析影响房价的因素
我们现在需要使用决策树来对房价的因素进行分析发现哪个属性最重要,在前面实验中我们已经熟悉了波士顿房价这个数据集,这个数据集由13个属性,以及一个价格所组成,房子的属性影响价格的走势,但是每一个属性的重要程度是不一样的,回想决策树的原理,我们可以使用决策树帮我们判别出特征属性的重要程度。提示:使用决策树回归器DecisionTreeRegressor的feature_importances_ 方法。

import numpy as np
from sklearn.tree import DecisionTreeRegressor
from sklearn import datasets
from sklearn.metrics import mean_squared_error, explained_variance_score
from sklearn.utils import shuffle
import matplotlib.pyplot as plt

if __name__=='__main__':
    # Load housing data
    housing_data = datasets.load_boston()

    # Shuffle the data
    X, y = shuffle(housing_data.data, housing_data.target, random_state=7)

    # Split the data 80/20 (80% for training, 20% for testing)
    num_training = int(0.8 * len(X))
    X_train, y_train = X[:num_training], y[:num_training]
    X_test, y_test = X[num_training:], y[num_training:]

    # Fit decision tree regression model
    dt_regressor = DecisionTreeRegressor(max_depth=4)
    dt_regressor.fit(X_train, y_train)


    # Evaluate performance of Decision Tree regressor
    y_pred_dt = dt_regressor.predict(X_test)
    mse = mean_squared_error(y_test, y_pred_dt)
    evs = explained_variance_score(y_test, y_pred_dt)
    print ("\n#### Decision Tree performance ####")
    print ("Mean squared error =", round(mse, 2))
    print ("Explained variance score =", round(evs, 2))


    # Plot relative feature importances
    feature_importances = 100.0 * (dt_regressor.feature_importances_ / max(dt_regressor.feature_importances_))

    # Sort the values and flip them
    index_sorted = np.flipud(np.argsort(feature_importances))

    # Arrange the X ticks
    pos = np.arange(index_sorted.shape[0]) + 0.5

    # Plot the bar graph
    plt.figure()
    plt.bar(pos, feature_importances[index_sorted], align='center')
    plt.xticks(pos, housing_data.feature_names[index_sorted])
    plt.ylabel('Relative Importance')
    plt.title('Decision Tree regressor')
    plt.show()

题目二:随机森林
使用sklearn自带数据集digits进行练习,请将数据集划分为训练与测试集,分别使用决策树和随机森林算法对数据digits的训练集进行分类,比较决策树算法和随机森林算法的表现,并思考是否可以继续提升随机森林算法的表现?该如何实现呢?

from sklearn import datasets
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn import metrics

dig = datasets.load_digits()
X_train,X_test,y_train,y_test=train_test_split(dig.data,dig.target,test_size=0.4,random_state=0)
# Create classifiers
clf = DecisionTreeClassifier()
rfc = RandomForestClassifier()
rfc2 = RandomForestClassifier(n_estimators=200,max_features=8)
clf_pre = clf.fit(X_train, y_train).predict(X_test)
rfc_pre =rfc.fit(X_train, y_train).predict(X_test)
rfc2_pre =rfc2.fit(X_train, y_train).predict(X_test)
print(metrics.accuracy_score(y_test, clf_pre))
print(metrics.accuracy_score(y_test, rfc_pre))
print(metrics.accuracy_score(y_test, rfc2_pre))

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python课堂实验设计可以涉及许多知识点,如序列、文件操作、网络编程、GUI、模块、爬虫等基础知识。这些实验可以用来检验学生对《Python程序设计》课程的学习成果,并且帮助学生查漏补缺。在实验过程中,学生可能会遇到一些问题,但通过解决这些问题,他们可以获得丰富的经验。 另外,通过学习Python,学生会认识到Python的强大之处。相比于C语言,Python更加注重底层细节的实现,比如字符串查找、拷贝、拼接和排序等。这使得学生有更多的精力来关注功能的实现。此外,Python还提供了丰富的第三方模块,用于扩展功能。虽然Python简洁易读,实现相同功能所需的代码量较少,但代码执行效率相对较低。例如,在文件加密程序中,使用Python的DES加密算法可能需要几分钟,而使用其他语言的程序可能只需要不到一分钟。 此外,还有一个关于Python课堂实验设计的毕设项目,即基于Python实现的多人人脸识别的课堂考勤系统设计。这个项目是一个简单的课堂考勤系统,可以部署在服务器上使用。项目中包含了模型文件和部署说明。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [20183122 综合实验Python程序设计》实验报告](https://blog.csdn.net/weixin_39543835/article/details/110242496)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [毕设项目-基于python实现的多人人脸识别的课堂考勤系统设计源码.zip](https://download.csdn.net/download/DeepLearning_/88284309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值