Task4 建模调参
学习目标
把自己已经学习到的机器学习模型与现实问题结合起来。
学会调用现有的机器学习库的调用,和简单的调参。
了解交叉验证。
学习内容
-
线性回归模型:
-
线性回归对于特征的要求;
-
处理长尾分布;
-
理解线性回归模型;
-
-
模型性能验证:
-
评价函数与目标函数;
-
交叉验证方法;
-
留一验证方法;
-
针对时间序列问题的验证;
-
绘制学习率曲线;
-
绘制验证曲线;
-
-
嵌入式特征选择:
-
Lasso回归;
-
Ridge回归;
-
决策树;
-
-
模型对比:
-
常用线性模型;
-
常用非线性模型;
-
-
模型调参:
-
贪心调参方法;
-
网格调参方法;
-
贝叶斯调参方法;
-
代码演示
读入Task3生成的数据集
sample_feature = reduce_mem_usage(pd.read_csv('data_for_tree.csv'))
sample_feature = sample_feature.dropna().replace('-', 0).reset_index(drop=True)
#sample_feature['notRepairedDamage'] = sample_feature['notRepairedDamage'].astype(np.float32)
train = sample_feature[continuous_feature_names + ['price']]
train_X = train[continuous_feature_names]
train_y = train['price']
选择线性模型,并查看效果
model = LinearRegression(normalize=True)
model = model.fit(train_X, train_y)
from matplotlib import pyplot as plt
subsample_index = np.random.randint(low=0, high=len(train_y), size=50)
plt.xlabel('v_9')
交叉验证,对比各个模型
总结
熟悉了各种机器学习的模型,并利用sklearn库训练了模型,比较了各个模型对本题的效果对比。