机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)
在上一篇里,我们使用可视化的方法分析了“共享单车”的数据集,理解了特征(变量)之间的关系。我们将在本篇建立几个模型预测单车的需求量,并比较它们的预测效果。
随机森林填充法
首先,导入必需的库、训练集和检验集。
import pylab
import calendar
import numpy as np
import pandas as pd
import seaborn as sn
from scipy import stats
import missingno as msno
from datetime import datetime
import matplotlib.pyplot as plt
import warnings
pd.options.mode.chained_assignment = None
warnings.filterwarnings("ignore", category=DeprecationWarning)
dataTrain = pd.read_csv("e:/kaggle_exercises/bikesharing/input/train.csv")
dataTest = pd.read_csv("e:/kaggle_exercises/bikesharing/input/test.csv")
为了做特征工程,合并训练集与检验集。由于检验集里缺少训练集的特征casual
, registered
, count
, 故而合并后的数据集,这三个特征有缺失值。
data = dataTrain.append(dataTest)
data.reset_index(inplace=True)
data.drop('index',inplace=True,axis=1)
特征工程
根据datetime
加工出新特征date
, hour
, year
, weekday
and month
.
data["date"] = data.datetime.apply(lambda x : x.split()[0])
data["hour"] = data.datetime.apply(lambda x : x.split()[1].split(":")[0]).astype("int")
data["year"] = data.datetime.apply(lambda x : x.split()[0].split("-")[0])
data["weekday"] = data.date.apply(lambda dateString : datetime.strptime(dateString,"%Y-%m-%d").weekday())
data["month"] = data.date.apply(lambda dateString : datetime.strptime(dateString,"%Y-%m-%d").mon