缺失值填充 在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个用的比较多,相对的标准化用的比较多