《机器学习项目开发实战》-课件 项目3 监督学习回归实战-天气预测_第1页
《机器学习项目开发实战》-课件 项目3 监督学习回归实战-天气预测_第2页
《机器学习项目开发实战》-课件 项目3 监督学习回归实战-天气预测_第3页
《机器学习项目开发实战》-课件 项目3 监督学习回归实战-天气预测_第4页
《机器学习项目开发实战》-课件 项目3 监督学习回归实战-天气预测_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

监督学习回归实战-项目背景与目标监督学习回归实战CONTENTSOrderNow01任务描述02知识储备03任务实施04任务评价/01任务描述任务描述任务:天气预测深入调研天气预测在实际生活中的应用背景,理解该项目对于农业、交通、灾害预防等领域的重要性。针对天气预测项目的数据集,进行深入的探索性分析,识别数据中的缺失值、异常值、不一致数据类型等问题,并设计实施相应的数据清洗策略。/02知识储备天气预测重要性经济活动规划有助于企业合理规划生产和经营活动,减少因天气变化带来的经济损失。环境保护有助于监测和评估空气质量、水质等环境因素,为环境保护提供科学依据。能源调配有助于能源部门合理调配电力资源,确保供需平衡。农业生产指导提供播种、施肥、灌溉、收割等农事活动的最佳时机,提高农作物产量和质量。保障公共安全及时预警恶劣天气,提前采取必要的防灾减灾措施。天气预测重要性提升生活品质天气预测为人们日常出行、着装、健康等方面提供重要参考,提升生活便捷性和舒适度。促进科学研究天气预测技术的发展推动了大气科学、气候学、地球科学等领域的研究,促进了科学知识的更新和积累。增强国际交流与合作天气和气候变化是全球性问题,需要国际社会共同努力应对。天气预测为国际气候谈判、灾害救援、环境保护等领域提供了重要的合作平台。推动经济发展准确的天气预测有助于提升农业、交通、能源、旅游等行业的经济效益,推动国民经济持续健康发展。提升公众科学素养天气预测通过媒体传播,普及了气象知识和科学理念,提升了公众的科学素养和应对自然灾害的能力。回归分析回归分析旨在探索和理解因变量(通常称为响应变量)与一个或多个自变量(也称为预测变量或解释变量)之间的关系。通过回归分析,研究者可以揭示变量间的潜在联系,预测未来趋势,以及评估不同因素对结果变量的影响程度。回归分析在天气预测中的应用逻辑回归主要用于分类问题,在天气预测中,它可以用来判断某一天是否会下雨,或者是在特定条件下发生某种天气状况的概率。逻辑回归模型通过历史天气数据(包括温度、湿度、气压等气象因素)来训练,并生成一个模型,该模型可以对新的观测数据进行分类。例如,如果历史数据表明湿度超过某个阈值时降雨的概率很高,逻辑回归模型就会学会这个规律,并在输入新的高湿度数据时预测降雨。判断天气状况线性回归可以用于预测温度、风速等连续的气象参数。线性回归模型会根据历史天气数据中的自变量(如时间、经度、纬度等)和因变量(如历史温度、风速等)来训练,以期找到最佳的线性拟合,从而实现对未来气温、风速等气象参数的预测。预测气象参数天气预测数据集010203数据集来源天气数据集主要来源于各种地面气象观测站、卫星观测数据以及各类气候模型的模拟输出。数据集的特性包括温度、湿度、风速、风向、降水量等多种气象因素,它们的实时变化影响着天气的变化趋势。数据集的作用数据集是构建天气预测模型的基础。通过分析历史天气数据,可以提取出模式和规律,为后续的预测工作提供依据。/03任务实施收集并整理数据网络爬虫网络爬虫技术是一种自动化的数据抓取手段,它模拟人类浏览网页的行为,从指定的网站上提取所需的数据。可以从一些相关的天气网页中爬取所需要的数据。API接口API,即应用程序编程接口,它允许不同的软件应用程序之间进行数据交换。通过调用天气服务提供商提供的API接口,我们可以轻松地获取到实时的天气数据。读取数据1importpandasaspd2weatherdata=pd.read_excel(r"E:\机器学习项目实战\weather_data.xls")#替换为实际的路径3weatherdata.head(5)读取数据数据处理1has_null=weatherdata.isnull().any().any()2print(has_null)查找缺失值1df=weatherdata.drop('date',axis=1)2df.head()删除date列数据处理补充缺失值Z-score标准化处理在天气数据集中,每个特征值的量纲不同(如温度T的量纲是摄氏度、P的量纲是帕斯卡),直接使用这些特征可能导致某些特征在模型中占据主导地位。Z-Score标准化可以将所有特征转换到同一尺度,使得每个特征对模型的贡献更加公平。

σ(X−μ)X是原始数据中的某个值。μ是该数据所在列的均值(平均值)。σ是该数据所在列的标准差。Z是经过Z-score标准化处理后的值。Z-score标准化处理

σ(X−μ)df_filled.describe()生成统计Z-score标准化处理

σ(X−μ)1defzscore_standardize(df):2"""4:paramdf:输入的DataFrame5:return:标准化后的DataFrame6"""7return(df-df.mean())/df.std()9standardized_df=zscore_standardize(df_filled)10print(standardized_df)Z-score标准化/04任务评价任务评价1.是否能够成功读取气象数据?2.数据中缺失值是否被成功查找并处理?3.是否对数据成功进行Z-score标准化处理并显示?THANKS课程结束,谢谢观看监督学习回归实战-天气预测线性回归模型建立CONTENTSOrderNow01任务描述02知识储备03任务实施04任务评价/01任务描述任务描述任务:天气预测在气象学和环境科学中,准确预测未来天气条件对于农业规划、能源管理、交通运输等多个领域至关重要。线性回归模型作为一种简单而有效的预测工具,在天气预测中发挥着重要作用。本任务旨在利用给定的天气数据集,构建线性回归模型以预测特定天气条件下的温度。/02知识储备基本原理线性回归是一种统计方法,用于建模目标变量(通常表示为Y)与一个或多个预测变量之间的线性关系。目标变量截距项预测变量随机误差回归系数最小二乘法(OLS)最小化预测值与实际值的平方误差和,找到最佳拟合线。Σ(yi−(axi+b))2数据准备整理自变量X与因变量Y的数据集。系数计算用OLS公式或工具求解β。模型验证分析残差分布评估拟合效果。模型应用基于拟合方程进行预测或关系分析。OLS应用步骤OLS假设条件04误差均值为零模型无偏,即E(ϵ)=0。01线性关系Y与X存在线性关系03误差项相互独立,且服从正态分布ϵ∼N(0,σ2)误差独立同分布02无多重共线性自变量间无完全线性相关,否则参数估计失效。评估指标——R²分数R²分数,也称为决定系数或判定系数,是衡量回归模型拟合优度的一个指标。它反映了自变量对因变量变异的解释能力。回归模型的预测值与因变量的真实值之差的平方和因变量的真实值与其均值之差的平方和均方误差(MSE)均方误差是衡量回归模型预测值与真实值之间平均平方差的指标。样本真实值样本数量MSE=(1/n)*Σ(y_i-ŷ_i)^2残差分析残差分析是用于评估统计模型的拟合度和检查模型假设的一种方法。残差是观测值与模型预测值之间的差异。为每个观测值生成预测值拟合模型将残差值作为纵轴,自变量值或观测序号作为横轴绘制散点图绘制残差图识别异常值和离群值识别检查残差的正态性、独立性和同方差性检查计算每个观测值的残差计算残差/03任务实施数据处理1fromsklearn.model_selectionimporttrain_test_split2fromsklearn.linear_modelimportLinearRegression3fromsklearn.metricsimportmean_squared_error,r2_score导入库1X=standardized_df[['Po','P','U','ff3','VV','Td']]2y=standardized_df['T']选择特征和目标变量1X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)划分训练集和测试集模型训练与评估1print(f"Coefficients:{model.coef_}")2print(f"Intercept:{ercept_}")模型训练1y_pred=model.predict(X_test)2mse=mean_squared_error(y_test,y_pred)3r2=r2_score(y_test,y_pred)4print(f"MeanSquaredError:{mse}")5print(f"R^2Score:{r2}")模型评估模型预测与保存1print(f"Coefficients:{model.coef_}")2print(f"Intercept:{ercept_}")模型预测1importjoblib2joblib.dump(model,'E:\机器学习项目实战\项目三\代码\saved_model.joblib')模型保存模型利用1save_model=joblib.load('E:\机器学习项目实战\项目三\代码\saved_model.joblib')data=pd.read_excel(r"E:\机器学习项目实战\项目三\data1.xlsx")X1=data.drop('date',axis=1)std_X1=zscore_standardize(X1)1y_pred=save_model.predict(std_X1)2y_pred模型利用模型局限性非线性关系无法捕捉线性回归模型只能捕捉变量之间的线性关系。然而,在天气预测中,许多变量之间可能存在非线性关系。1异常值和噪声敏感异常值和噪声会对线性回归模型的预测性能产生影响。异常值可能导致模型系数的不稳定估计,而噪声则可能增加预测误差。2多重共线性问题在天气数据中,多个特征之间可能存在高度相关性。这可能导致线性回归模型的系数估计不准确,降低预测性能。3预测范围限制当输入特征值超出训练数据的范围时,模型的预测可能变得不可靠。4无法处理分类变量单的编码可能无法充分捕捉分类变量之间的复杂关系,从而影响预测性能。5/04任务评价任务评价1.是否成功导入库train_test_split、LinearRegression以及mean_squared_error,r2_score?2.是否成功将数据划分为划分训练集和测试集?3.是否能够使用模型进行预测并保存模型?THANKS课程结束,谢谢观看监督学习回归实战-天气预测随机森林回归应用CONTENTSOrderNow01任务描述02知识储备03任务实施04任务评价/01任务描述任务描述任务:天气预测能够使用随机森林回归模型对天气数据进行训练和预测,分析模型性能,并与线性回归模型进行对比。。/02知识储备回归森林概念随机森林回归是一种基于集成学习思想的回归方法。集成学习正是通过将多个学习器的预测结果进行组合,从而提高整体预测的准确性和稳定性。一场复杂的任务,单靠一个人的力量可能会有局限,但如果多个有能力的人一起合作,各自发挥所长,最后综合大家的意见,往往能得到更出色的结果。回归森林步骤01Bootstrap抽样从原始数据集中进行有放回的抽样来创建多个子数据集。每个子数据集的大小与原始数据集相同02构建决策树每个子数据集,都会独立地构建一个决策树。在构建每棵树时,并不是考虑所有的特征,而是从所有特征中随机选择一部分特征进行节点分裂04预测每棵树都会给出一个预测值。在回归问题中,随机森林的最终预测结果是所有树预测值的平均值。03节点分裂从随机选择的特征中找出最优的特征和切分点来分裂节点。这个过程重复进行,直到树达到预设的深度或者节点的样本数量小于一个阈值。优势鲁棒性强对噪声数据和异常值具有较强的抵抗力,不容易受到单一数据点的影响,从而保证了模型的稳定性。02适应高维数据处理高维数据时表现出色,无需进行复杂的特征选择或降维处理,即可直接进行建模和预测。04处理非线性能力强能够捕捉数据中的非线性关系,这对于许多实际应用场景中的复杂数据关系尤为重要。03特征重要性分析提供特征重要性排序,帮助用户理解哪些特征对预测结果贡献最大,这对于后续的数据处理和模型优化具有重要意义。05准确性高构建多棵决策树并综合它们的预测结果,能够显著降低预测误差,提高预测的准确性。01抗过拟合能力强构建多棵决策树并引入随机性,随机森林能够显著降低过拟合的风险,提高模型的泛化能力。06参数参数解释n_estimators森林中树木的数量,即弱评估器的数量,必填项。criterion衡量分枝质量的指标。max_depth树的最大深度。这个参数限制了树的生长深度,有助于防止过拟合。min_samples_split分裂内部节点所需的最小样本数。min_samples_leaf叶子节点所需的最小样本数。max_features寻找最佳分裂时要考虑的特征数量。bootstrap是否使用自助采样法构建树。oob_score是否使用袋外样本进行模型评估。/03任务实施数据预处理1.importpandasaspd2.fromsklearn.model_selectionimporttrain_test_split3.fromsklearn.preprocessingimportStandardScaler1.导入库data=pd.read_excel('weather_data.xls')2.读取数据data.fillna(method='ffill',inplace=True)#前向填充缺失值3.数据预处理1.features=['Po','P','U','ff3','VV','Td’]2.target='T'#目标变量,如温度4.特征选择数据预处理1.X=data[features]2.y=data[target]3.X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)5.划分训练集和测试集1.scaler=StandardScaler()2.X_train_scaled=scaler.fit_transform(X_train)3.X_test_scaled=scaler.transform(X_test)6.特征缩放构建随机森林回归模型1.fromsklearn.ensembleimportRandomForestRegressor2.fromsklearn.metricsimportmean_squared_error,r2_score3.rf_regressor=RandomForestRegressor(n_estimators=100,random_state=42)rf_regressor.fit(X_train_scaled,y_train)1.y_pred_train=rf_regressor.predict(X_train_scaled)2.y_pred_test=rf_regressor.predict(X_test_scaled)1.构建随机森林回归模型2.训练模型3.预测构建随机森林回归模型1.train_mse=mean_squared_error(y_train,y_pred_train)2.test_mse=mean_squared_error(y_test,y_pred_test)3.train_r2=r2_score(y_train,y_pred_train)4.test_r2=r2_score(y_test,y_pred_test)5.print(f'TrainMSE:{train_mse},TestMSE:{test_mse}')6.print(f'TrainR^2:{train_r2},TestR^2:{test_r2}')4.模型评估构建随机森林回归模型1.save_model=joblib.load('E:\机器学习项目实战\项目三\代码\saved_regressor.joblib')2.data=pd.read_excel(r"E:\机器学习项目实战\项目三\data1.xlsx")X1=data.drop('date',axis=1)y_pred=save_model.predict(X1)y_pred1.importjoblib2.joblib.dump(rf_regressor,'E:\机器学习项目实战\项目三\代码\saved_regressor.joblib')5.保存模型65.利用模型/04任务评价任务评价1.是否完成必要库的导入并进行数据预处理?2.

是否成功构建构建随机森林回归模型并进行预测?3.是否能够成功保存构建好的模型并使用?THANKS课程结束,谢谢观看监督学习回归实战-天气预测特征选择与模型优化CONTENTSOrderNow01任务描述02知识储备03任务实施04任务评价/01任务描述任务描述任务:天气预测在天气预测项目中,经过初步的模型训练,发现模型的性能仍有提升空间。本任务旨在通过特征选择和模型优化,进一步提升模型的预测精度和泛化能力。/02知识储备特征选择包装法02嵌入法0301过滤法过滤法接近0两个变量之间没有明显的线性关系;03接近1两个变量之间存在强烈的正相关关系;01接近-1强烈的负相关;02相关系数:计算特征与目标变量之间的线性相关性,特别适用于连续型数据,取值范围在-1到1之间。过滤法:在模型训练之前,就对特征进行评估和筛选,而且不依赖于具体的机器学习算法。包装法后向消除从包含所有特征的模型开始,每次移除对模型性能贡献最小的特征,同样重新训练和评估,重复操作直到达到预定要求。03递归特征消除RFE从全特征集开始,先使用所有特征训练一个模型,然后计算每个特征的重要性,根据重要性对特征进行排序,把重要性最低的特征移除,再重新训练模型,不断重复这个过程,直到达到预设的特征数量。01前向选择从一个空的特征集合开始,逐步向其中添加新的特征,每次都选择一个对模型性能提升最大的特征加入当前集合,添加后重新训练并评估模型性能,不断重复直至满足停止条件。02包装法:通过训练模型来评估特征子集的性能,使用特定的机器学习算法作为评估标准,在特征子空间中搜索最优的特征组合。嵌入法Lasso回归Lasso回归属于线性回归模型,它通过引入L1正则化项来实现特征选择。在线性回归的目标函数里加入L1正则化项后,会使得部分特征的系数变为001随机森林计算每个特征在所有决策树中节点分裂时减少的不纯度的平均值通过随机交换袋外数据中某个特征的值,重新预测并计算准确率的下降程度。02嵌入法:将特征选择过程巧妙地嵌入到模型训练当中,借助模型自身的机制来选择重要特征。适用场景过滤法数据规模大、特征极多的场景能够快速预处理以降低计算成本。01包装法数据规模较小、追求模型最优性能情况下,能针对性适配特定模型。02嵌入法在模型训练中通过正则化等机制自动学习特征重要性并完成筛选,适合希望平衡效率与性能的中等规模数据场景。03特征选择1fromsklearn.feature_selectionimportRFE2rfe=RFE(estimator=RandomForestRegressor(),n_features_to_select=3)3X_train_selected=rfe.fit_transform(X_train_scaled,y_train)4X_test_selected=rfe.transform(X_test_scaled)5print(rfe.support_)6selected_features=[nameforname,selectedinzip(features,rfe.support_)ifselected]7print("Selectedfeaturenames:",selected_features)模型优化正则化02交叉验证0301超参数调优超参数调优超参数是在模型训练之前就需要设置的参数,它们无法通过训练数据直接学习得到。超参数调优的目标,就是找到一组最优的超参数,让模型的性能达到最佳状态。穷举搜索方法,它会遍历所有可能的超参数组合,通过交叉验证的方式试验每一种组合,最后选出最优的参数组合。网格搜索01从参数的分布中随机选取参数组合进行评估。随机搜索02正则化正则化是一种用于防止模型过拟合的重要技术,原理是在损失函数中加入正则化项,以此来限制模型参数的大小。通过在损失函数中加入模型参数的绝对值之和作为正则化项,会将部分参数压缩为0,从而实现特征选择L1正则化01损失函数中加入模型参数的平方和作为正则化项,它会惩罚参数的平方和,让所有参数的值都趋向于较小的值,但不会把参数压缩为0L2正则化02交叉验证04重复随机划分交叉验证通过多次随机划分数据集为训练集和测试集来评估模型性能,它的灵活性较高,但随机性较大,结果可能不太稳定。01K折交叉验证把数据集划分为K个大小相近的子集,每次选择其中的K-1个子集作为训练集,剩下的1个子集作为验证集,这个过程重复K次,最后取K次验证结果的平均值03留一交叉验证是K折交叉验证的一种特殊情况,其中K等于数据集的样本数量,每次只留出一个样本作为验证集,其余所有样本作为训练集留一交叉验证02分层交叉验证适用于分类问题,它在划分数据时会保证每个子集中各类样本的比例与原始数据集中的比例一致,避免因数据划分不均衡而导致的模型性能评估偏差。/03任务实施特征值选择1fromsklearn.feature_selectionimportRFE2rfe=RFE(estimator=RandomForestRegressor(),n_features_to_select=3)3X_train_selected=rfe.fit_transform(X_train_scaled,y_train)4X_test_selected=rfe.transform(X_test_scaled)5print(rfe.support_)6selected_features=[nameforname,selectedinzip(features,rfe.support_)ifselected]7print("Selectedfeaturenames:",selected_features)模型优化1.fromsklearn.model_selectionimportGridSearchCV2.param_grid={3.'n_estimators':[50,100,200],4.'max_depth':[None,10,20],5.'min_samples_split':[2,5,10],6.'min_samples_leaf':[1,2,4]7.}8.rf_regressor=RandomForestRegressor(random_state=42)9.grid_search=GridSearchCV(estimator=rf_regressor,param_grid=param_grid,cv=5,scoring='neg_mean_squared_error')10.grid_search.fit(X_train_selected,y_train)11.best_params=grid_search.best_param

温馨提示

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

评论

0/150

提交评论