人工智能基础与应用课件 项目8. 机器学习-钢铁厂用电量预测_第1页
人工智能基础与应用课件 项目8. 机器学习-钢铁厂用电量预测_第2页
人工智能基础与应用课件 项目8. 机器学习-钢铁厂用电量预测_第3页
人工智能基础与应用课件 项目8. 机器学习-钢铁厂用电量预测_第4页
人工智能基础与应用课件 项目8. 机器学习-钢铁厂用电量预测_第5页
已阅读5页,还剩28页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目8机器学习——钢铁厂用电量预测【伦理思辨】思辨主题:AI工具的使用边界在哪里?我们通常认为算法是绝对理性和客观的。然而,机器学习模型的本质是“从数据中寻找规律”。如果历史数据本身就烙印着人类社会的偏见(如性别歧视、地域差异),模型不仅会照单全收,甚至可能将这些偏见放大为“真理”。思考:

当“准确”的模型造成了“不公”的结果,责任由于谁承担?是算法开发者、数据提供方,还是历史本身?为了追求社会的公平,我们是否愿意牺牲一部分算法的准确率?【项目导读】

从1950年代萨缪尔开发的跳棋程序开始,机器学习(MachineLearning)就展现了其革命性的理念:让计算机不再依赖死板的规则指令,而是像人类一样通过“自我对弈”和经验积累,从数据中自动探寻规律并提升能力。这一思想如今已演变为驱动现代社会变革的引擎,广泛应用于商品推荐、图像识别以及工业生产预测等各个领域。本项目将带你跨越理论门槛,亲手揭开机器学习的神秘面纱。我们将不再只是旁观者,而是作为实践者,利用真实的工业与自然数据,学习构建两个基础而强大的模型:一个是用于预测钢铁厂用电量的回归模型(监督学习),另一个是用于对鸢尾花数据进行自动分类的聚类模型(无监督学习),完整体验从原始数据到智能决策的全过程。图8-1塞缪尔在IBM701上向公众展示计算机“跳棋”【学习目标】维度具体目标知识目标1.理解监督学习与无监督学习的核心思想与区别。

2.掌握线性回归、逻辑回归和K-最近邻(KNN)分类算法的基本原理。

3.了解K-均值(K-Means)聚类算法的工作流程。技能目标1.能够使用Python和scikit-learn库构建一个线性回归模型,解决实际预测问题。

2.能够应用K-均值聚类算法对无标签数据进行分类。

3.掌握基本的数据预处理、模型训练、预测和评估的流程。素养目标1.培养数据驱动的思维方式,学习如何利用数据分析和解决问题。

2.树立对机器学习应用价值的认知,激发利用AI技术进行创新优化的兴趣。

3.理解数据质量和算法选择对模型效果的重要性。01什么是机器学习02机器学习技术的发展史03机器学习核心思想:从数据中学习04

核心监督学习算法目

录05任务8-1使用回归模型实现钢铁厂用电量预测06

任务8-2使用聚类算法实现鸢尾花数据分类8.1什么是机器学习1.核心定义机器学习(MachineLearning)是人工智能的一个核心分支,其根本思想是让计算机系统利用数据和经验,而不是通过显式编程,来自动提升其在特定任务上的性能。换言之,传统编程是我们为机器制定详尽的规则和指令,而机器学习则是我们提供大量的数据案例,让机器自主地从数据中“学习”出规律和模式。这个“学习”的过程,本质上是算法通过分析海量的历史数据(例如过去的产量、温度、时间、用电量等),自动构建一个能够揭示输入与输出之间复杂关系的数学模型的过程。一旦模型建立完成,我们就可以用它来对全新的、未知的数据进行精准的预测或分类。8.1什么是机器学习2.一个简单的类比这就像教一个孩子识别“猫”,我们不会告诉他“猫是有四条腿、一条尾巴、两只尖耳朵和胡须的哺乳动物”这样复杂的规则,而是会指着各种各样的猫的照片或真实的猫告诉他:“这是猫”。看过足够多的案例后,孩子的大脑就会自动“学习”到猫的内在特征,最终能够识别出他从未见过的猫。在这个过程中:数据:就是孩子看到的所有猫的图像。算法:是孩子大脑的学习和归纳能力。模型:是孩子脑中形成的关于“猫”的抽象概念。任务:是“分类”,即准确地判断一个新动物是不是猫。8.1什么是机器学习3.关键组成要素一个典型的机器学习工作流程包含以下几个关键部分:数据(Data):机器学习的“燃料”。数据的质量和数量直接决定了模型性能的上限。算法(Algorithm):学习的“引擎”。不同的算法适用于解决不同类型的问题,例如线性回归用于预测连续值,而K-均值算法用于数据聚类。模型(Model):学习的“产物”。模型是算法从数据中学到的规律的数学表示。例如,线性回归模型就是一条包含了最佳权重(w)和偏置(b)的数学方程。任务(Task):学习的“目标”。最常见的任务是回归(预测数值)和分类(预测类别)。8.2机器学习技术的发展史1.孕育期(20世纪50年代-70年代):思想的萌芽1950年代:机器学习的概念与人工智能一同诞生。1952年,IBM的亚瑟·萨缪尔(ArthurSamuel)开发了能够通过自我对弈学习的跳棋程序,成为机器学习领域的早期里程碑。1957年,弗兰克·罗森布拉特(FrankRosenblatt)发明了感知机(Perceptron),这是第一个能够学习的神经网络模型,奠定了神经网络研究的基础。1960-70年代:理论研究取得进展,但受限于算力和数据的匮乏,以及感知机等早期模型的理论局限性(如无法解决“异或”问题),机器学习和人工智能的整体发展进入了第一个“AI寒冬”。2.复兴期(20世纪80年代):神经网络的回归1980年代:随着反向传播(Backpropagation)算法的重新发现和普及,训练多层神经网络成为可能,克服了单层感知机的局限性,引发了神经网络研究的第二次浪潮。同时,决策树(如ID3算法)等其他机器学习方法也开始兴起。8.2机器学习技术的发展史3.发展期(20世纪90年代-21世纪初):统计学习的崛起1990年代:机器学习逐渐发展成为一个独立的、更注重统计基础的学科。以支持向量机(SVM)为代表的统计学习方法因其优美的理论和出色的性能,成为当时的主流。2000年代:随着互联网的普及,数据量开始爆炸式增长。机器学习在垃圾邮件过滤、推荐系统等实际应用中大放异彩,其实用价值得到广泛认可。在此期间,随机森林、提升(Boosting)等集成学习方法也相继提出,并取得了巨大成功。4.黄金期(2010年至今):深度学习的革命2012年:在ImageNet图像识别挑战赛中,一个名为AlexNet的深度卷积神经网络(DeepConvolutionalNeuralNetwork)以远超第二名的惊人准确率夺冠,宣告了深度学习(DeepLearning)时代的到来。8.3机器学习核心思想:从数据中学习1.监督学习(SupervisedLearning)监督学习好比是带着答案的学习。我们提供给机器的数据集是“有标签”或“有答案”的,每一条输入数据都有一个对应的正确输出。算法的任务就是学习从输入到输出的映射关系。例如,在预测房价时,我们给算法提供大量房子的信息(如面积、位置、房龄)和它们对应的“成交价”(标签)。算法学习后,就能对一个新房子的信息预测出其可能的价格。监督学习主要分为两类任务:1)回归(Regression)预测一个连续的数值。例如,预测钢铁厂的用电量、明天的气温、股票价格等。2)分类(Classification)预测一个离散的类别标签。例如,判断一封邮件是否为垃圾邮件、识别一张图片中的动物是猫还是狗、判断客户是否会流失。8.3机器学习核心思想:从数据中学习2.无监督学习(UnsupervisedLearning)无监督学习则是“没有答案”的学习。我们提供给机器的数据集是“无标签”的,算法需要自己从数据中发现隐藏的结构、模式或关系。

无监督学习的典型任务:1)聚类(Clustering)将数据点分组成不同的簇,使得同一簇内的数据点相似度高,而不同簇之间的数据点相似度低。应用举例:在市场分析中,将行为相似的客户自动划分为“高价值客户”、“价格敏感客户”等群体,以便进行精准营销。本项目中的鸢尾花数据分类就是一个典型的聚类任务。2)关联规则学习(AssociationRuleLearning)发现数据项之间有趣的关联关系。应用举例:分析超市交易记录,发现“购买了啤酒的顾客也很可能购买尿布”的规律,从而优化商品摆放和促销策略。8.3机器学习核心思想:从数据中学习3.强化学习(ReinforcementLearning)强化学习是机器学习的第三大范式,它关注的是智能体(Agent)如何在一个环境(Environment)中采取行动(Action),以最大化累计奖励(Reward)。这好比是训练宠物:当它做出正确的动作时,你给它奖励;当它做错时,则不给。智能体通过不断的“尝试与犯错”,学习到一套最优策略(Policy),从而知道在何种状态下应采取何种行动以获得最佳的长期回报。AlphaGo击败世界围棋冠军,以及机器人学习如何行走,都是强化学习的经典应用。特征监督学习无监督学习强化学习输入数据带标签的数据无标签的数据无标签,但有环境的反馈(奖励/惩罚)核心目标预测或分类发现数据的内在结构或模式学习最优决策策略典型算法线性回归

,逻辑回归,KNNK-均值聚类,关联规则Q-Learning,SARSA应用场景房价预测

,垃圾邮件识别用户分群

,购物篮分析游戏AI,机器人控制,自动驾驶表8-1三大机器学习范式对比8.4核心监督学习算法1.线性回归(LinearRegression)线性回归是回归任务中最基础、最经典的算法之一。它假设输入特征与输出的连续值之间存在线性关系。对于只有一个输入特征的情况,这个关系可以用初中数学中的直线方程来表示:2.

逻辑回归(LogisticRegression)尽管名字里有“回归”,但逻辑回归实际上是一种用于解决二元分类问题的监督学习算法。它通过一个特殊的函数(Sigmoid函数)将线性回归的连续输出值映射到(0,1)区间内,得到的结果可以被看作是样本属于某个类别的概率。例如,在信用评估中,逻辑回归可以输出某用户“会违约”的概率。我们通常设定一个阈值(如0.5),当概率大于这个阈值时,就判定该用户会违约,反之则判定为不会违约。3.

K-最近邻分类(K-NearestNeighbors,KNN)K-最近邻(KNN)是一种非常直观的分类算法。它的核心思想是“物以类聚”。当需要预测一个新样本的类别时,算法会在训练数据集中找到与该新样本“距离”最近的K个邻居,然后根据这K个邻居的类别进行“投票”,得票最多的类别就是新样本的预测类别。KNN算法简单有效,但其缺点是需要存储所有训练数据,并且在数据量大时预测速度较慢。8.5核心无监督学习算法:K-均值聚类

K-均值聚类是聚类算法中最常用的一种。它的目标是将n个数据点划分到K个不同的簇中,使得每个数据点都属于离它最近的那个簇的中心(质心)。其工作流程可以直观地分为以下几步:1.选择K值:首先需要人为确定要将数据分成几类,即确定K的值。2.随机初始化质心:在数据空间中随机选择K个点作为初始的簇中心(质心)。3.分配数据点:计算每个数据点到所有K个质心的距离,并将每个点分配给距离它最近的那个质心,从而形成K个簇。4.更新质心:对于每个簇,重新计算其所有数据点的平均值,并将这个平均值作为该簇新的质心。5.重复迭代:重复第3步和第4步,直到质心的位置不再发生显著变化,或者达到预设的迭代次数为止。任务8-1使用回归模型实现钢铁厂用电量预测【任务描述】小山从钢铁厂的工程师那里得到了一份简化的历史用电数据。这份数据包含了两个关键特征:“当日钢材产量(万吨)”和“平均温度(℃)”,以及对应的“日用电量(万度)”。工程师希望小山能利用这份数据,建立一个机器学习模型,来预测在给定的产量和温度下,工厂的日用电量会是多少,从而帮助他们更科学地制定生产计划和能源预算。【任务分析】这是一个典型的监督学习中的回归问题。我们的目标是预测一个连续的数值——“日用电量”。输入特征是“当日钢材产量”和“平均温度”。我们将使用scikit-learn库中的线性回归(LinearRegression)模型来完成这个任务。整个流程包括:准备数据、划分训练集和测试集、训练模型、进行预测以及评估模型效果。【任务实施】第一步:准备数据与环境首先,确保你已经安装了pandas和scikit-learn库。pipinstallpandasscikit-learn然后,我们创建并加载数据。在实际操作中,数据通常从CSV文件读取,这里我们为了方便直接在代码中创建。importpandasaspd

#模拟数据data={'产量(万吨)':[5.1,5.5,6.2,6.8,7.3,7.5,8.1,8.6,9.0,9.5],'温度(℃)':[15,17,20,22,25,26,28,30,31,33],'用电量(万度)':[10.2,11.1,12.5,13.8,14.9,15.3,16.8,17.9,18.5,19.8]}df=pd.DataFrame(data)

print("原始数据:")print(df)【任务实施】第二步:划分特征和目标,分割数据集我们将数据分为输入特征(x)和输出目标(y),并按照80%训练集、20%测试集的比例进行划分。fromsklearn.model_selectionimporttrain_test_split

#x是特征,y是目标x=df[['产量(万吨)','温度(℃)']]y=df['用电量(万度)']

#划分数据集x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=42)

print("\n训练集大小:",x_train.shape)print("测试集大小:",x_test.shape)【任务实施】第三步:训练线性回归模型使用训练集数据来训练模型。fromsklearn.linear_modelimportLinearRegression

#创建并训练模型model=LinearRegression()model.fit(x_train,y_train)

print("\n模型训练完成。")print("模型权重(w):",model.coef_)print("模型偏置(b):",ercept_)【任务实施】第四步:进行预测与评估使用训练好的模型对测试集进行预测,并与真实值进行比较来评估模型的好坏。fromsklearn.metricsimportmean_squared_error

#在测试集上进行预测y_pred=model.predict(x_test)

print("\n测试集预测结果:")foriinrange(len(x_test)):print(f"真实值:{y_test.iloc[i]:.2f},预测值:{y_pred[i]:.2f}")

#计算均方误差(MSE)mse=mean_squared_error(y_test,y_pred)print(f"\n模型的均方误差(MSE):{mse:.4f}")

#预测一个新数据new_production=7.0new_temperature=24predicted_power=model.predict([[new_production,new_temperature]])print(f"\n预测当产量为{new_production}万吨,温度为{new_temperature}℃时,用电量约为:{predicted_power[0]:.2f}万度")拓展训练1.特征重要性查看模型学习到的model.coef_,哪个特征(产量或温度)的权重绝对值更大?这在一定程度上反映了哪个特征对用电量的影响更大。2.尝试其他模型scikit-learn中还提供了其他回归模型,如Ridge、Lasso。尝试用它们替换LinearRegression,看看模型评估结果有何不同。3.可视化由于我们有两个特征,直接绘制数据和回归平面较为复杂。可以尝试只用一个特征(如产量)来训练模型,然后用matplotlib绘制散点图和学习到的回归直线,实现结果的可视化。任务8-2使用聚类算法实现鸢尾花数据分类【任务描述】完成了回归预测任务后,小山对机器学习的另一种范式——无监督学习产生了好奇。他找到了一个非常经典的数据集:鸢尾花(Iris)数据集。这个数据集包含了150个鸢尾花样本,每个样本都有四个特征:花萼长度、花萼宽度、花瓣长度和花瓣宽度。这些样本实际上来自三个不同的鸢尾花品种,但小山决定假装“不知道”这些花的具体品种标签。他想挑战一下:能否仅凭这四个测量特征,利用无监督学习算法,让计算机自动将这150个样本分成3个不同的类别?【任务分析】这个任务是一个典型的无监督学习中的聚类问题。我们没有可用的“答案”(花的品种标签),需要算法根据数据本身的特性来发现其内在的群组结构。我们将使用scikit-learn库中的K-均值(K-Means)聚类算法来完成此任务。目标是将150个数据点划分到K=3个簇中,并可视化聚类的结果,看看算法划分的簇与真实的花品种有多接近。【任务实施】第一步:加载数据与环境scikit-learn自带了鸢尾花数据集,我们可以直接加载。importmatplotlib.pyplotaspltfromsklearn.clusterimportKMeansfromsklearn.datasetsimportload_iris

#加载鸢尾花数据集iris=load_iris()X=iris.data#我们只使用特征数据,不使用标签iris.target

print("数据加载完成,数据维度:",X.shape)【任务实施】第二步:应用K-Means算法我们设定簇的数量K=3,然后用K-Means算法对数据进行拟合。#创建K-Means模型,设定要聚成3类kmeans=KMeans(n_clusters=3,random_state=42,n_init='auto')kmeans.fit(X)

#获取聚类结果标签cluster_labels=kmeans.labels_

print("\n聚类完成。每个样本的聚类标签:")print(cluster_labels)【任务实施】第三步:结果可视化为了直观地看到聚类效果,我们选择前两个特征(花萼长度和花萼宽度)绘制散点图,并根据算法分配的簇标签给每个点着上不同的颜色。#绘制聚类结果plt.figure(figsize=(10,6))

#绘制数据点,颜色根据聚类标签决定plt.scatter(X[:,0],X[:,1],c=cluster_labels,cmap='viridis',marker='o',edgecolor='k',s=50)

#绘制簇中心点centers=kmeans.cluster_centers_plt.scatter(centers[:,0],centers[:,1],c='red',s=200,alpha=0.75,m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论