当前位置: 首页 > news >正文

神奇的工作室最新网站郏县住房和城乡建设局网站

神奇的工作室最新网站,郏县住房和城乡建设局网站,推广计划书,做嫒嫒网站前言#xff1a; Hello大家好#xff0c;我是Dream。 今天来学习一下机器学习中一个非常经典的案例#xff1a;预测波士顿房价#xff0c;在此过程中也会补充很多重要的知识点#xff0c;欢迎大家一起前来探讨学习~ 一、导入数据 在这个项目中#xff0c;我们利用马萨诸… 前言 Hello大家好我是Dream。 今天来学习一下机器学习中一个非常经典的案例预测波士顿房价在此过程中也会补充很多重要的知识点欢迎大家一起前来探讨学习~ 一、导入数据 在这个项目中我们利用马萨诸塞州波士顿郊区的房屋信息数据训练和测试一个模型并对模型的性能和预测能力进行测试。此项目的数据集来自UCI机器学习知识库。波士顿房屋这些数据于1978年开始统计共506个数据点涵盖了麻省波士顿不同郊区房屋14种特征的信息。 通过该数据训练后的好的模型可以被用来对房屋做特定预测—尤其是对房屋的价值。对于房地产经纪等人的日常工作来说这样的预测模型被证明非常有价值。 本项目对原始数据集做了以下处理 有16个MEDV 值为50.0的数据点被移除。 这很可能是由于这些数据点包含遗失或看不到的值。有1个数据点的 RM 值为8.78. 这是一个异常值已经被移除。对于本项目房屋的RM LSTATPTRATIO以及MEDV特征是必要的其余不相关特征已经被移除。MEDV特征的值已经过必要的数学转换可以反映35年来市场的通货膨胀效应。 import numpy as np import pandas as pd from sklearn.model_selection import ShuffleSplit import visuals as vs %matplotlib inline# Load the Boston housing dataset data pd.read_csv(housing.csv) prices data[MEDV] features data.drop(MEDV, axis 1) data.head(5)二、分析数据 在项目的第一个部分会对波士顿房地产数据进行初步的观察通过对数据的探索来熟悉数据可以让你更好地理解和解释你的结果。 由于这个项目的最终目标是建立一个预测房屋价值的模型我们需要将数据集分为特征(features)和目标变量(target variable)。 特征 RM LSTAT和 PTRATIO给我们提供了每个数据点的数量相关的信息。目标变量 MEDV是我们希望预测的变量。 他们分别被存在 features 和 prices 两个变量名中。 基础统计运算 计算 prices 中的 MEDV 的最小值、最大值、均值、中值和标准差将运算结果储存在相应的变量中。 # TODO: Minimum price of the data minimum_price np.min(prices)# TODO: Maximum price of the data maximum_price np.max(prices)# TODO: Mean price of the data mean_price np.mean(prices)# TODO: Median price of the data median_price np.median(prices)# TODO: Standard deviation of prices of the data std_price np.std(prices)# Show the calculated statistics print(Statistics for Boston housing dataset:\n) print(Minimum price: ${:.2f}.format(minimum_price)) print(Maximum price: ${:.2f}.format(maximum_price)) print(Mean price: ${:.2f}.format(mean_price)) print(Median price ${:.2f}.format(median_price)) print(Standard deviation of prices: ${:.2f}.format(std_price))特征观察 如前文所述本项目中我们关注的是其中三个值:RM、LSTAT 和PTRATIO对每一个数据点: RM 是该地区中每个房屋的平均房间数量LSTAT 是指该地区有多少百分比的业主属于是低收入阶层有工作但收入微薄PTRATIO 是该地区的中学和小学里学生和老师的数目比学生/老师。 凭直觉上述三个特征中对每一个来说你认为增大该特征的数值MEDV的值会是增大还是减小呢 ‘1’ ‘RM’ 是该地区中每个房屋的平均房间数量 ‘回答’ RM’增加意味着房子的总面积会增加所以价值会更高。 ‘2’ ‘LSTAT’ 是指该地区有多少百分比的业主属于是低收入阶层有工作但收入微薄_ ‘回答’ LSTAT’占比增加低收入阶层增加可支配消费能力就会不多房屋的价值不会更高。 ‘3’ ‘PTRATIO’ 是该地区的中学和小学里学生和老师的数目比学生/老师 ‘回答’ PTRATIO’增加说明学生/老师数目比增加优质教育程度下降政府配额不足学位房优势不明显价值会下降。 三、 建立模型 定义衡量标准 如果不能对模型的训练和测试的表现进行量化地评估我们就很难衡量模型的好坏。通常我们会定义一些衡量标准这些标准可以通过对某些误差或者拟合程度的计算来得到。我们通过运算[决定系数] R 2 R^2 R2 来量化模型的表现。模型的决定系数是回归分析中十分常用的统计信息经常被当作衡量模型预测能力好坏的标准。 R 2 R^2 R2 的数值范围从0至1表示目标变量的预测值和实际值之间的相关程度平方的百分比。一个模型的 R 2 R^2 R2 值为0还不如直接用平均值来预测效果好而一个 R 2 R^2 R2 值为1的模型则可以对目标变量进行完美的预测。从0至1之间的数值则表示该模型中目标变量中有百分之多少能够用特征来解释。模型也可能出现负值的 R 2 R^2 R2这种情况下模型所做预测有时会比直接计算目标变量的平均值差很多。 在下方代码的 performance_metric 函数中我们实现 使用 sklearn.metrics 中的 r2_score 来计算 y_true 和 y_predict 的 R 2 R^2 R2 值作为对其表现的评判。将他们的表现评分储存到 score 变量中。 # TODO: Import r2_score from sklearn.metrics import r2_score def performance_metric(y_true, y_predict):score r2_score(y_true,y_predict)# Return the scorereturn score拟合程度 假设一个数据集有五个数据且一个模型做出下列目标变量的预测 真实数值预测数值3.02.5-0.50.02.02.17.07.84.25.3你觉得这个模型已成功地描述了目标变量的变化吗如果成功请解释为什么如果没有也请给出原因。 提示1运行下方的代码使用 performance_metric 函数来计算 y_true 和 y_predict 的决定系数。 提示2 R 2 R^2 R2 分数是指可以从自变量中预测的因变量的方差比例。 换一种说法 R 2 R^2 R2 为0意味着因变量不能从自变量预测。 R 2 R^2 R2 为1意味着可以从自变量预测因变量。 R 2 R^2 R2 在0到1之间表示因变量可预测的程度。 R 2 R^2 R2 为0.40意味着 Y 中40的方差可以从 X 预测。 # Calculate the performance of this model score performance_metric([3, -0.5, 2, 7, 4.2], [2.5, 0.0, 2.1, 7.8, 5.3]) print(Model has a coefficient of determination, R^2, of {:.3f}..format(score))Model has a coefficient of determination, R^2, of 0.923. R^20.923决定系数接近1说明已经成功的描述了目标变量的变化. 数据分割与重排 接下来我们需要把波士顿房屋数据集分成训练和测试两个子集。通常在这个过程中数据也会被重排列以消除数据集中由于顺序而产生的偏差。 使用 sklearn.model_selection 中的 train_test_split 将 features 和 prices 的数据都分成用于训练的数据子集和用于测试的数据子集。 分割比例为80%的数据用于训练20%用于测试选定一个数值以设定 train_test_split 中的 random_state 这会确保结果的一致性 将分割后的训练集与测试集分配给 X_train, X_test, y_train 和 y_test。 # TODO: Import train_test_split from sklearn.model_selection import train_test_split# X_train训练输入数据 # X_test测试输入数据 # y_train训练标签 # y_test测试标签X np.array(features) Y np.array(prices)# TODO: Shuffle and split the data into training and testing subsets X_train, X_test, y_train, y_test train_test_split(X, Y, test_size 0.2,random_state30)# Success print(Training and testing split was successful.)训练及测试 测试数据集通过未知数据来验证算法效果。如果没有数据来对模型进行测试无法验证未知数据对结果预测。 四、分析模型的表现 在项目的第四步我们来看一下不同参数下模型在训练集和验证集上的表现。这里我们专注于一个特定的算法带剪枝的决策树但这并不是这个项目的重点和这个算法的一个参数 max_depth。用全部训练集训练选择不同max_depth 参数观察这一参数的变化如何影响模型的表现。画出模型的表现来对于分析过程十分有益。 学习曲线 下方区域内的代码会输出四幅图像它们是一个决策树模型在不同最大深度下的表现。每一条曲线都直观得显示了随着训练数据量的增加模型学习曲线的在训练集评分和验证集评分的变化评分使用决定系数 R 2 R^2 R2。曲线的阴影区域代表的是该曲线的不确定性用标准差衡量。 vs.ModelLearning(features, prices)max-depth 1 当训练数据从0到50增加时训练集曲线的评分急速下降验证集曲线的评分急速增加随着数据量大于50再往上增加训练集评分逐渐缓慢0.5附近收敛验证集评分逐渐缓慢向0.4左右收敛分数大于100以后训练集评分和验证集评分基本趋向稳定。如果再有更多的训练数据也不会有效提升模型的表现。 复杂度曲线 下列代码内的区域会输出一幅图像它展示了一个已经经过训练和验证的决策树模型在不同最大深度条件下的表现。这个图形将包含两条曲线一个是训练集的变化一个是验证集的变化。跟学习曲线相似阴影区域代表该曲线的不确定性模型训练和测试部分的评分都用的 performance_metric 函数。 vs.ModelComplexity(X_train, y_train)1当模型以最大深度 1训练时模型的预测是出现很大的偏差还是出现了很大的方差 ** 回答** 欠拟合出现大的偏差 2当模型以最大深度10训练时情形又如何呢 ** 回答** 过拟合出现大的方差 3图形中的哪些特征能够支持你的结论 ** 回答** 当深度1时训练集评分和验证集评分比较低。深度10时训练集评分和验证集评分误差越来越大。 五、评估模型的表现 我们使用 fit_model 中的优化模型去预测客户特征集 网格搜索法 1 什么是网格搜索法? 回答 通过各种训练数据训练一堆模型然后通过交叉验证数据挑选最佳模型。 2如何用它来优化模型 **回答**例如决策树算法通过不同深度的1234的训练数据模型通过交叉验证数据算出F1得分最高的即最优化参数模型。 K折交叉验证法 1什么是K折交叉验证法 回答 数据被按一定比例分成了训练集和测试集在K折交叉验证中训练集又被分成了K份每一份作为验证集。并进行K份训练和验证最后求出平均分数以此来得出最优参数和最优模型。 2GridSearchCV 是如何结合交叉验证来完成对最佳参数组合的选择的 回答 可以通过输入参数给出最优化的结果和参数 3GridSearchCV 中的’cv_results_属性能告诉我们什么 回答 通过修改 fit_model(X_train, y_train) 函数的返回值 print(pd.DataFrame(reg.cv_results_)) 可以看到显示的是每次训练模型的结果集 4网格搜索为什么要使用K折交叉验证K折交叉验证能够避免什么问题 回答 为了更好地拟合和预测得出最优参数和最优模型。K折交叉验证通过将训练集分成K份每一份依次作为验证集并进行K次训练和验证最后求出平均分数这样可以减少模型表现得评分误差从而更准确地找到最优参数 拟合模型 我们使用决策树算法训练一个模型。为了得出的是一个最优模型我们需要使用网格搜索法训练模型以找到最佳的 max_depth 参数。我们把max_depth 参数理解为决策树算法在做出预测前允许其对数据提出问题的数量。决策树是监督学习算法中的一种。 ShuffleSplit 在 Scikit-Learn 版本0.17和0.18中有不同的参数。对于下面代码单元格中的 fit_model 函数 定义 regressor 变量: 使用 sklearn.tree 中的 DecisionTreeRegressor 创建一个决策树的回归函数;定义 params 变量: 为 max_depth 参数创造一个字典它的值是从1至10的数组;定义 scoring_fnc 变量: 使用 sklearn.metrics 中的 make_scorer 创建一个评分函数。将 ‘performance_metric’ 作为参数传至这个函数中定义 grid 变量: 使用 sklearn.model_selection 中的 GridSearchCV 创建一个网格搜索对象将变量regressor, params, scoring_fnc和 cross_validator 作为参数传至这个对象构造函数中 # TODO: Import make_scorer, DecisionTreeRegressor, and GridSearchCV from sklearn.metrics import make_scorer from sklearn.tree import DecisionTreeRegressor from sklearn.model_selection import GridSearchCVdef fit_model(X, y):cv_sets ShuffleSplit(n_splits10, test_size0.20, random_state0)regressor DecisionTreeRegressor(random_state0)params {max_depth:list(range(1,11))}scoring_fnc make_scorer(performance_metric)grid GridSearchCV(regressor,params,scoringscoring_fnc,cvcv_sets)grid grid.fit(X, y)return grid六、做出预测 当我们用数据训练出一个模型它现在就可用于对新的数据进行预测。在决策树回归函数中模型已经学会对新输入的数据提问并返回对目标变量的预测值。我们可以用这个预测来获取数据未知目标变量的信息这些数据必须是不包含在训练数据之内的。 # Fit the training data to the model using grid search reg fit_model(X_train, y_train)# clf.cv_results_ 是选择参数的日志信息 #print(pd.DataFrame(reg.cv_results_)) # Produce the value for max_depth print(Parameter max_depth is {} for the optimal model..format(reg.best_estimator_.get_params()[max_depth]))最优模型的最大深度是 max_depth 4 预测销售价格 假如我们是一个在波士顿地区的房屋经纪人并期待使用此模型以帮助你的客户评估他们想出售的房屋。你已经从你的三个客户收集到以下的资讯: 特征客戶 1客戶 2客戶 3房屋内房间总数5 间房间4 间房间8 间房间社区贫困指数被认为是贫困阶层17%32%3%邻近学校的学生-老师比例151221121 你会建议每位客户的房屋销售的价格为多少从房屋特征的数值判断这样的价格合理吗为什么 运行下列的代码区域使用你优化的模型来为每位客户的房屋价值做出预测。 # Produce a matrix for client data client_data [[5, 17, 15], # Client 1[4, 32, 22], # Client 2[8, 3, 12]] # Client 3# Show predictions for i, price in enumerate(reg.predict(client_data)):print(Predicted selling price for Client {}s home: ${:,.2f}.format(i1, price))Predicted selling price for Client 1’s home: $409,752.00 Predicted selling price for Client 2’s home: $220,886.84 Predicted selling price for Client 3’s home: $937,650.00 1 你会建议每位客户的房屋销售的价格为多少 回答 客户1建议价格$409,752.00 理由是5间房 社区贫困指数为17%不到1/5 学生老师比例151教育环境中等偏上房屋宜居性良好综上价格合理。 客户2建议价格$220,886.84 理由是4间房 社区贫困指数将近1/3学生老师比例221教育环境很一般。房屋购买吸引力不是很好所以价值低合理 客户3建议价格$937,650.00 理由是8间房 社区贫困指数只有3%属于富人区老师比例121教育环境优综上该房屋属于上游配套房间较高合理。 2 从房屋特征的数值判断这样的价格合理吗为什么 回答 客户1、客户2、客户2的预测数据分别为$409,752.00 、$220,886.84、 $937960房间越多价值越高邻近学校的学生-老师比例越低价值越高社区贫困 指数%占比越低价值越高这三个房屋特征数据预测数来的数据我认为是比较合理的从价值来看几个特征衡量价值影响权重分别为社区贫困指数 高端生活区 邻近学校的学生-老师比例 教育资源 房屋内房间总数 刚刚预测了三个客户的房子的售价。在这个练习中我们用最优模型在整个测试数据上进行预测, 并计算相对于目标变量的决定系数 R 2 R^2 R2 的值。 # TODO Calculate the r2 score between y_true and y_predict predicted reg.predict(X_test) r2 performance_metric(y_test,predicted)print(Optimal model has R^2 score {:,.2f} on test data.format(r2))Optimal model has R^2 score 0.80 on test data R^20.8说明符合变量的变化的结果. 模型健壮性 一个最优的模型不一定是一个健壮模型。有的时候模型会过于复杂或者过于简单以致于难以泛化新增添的数据有的时候模型采用的学习算法并不适用于特定的数据结构有的时候样本本身可能有太多噪点或样本过少使得模型无法准确地预测目标变量。这些情况下我们会说模型是欠拟合的。模型是否足够健壮来保证预测的一致性 vs.PredictTrials(features, prices, fit_model, client_data)10次训练结果除了第9次其他基本在训练结果数值比较稳定说明模型相对健壮 11978年所采集的数据在已考虑通货膨胀的前提下在今天是否仍然适用 **回答**不适用数据太旧无法体现现在的价值。 2 数据中呈现的特征是否足够描述一个房屋 回答 不足还有很多影响房屋价格的特征:房屋的新旧程度、楼层的高低、建筑结构等等。 3 在波士顿这样的大都市采集的数据能否应用在其它乡镇地区 回答 不适合 4你觉得仅仅凭房屋所在社区的环境来判断房屋价值合理吗 回答 不合理社区环境房屋价值的一部分还应考虑地理位置、城市经济因素、交通因素、教育发达程度、已经房屋本身的一些其他特征等诸多因素。 文末推荐与福利 《Python从入门到精通微课精编版》免费包邮送出3本 内容介绍 《Python从入门到精通微课精编版》使用通俗易懂的语言、丰富的案例详细介绍了Python语言的编程知识和应用技巧。全书共24章内容包括Python开发环境、变量和数据类型、表达式、程序结构、序列、字典和集合、字符串、正则表达式、函数、类、模块、异常处理和程序调试、进程和线程、文件操作、数据库操作、图形界面编程、网络编程、Web编程、网络爬虫、数据处理等还详细介绍了多个综合实战项目。其中第24章为扩展项目在线开发是一章纯线上内容。全书结构完整知识点与示例相结合并配有案例实战可操作性强示例源代码大都给出详细注释读者可轻松学习快速上手。本书采用O2O教学模式线下与线上协同以纸质内容为基础同时拓展更多超值的线上内容读者使用手机微信扫一扫即可快速阅读拓展知识开阔视野获取超额实战体验。 抽奖方式 评论区随机抽取3位小伙伴免费送出 参与方式 关注博主、点赞、收藏、评论区评论“人生苦短我用Python”切记要点赞收藏否则抽奖无效每个人最多评论三次 活动截止时间 2023-12-12 20:00:00 当当购买链接 https://product.dangdang.com/29484801.html 京东购买链接 https://item.jd.com/13524355.html 名单公布方式 下期活动开始将在评论区和私信一并公布中奖者请三天内私信提供收货信息
http://www.dnsts.com.cn/news/166924.html

相关文章:

  • 河南网站建设yijuce免费服务器搭建网站详细教程
  • 旅游网站建设的费用明细企业网站推广策划
  • 上海建站WordPress论坛案例
  • 遵义住房城乡建设厅网站wordpress 经典主题
  • 嘉兴网站seo服务网站排名规则
  • 家禽养殖公司网站怎么做织梦网站地图模板
  • 源创派网站建设女人学ui有前途吗
  • 网站备案登陆用户名是什么重庆农村网站建设
  • 通辽网站建设招聘平谷手机网站设计
  • php网站建设设计制作方案本地电脑做服务器 建网站
  • 上海网站建设哪家技术好四川招标采购信息网官网
  • 做网站可以先做再给钱吗h5手机网站模板下载
  • 网站开发 技术维护租凭境外服务器做违规网站
  • 视频制作平台网站推广优化方式
  • 简阳网站建设简阳wordpress图片集
  • 只做美食类目产品的网站网站的标签怎么修改
  • 免费建站网站号百度网站诊断
  • 济南市章丘区建设局网站wordpress ie6主题
  • 扬中网站哪家做得好wordpress 友链插件
  • wap建站工具电子商务公司开发网站
  • 陕西找人做网站多少钱信誉好的医疗网站建设
  • 农业网站建设策划书查找北京国互网网站建设
  • 上海动易 网站重庆网站优化建设
  • 郑州网站建设找汉狮公司网站的ftp是什么
  • 网站自适应手机转码搜狗推广平台
  • 网站建设七大步骤做网站上海的备案地址
  • 网站 建设 后台管理程序wordpress可以接广告吗
  • 韩都衣舍网站建设的改进wordpress删除菜单
  • 云盘可以做网站吗外包网络推广公司
  • 网站tag作用.net 建网站