一个完整的数据挖掘项目-纽约市建筑能源之星预测
文章目录
- 一、项目目标
- 二、数据处理
- 1)利用pandas与numpy进行dataframe数据清理和格式化
- (1)缺失值与异常值处理
- (2)转换数据类型
- (3)缩放、标准化和归一化
- 2)利用seaborn与matplotlib进行数据探索性分析
- (1)单特征与目标之间的相关性分析
- (2)双特征与目标之间的相关性分析
- 三、利用sklearn进行特征工程与选择
- 1)依据模型预测结果来选择特征
- 2)去除共线特征
- 3)根据相关系数矩阵来选择特征
- 四、利用sklearn机器学习模型构建
- 1)划分训练集与预测集
- 2)选择有效的机器学习算法
- (1)数据层面
- (2)约束问题层面
- (3)问题层面
- 五、利用sklearn进行模型调参与评估优化模型
- 1)网格搜索与随机搜索参数空间
- 2)根据特征重要性重新进行特征选择
- 3)确定评价指标
- 4)根据训练与预测误差来调优
- (1)过拟合
- (2)欠拟合
- 六、项目总结
一、项目目标
使用提供的建筑能源数据开发一个机器学习模型,该模型可以预测建筑物的能源之星得分,然后解释结果以找到最能预测得分的变量。
这是一个受监督的回归机器学习任务:给定一组包含目标(在本例中为分数)的数据,我们的目标是训练可以学习两者之间映射关系的模型。
二、数据处理
dataframe常用操作
机器学习预处理
pandas中dropna()
1)利用pandas与numpy进行dataframe数据清理和格式化
(1)缺失值与异常值处理
(2)转换数据类型
(3)缩放、标准化和归一化
2)利用seaborn与matplotlib进行数据探索性分析
pandas,seaborn与matplotlib学习
(1)单特征与目标之间的相关性分析
(2)双特征与目标之间的相关性分析
有用函数
def remove_collinear_features(x, threshold):'''Objective:删除数据帧中相关系数大于阈值的共线特征。 删除共线特征可以帮助模型泛化并提高模型的可解释性。Inputs: 阈值:删除任何相关性大于此值的特征Output: 仅包含非高共线特征的数据帧'''# 不要删除能源之星得分之间的相关性y = x['score']x = x.drop(columns = ['score'])# 计算相关性矩阵corr_matrix = x.corr()iters = range(len(corr_matrix.columns) - 1)drop_cols = []# 迭代相关性矩阵并比较相关性for i in iters:for j in range(i):item = corr_matrix.iloc[j:(j+1), (i+1):(i+2)]col = item.columnsrow = item.indexval = abs(item.values)# 如果相关性超过阈值if val >= threshold:# 打印有相关性的特征和相关值# print(col.values[0], "|", row.values[0], "|", round(val[0][0], 2))drop_cols.append(col.values[0])# 删除每对相关列中的一个drops = set(drop_cols)x = x.drop(columns = drops)x = x.drop(columns = ['Weather Normalized Site EUI (kBtu/ft²)', 'Water Use (All Water Sources) (kgal)','log_Water Use (All Water Sources) (kgal)','Largest Property Use Type - Gross Floor Area (ft²)'])# 将得分添加回数据x['score'] = yreturn x
三、利用sklearn进行特征工程与选择
1)依据模型预测结果来选择特征
2)去除共线特征
3)根据相关系数矩阵来选择特征
四、利用sklearn机器学习模型构建
1)划分训练集与预测集
2)选择有效的机器学习算法
参考我的另一篇博客
(1)数据层面
(2)约束问题层面
(3)问题层面
五、利用sklearn进行模型调参与评估优化模型
1)网格搜索与随机搜索参数空间
2)根据特征重要性重新进行特征选择
3)确定评价指标
4)根据训练与预测误差来调优
(1)过拟合
(2)欠拟合
六、项目总结
可以写到简历里
- 使用什么什么数据,可以建立一个机器学习模型,可以预测什么什么的目标,误差在10分以内
- 什么和什么 是预测目标的最相关特征
一个完整的数据挖掘项目-纽约市建筑能源之星预测相关推荐
- 如何去实践一个完整的数据挖掘项目?
[每日一问] 如何去实践一个完整的数据挖掘项目? 机器学习项目 1 抽象成数学问题(明确问题) 2 获取数据 3 特征预处理与特征选择 4 训练模型与调优 5 模型诊断 6 模型融合(非必须) 7 上 ...
- 用R做一个完整的数据挖掘项目
最近运营部门希望我们帮助他们找出合适的短信营销对象,通过短信营销能够提高他们的投资者再次投资转化率,那么如何找到这个精准人群就是我们部门必须出手做的事情了?但是从几百万投资者中找出最近要复投的用户,这 ...
- 机器学习入门系列(2)--如何构建一个完整的机器学习项目(一)
上一篇机器学习入门系列(1)–机器学习概览简单介绍了机器学习的一些基本概念,包括定义.优缺点.机器学习任务的划分等等. 接下来计划通过几篇文章来介绍下,一个完整的机器学习项目的实现步骤会分为几步,最后 ...
- 【React进阶-1】从0搭建一个完整的React项目(入门篇)
这篇文章带领大家从零开始手动撸一个React项目的基础框架,集成React全家桶.万字长文,请各位有足够的时间时再来阅读和学习. 概述 平时工作中一直在用React提供的脚手架工具搭建React项目, ...
- 一个完整的网络项目,如何根据需求配置交换机?值得收藏学习
通过实例来详细讲解一个完整的网络项目从规划到交换机配置的详细过程. 一.案例要求拓扑图 小型园区中,分为两个部门,每个部门相互独立,却又通信,进行组网如下图. 二.分析 在拿到项目后,首先就是对项目进 ...
- Scikit-Learn TensorFlow机器学习实用指南(二):一个完整的机器学习项目【上】
机器学习实用指南(二):一个完整的机器学习项目[上] 作者:LeonG 本文参考自:<Hands-On Machine Learning with Scikit-Learn & Tens ...
- react全家桶从0搭建一个完整的react项目(react-router4、redux、redux-saga)
react全家桶从0到1(最新) 本文从零开始,逐步讲解如何用react全家桶搭建一个完整的react项目.文中针对react.webpack.babel.react-route.redux.redu ...
- Intellij Idea 搭建一个完整的JavaWeb项目(二)
手把手搭建一个完整的JavaWeb项目 本案例使用Servlet+jsp制作,用Intellij Idea IDE和Mysql数据库进行搭建,详细介绍了搭建过程及知识点. 主要功能有: 1.用户注册 ...
- 一个完整的机器学习项目需要哪些步骤
本文是对<阿里云天池大赛赛题解析-机器学习篇>中理论的摘取.看完大概能对一个完整的机器许欸项目的流程有个印象,但是其中有很多细节我都略过了,后面有时间再补充. 02 数据分析 什么是回归预 ...
- 一个完整的机器学习项目
下载数据 import os import tarfile # 用于压缩和解压文件 import urllibDOWNLOAD_ROOT = "https://raw.githubuserc ...
最新文章
- 建议转变编程时的思维习惯改为:忽略细节关扰,直指问题核心,追寻问题关键。...
- 查找计算机视觉、模式识别、图像处理领域的国际会议和会议排名
- 计算机2级access,计算机二级-Access-窗体的设计视图
- css文件修改后没变化 static_Go Web编程使用Go语言创建静态文件服务器
- raptor累乘流程图_Markdown快速上手指南
- 云服务器 自有操作系统,云服务器 自有操作系统
- 本地计算机所安装的网络组件,3.2 在本地计算机中安装和配置IIS
- 自己动手写Docker系列 -- 4.1使用busybox创建容器
- linux命令80字符,Linux终端:用cat命令查看不可见字符
- 九龙山风电场电气一次部分初步设计
- 【验证码识别】OpenCV挑战顶象滑动拼图验证码
- 不读后悔:风口上的仓储自动化
- 解决: error: Class declaration lacks Q_OBJECT macro. 的报错
- 复杂性思维第二版 三、小世界图
- 线性同余发生器与伪随机数
- MPU6050读取数据FIFO溢出问题
- web前端CSS选择符:表示要定义样式的对象
- 泛型及其使用、Stream的方法(Java小白进阶day17)
- Python实现飞机大战(搞怪)游戏!这是你没见过的全新版本!
- padding和margin让人头疼的兄弟俩