机器学习-决策树-回归-CPU(中央处理单元)数据-python scikit-learn

这篇具有很好参考价值的文章主要介绍了机器学习-决策树-回归-CPU(中央处理单元)数据-python scikit-learn。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

决策树是一种监督机器学习算法,用于回归和分类任务。树是可以处理复杂数据集的强大算法。
决策树特性:

  • 不需要数值输入数据进行缩放。无论数值是多少,决策树都不在乎。
  • 不同于其他复杂的学习算法,决策树的结果是可以解释的,决策树不是黑盒类型的模型。
  • 虽然大多数模型都有缺失值的问题,但决策树却没有问题。
  • 树可以处理不平衡的数据集,只需要调整类的权重。
  • 树可以提供特征的重要性或每个特征对模型训练结果的贡献。
  • 树是随机森林和梯度增强机等集成方法的基本构建块。

决策树的工作方式就像一系列if/else问题。假设你想决定买哪辆车。为了买到合适的车,你可以通过问一系列类似的问题来评估安全水平,座位和门的数量。

决策树的一个众所周知的缺点是倾向于容易过拟合数据(基本上假设它们一开始总是过拟合)。克服过拟合的一种方法是减少决策树中的最大深度(称为“max_depth”超参数)。

1.导入模块

import numpy as np
import pandas as pd
import seaborn as sns
import sklearn
import matplotlib.pyplot as plt
%matplotlib inline
import warnings
warnings.filterwarnings('ignore')

2.加载数据

在这个使用决策树的回归任务中,将使用机器CPU(中央处理单元)数据,该数据可在OpenML上获得。这里将使用Sklearn ’ fetch_openml '函数加载它。

该数据集将根据以下数据预测CPU的相对性能:

  • MYCT:以纳秒为单位的机器周期时间(整数)
  • MMIN:最小主存(千字节)(整数)
  • MMAX:最大主存,单位为千字节(整数)
  • cache:以千字节为单位的cache(整数)
  • CHMIN:最小通道数单位(整数)
  • CHMAX:最大通道数单位(整数)
  • PRP:公布的相对性能(整数)(目标变量)
from sklearn.datasets import fetch_openml
machine_cpu = fetch_openml(name='machine_cpu')
machine_data = machine_cpu.data
machine_labels = machine_cpu.target

3.探索性分析数据

在进行探索性分析之前,让我们先获取训练和测试数据。

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(machine_data,machine_labels, test_size=0.2,random_state=20)

可视化所有数字特征的直方图。

X_train.hist(bins=50, figsize=(15,10))
plt.show()

机器学习-决策树-回归-CPU(中央处理单元)数据-python scikit-learn,机器学习python,机器学习,python,决策树
或者可以快速使用’ sn.pairplot() '查看数据。

sns.pairplot(X_train)

机器学习-决策树-回归-CPU(中央处理单元)数据-python scikit-learn,机器学习python,机器学习,python,决策树

4.数据预处理

将数据准备为机器学习模型提供适当的格式。
决策树并不关心特征是否缩放。可建立一个Pipeline来缩放特征。

from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline

scale_pipe = Pipeline([('scaler', StandardScaler())])
X_train_scaled = scale_pipe.fit_transform(X_train)

5.训练决策树回归器

from sklearn.tree import DecisionTreeRegressor
#原始数据上训练
tree_reg = DecisionTreeRegressor()
tree_reg.fit(X_train, y_train)
#在缩放后的数据上训练相同的模型。
tree_reg_scaled = DecisionTreeRegressor()
tree_reg_scaled.fit(X_train_scaled, y_train)

6.评估决策树

先检查训练的均方根误差。不建议根据测试数据对模型进行评估,因为还没有对模型进行改进。这里会写一个函数,让它更简单,避免重复。

from sklearn.metrics import mean_squared_error
def predict(input_data,model,labels):
    preds = model.predict(input_data)
    mse = mean_squared_error(labels,preds)
    rmse = np.sqrt(mse)
    return rmse
predict(X_train, tree_reg, y_train) #9.724590719956222
predict(X_train_scaled, tree_reg_scaled, y_train) #9.724590719956222

正如你所看到的,两者根本没有区别。所以在未来使用决策树的项目中,无论是否缩放数据,预测结果都不会受到影响。

7.改进决策树

改进决策树模型的一种方法是找到max_depth和其他一些参数的正确数量。使用GridSearch来查找最佳超参数。注意,因为数据集比较小,这样做可能会导致过拟合。但这样做是为了学习(你可以把它应用到实际的问题中)

from sklearn.model_selection import GridSearchCV

params_grid = {'max_leaf_nodes': list(range(0, 10)), 'min_samples_split': [0,1,2, 3, 4], 
              'max_depth':[None,0,1,2,3]}

#默认情况下,Refit为true。最好的estimator(估计器)是在整个数据集上训练的
grid_search = GridSearchCV(DecisionTreeRegressor(random_state=42), params_grid, verbose=1, cv=3, refit=True)
grid_search.fit(X_train, y_train)
tree_best = grid_search.best_estimator_
predict(X_train, tree_best, y_train)  #34.999530266023044

可以看到,结果overfitted。
最后可以在测试集上对模型进行评估,用原来的模型。

predict(X_test, tree_reg, y_test)  #42.89411103991738

8.总结

这里学习了决策树背后的基本思想,并使用它来预测CPU性能。在下一个实验中,将使用决策树来完成分类任务,将使用一个真实的数据集,这样就可以实际地改进决策树模型。文章来源地址https://www.toymoban.com/news/detail-830389.html

到了这里,关于机器学习-决策树-回归-CPU(中央处理单元)数据-python scikit-learn的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【机器学习】决策树如何实现回归

    在 https://blog.csdn.net/qq_51392112/article/details 中,我们详细介绍了决策树基本内容:如何实现、决策树的类型、公式计算等,内容更偏向于决策树的分类任务,而分类任务也是很好理解的,因为直观上来说,决策树本身就很适合分类任务。 但是决策树还可以实现回归任务,这一讲

    2024年02月03日
    浏览(29)
  • 机器学习:什么是分类/回归/聚类/降维/决策

    目录 学习模式分为三大类:监督,无监督,强化学习 监督学习基本问题 分类问题 回归问题 无监督学习基本问题 聚类问题 降维问题 强化学习基本问题 决策问题 如何选择合适的算法 我们将涵盖目前「五大」最常见机器学习任务: 回归 分类 聚类 降维 决策 分类是监督学习

    2024年02月12日
    浏览(32)
  • 机器学习算法:线性回归、逻辑回归、决策树和随机森林解析

    引言 机器学习算法是人工智能领域的核心,它们用于解决各种问题,从预测房价到图像分类。本博客将深入探讨四种常见的机器学习算法:线性回归、逻辑回归、决策树和随机森林。 线性回归 什么是线性回归? 线性回归是一种用于建立连续数值输出的机器学习模型的算法。

    2024年02月10日
    浏览(40)
  • 【Python机器学习】决策树集成——梯度提升回归树

    理论知识:                 梯度提升回归树通过合并多个决策树来构建一个更为强大的模型。虽然名字里有“回归”,但这个模型既能用于回归,也能用于分类。与随机森林方法不同,梯度提升采用连续的方式构造树,每棵树都试图纠正前一棵树的错误。默认情况下,

    2024年02月01日
    浏览(31)
  • 机器学习算法基础--逻辑回归简单处理mnist数据集项目

    目录 1.项目背景介绍 2.Mnist数据导入 3.数据标签提取且划分数据集 4.数据特征标准化 5.模型建立与训练 6.后验概率判断及预测 7.处理模型阈值及准确率 8.阈值分析的可视化绘图 9.模型精确性的评价标准

    2024年02月07日
    浏览(34)
  • 机器学习_集成学习_梯度提升_回归_决策树_XGBoost相关概念

    目录 1. 机器学习 使用监督吗?什么又是监督学习? 2. 与XGBoost 类似的机器学习方法有哪些? 3. 随机森林方法 和 梯度提升方法 有什么区别? 分别应用于什么场景? 4. 决策树回归方法 和 Gradient Boosting类回归方法 有什么区别和联系? 5. 什么是集成学习? 6. 多元线性回归方法

    2024年04月26日
    浏览(23)
  • python机器学习(五)逻辑回归、决策边界、代价函数、梯度下降法实现线性和非线性逻辑回归

    线性回归所解决的问题是把数据集的特征传入到模型中,预测一个值使得误差最小,预测值无限接近于真实值。比如把房子的其他特征传入到模型中,预测出房价, 房价是一系列连续的数值,线性回归解决的是有监督的学习。有很多场景预测出来的结果不一定是连续的,我们

    2024年02月15日
    浏览(73)
  • 机器学习实战13-超导体材料的临界温度预测与分析(决策树回归,梯度提升回归,随机森林回归和Bagging回归)

    大家好,我是微学AI,今天给大家介绍一下机器学习实战13-超导体材料的临界温度预测与分析(决策树回归,梯度提升回归,随机森林回归和Bagging回归),这几天引爆网络的科技大新闻就是韩国科研团队宣称发现了室温超导材料-LK-99,这种材料在常压情况下,127摄氏度就可以达到超

    2024年02月14日
    浏览(40)
  • python机器学习(七)决策树(下) 特征工程、字典特征、文本特征、决策树算法API、可视化、解决回归问题

    特征提取就是将任意数据转换为可用于机器学习的数字特征。计算机无法直接识别字符串,将字符串转换为机器可以读懂的数字特征,才能让计算机理解该字符串(特征)表达的意义。 主要分为:字典特征提取(特征离散化)、文本特征提取(文章中特征词汇出现的频次)。 字典特

    2024年02月14日
    浏览(43)
  • 【吴恩达·机器学习】第三章:分类任务:逻辑回归模型(交叉熵损失函数、决策边界、过拟合、正则化)

    博主简介: 努力学习的22级计算机科学与技术本科生一枚🌸 博主主页: @Yaoyao2024 每日一言🌼: 勇敢的人,不是不落泪的人,而是愿意含着泪继续奔跑的人。 ——《朗读者》 本系列博客文章是博主本人根据吴恩达老师2022年的机器学习课程所学而写,主要包括老师的核心讲义

    2024年02月19日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包