建筑能源预测 得分预报下

本文档详细介绍了使用Python进行建筑能源得分预测的过程,包括数据预处理(填充缺失值,特征标准化),尝试多种机器学习算法(如线性回归、支持向量机、随机森林、梯度提升等),并利用RandomizeSearchCV和GridSearchCV进行模型调参,最终选用Gradient Boosting Regression,并探讨了模型的过拟合问题和评估测试结果。
摘要由CSDN通过智能技术生成

缺失值填充 在sklearn中,可以使用Imputer()来进行缺失值填充,对于测试集我们使用数据集中的结果来进行填充.

测试集是非常宝贵的 ,不能放在其他集合上

在这里插入图片描述
在这里插入图片描述

4.4 建立基础模型,尝试多种算法

#之前把精力都放在了前面了,这回我的重点就要放在建模上了,导入所需要的包
# 数据分析库
import pandas as pd
import numpy as np

# warnings:警告——>忽视
pd.options.mode.chained_assignment = None
pd.set_option('display.max_columns', 60)

# 可视化
import matplotlib.pyplot as plt
%matplotlib inline

# 字体大小设置
plt.rcParams['font.size'] = 24

from IPython.core.pylabtools import figsize

# Seaborn 高级可视化工具
import seaborn as sns
sns.set(font_scale = 2)

# 预处理:缺失值 、 最大最小归一化
from sklearn.preprocessing import Imputer, MinMaxScaler

# 机器学习算法库
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor
from sklearn.svm import SVR
from sklearn.neighbors import KNeighborsRegressor

# 调参工具包
from sklearn.model_selection import RandomizedSearchCV, GridSearchCV


import warnings
warnings.filterwarnings("ignore")

上次保存好的数据加载进来

#上次保存好的数据加载进来
#这些数据集经过test_train_test 
# Read in data into dataframes 
train_features = pd.read_csv('C:/Users/lb/Desktop/data/training_features.csv')
test_features = pd.read_csv('C:/Users/lb/Desktop/data/testing_features.csv')
train_labels = pd.read_csv('C:/Users/lb/Desktop/data/training_labels.csv')
test_labels = pd.read_csv('C:/Users/lb/Desktop/data/testing_labels.csv')

# Display sizes of data
print('Training Feature Size: ', train_features.shape)
print('Testing Feature Size:  ', test_features.shape)
print('Training Labels Size:  ', train_labels.shape)
print('Testing Labels Size:   ', test_labels.shape)

在这里插入图片描述

4.4.1 缺失值填充

前面用了np.nan代替了Not Available,现在对缺失值开始填充
缺失值填充 在sklearn中,可以使用Imputer()来进行缺失值填充,对于测试集我们使用数据集中的结果来进行填充.

测试集是非常宝贵的 ,不能放在其他集合上

缺失值在有离群值下,用均值不合适,适合用中位数

# 因为数据有离群点,有大有小,用mean不太合适,用中位数较合适
#shift + tab ——>strategy:策略
imputer = Imputer(strategy='median') # 均值 、中位数和众数3种来填充缺失值

# 在训练特征中训练
imputer.fit(train_features)

# 对训练数据进行转换
X = imputer.transform(train_features)#用中位数来代替做成的训练集
X_test = imputer.transform(test_features) #用中位数来代替做成的测试集
#np.isnan:数值进行空值检测
print('Missing values in training features: ', np.sum(np.isnan(X))) #返回的是0 ,代表缺失值任务已经完成了
print('Missing values in testing features:  ', np.sum(np.isnan(X_test)))

在这里插入图片描述

4.4.2 特征标准化与归一化

2个用的比较多,相对的标准化用的比较多


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值