机器学习项目实战-能源利用率2-建模

该博客讲述了通过预处理数据、建立基础模型、调参和评估,提高能源利用率的机器学习项目。尝试了多种算法如线性回归、SVM、随机森林等,发现随机森林和集成算法表现较好。通过RandomizedSearchCV和GridSearchCV进行调参,最终模型性能提升了约10%。
摘要由CSDN通过智能技术生成

接上一篇: [[ 机器学习项目实战-能源利用率1-数据预处理 ]]

* 导入预处理数据

import warnings
warnings.filterwarnings('ignore')

import pandas as pd
import numpy as np
pd.options.mode.chained_assignment = None
pd.set_option('display.max_columns', 50)

import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
plt.rcParams['font.size'] = 24
sns.set(font_scale = 2)

train_features = pd.read_csv('data/training_features.csv')
test_features = pd.read_csv('data/testing_features.csv')
train_labels = pd.read_csv('data/training_labels.csv')
test_labels = pd.read_csv('data/testing_labels.csv')
print(train_features.shape, '\t', test_features.shape)

train_features.head(8)

(6622, 64) (2839, 64)
在这里插入图片描述

*.1 缺失值填充

在sklearn中,可以使用Scikit-learn Imputer object来进行缺失值填充,对于测试集我们使用数据集中的结果来进行填充,目的在于data leakage

from sklearn.imputer import SimpleImputer

imputer = SimpleImputer(strategy = 'median')
imputer.fit(train_features)

X = imputer.transform(train_features)
X_test = imputer.transform(test_features)

print('Missing values in training features: ', np.sum(np.isnan(X)))
print('Missing values in testing features: ', np.sum(np.isnan(X_test)))

print(np.where(~np.isfinite(X)))
print(np.where(~np.isfinite(X_test)))

Missing values in training features: 0
Missing values in testing features: 0
(array([], dtype=int64), array([], dtype=int64))
(array([], dtype=int64), array([], dtype=int64))

*.2 特征归一化

from sklearn.preprocessing import MinMaxScaler  # StandardScaler
minmax_scaler = MinMaxScaler()
minmax_scaler.fit(X)
X = minmax_scaler.transform(X)
X_test = minmax_scaler.transform(X_test)

y = np.array(train_labels).reshape((-1, ))
y_test = np.array(test_labels).reshape((-1, ))

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

4.1 建立一个Baseline

在建模之前,我们得有一个最坏的打算,就是模型起码得有点作用才行。

def mae(y_true, y_pred):
	return np.mean(abs(y_true - y_pred))
baseline_guess = np.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值