批量学习(batch learning)和在线学习(online learning)
- 批量学习当模型训练之后就不再train,只用于test,当有新数据加入时,需要重新训练整个模型,这样的学习方式比较浪费时间和计算资源
- 在线学习将训练数据分为多个mini-batch ,每一步的训练代价较小
- 在线学习涉及到一个学习率的选取。学习率过大会导致模型忘记之前的训练数据,学习率过小会导致学习太慢,对新数据不敏感
特征选择与特征提取
- 特征选择是在已有的特征中选择有用的特征用于训练
- 特征提取根据原有的特征构建新的更有用的特征
正则化
- 正则化可以简化模型,避免过拟合
- 当我们的模型中有一个参数很大,但是我们知道这个参数虽然会使训练集结果很好,但是在测试集中国会导致过拟合,当控制这个参数较小时模型会表现的更好,所以我们可以对这个参数进行正则化。这样得到的模型比未加入正则化项的模型更简单,但是也比直接删去这个参数的模型复杂,在测试集中有更好的表现
欠拟合
- 解决方法:1.选择更复杂的模型进行训练 2.通过特征工程寻找更好的特征作为模型的输入3.正则化系数要较小
K折交叉验证
from sklearn.model_selection import cross_val_score
scores = cross_val_score(模型, housing_prepared, housing_labels, scoring="neg_mean_squared_error", cv=10)
rmse_scores = np.sqrt(-scores)
网格搜索
from sklearn.model_selection import GridSearchCV
param_grid = [ {
'n_estimators': [3, 10, 30], 'max_features': [2, 4, 6, 8]}, {
'bootstrap': [False], 'n_estimators': [3, 10], 'max_features': [2, 3, 4]}, ]
forest_reg = RandomForestRegressor()
grid_search = GridSearchCV(forest_reg, param_grid, cv=5, scoring='neg_mean_squared_error') grid_search