欠拟合与过拟合:欠拟合是机器学习数据的特点,但是由于学习到的特征过于少,最后导致拟合的效果不佳。过拟合是机器学习过程中,学习到的特征过于多,导致在训练集上的表现较好,但在测试集上的表现不佳。
解决方案:使用岭回归
岭回归:更改损失函数
lamda是一个超参数,表示正则化力度
这样可以在进行回归的时候,尽可能的将参数减少,减少过拟合。
API:
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import Ridge
from sklearn.metrics import mean_squared_error
boston = load_boston()
x_train, x_test, y_train, y_test = train_test_split(
boston.data, boston.target, random_state=3)
estimator = Ridge(normalize=True, alpha=0.0001)
# normalize 表示会对数据进行标准化处理, alpha学习率, solver ‘auto’会根据数据的情况对梯度下降方法进行优化
estimator.fit(x_train, y_train)
pre = estimator.predict(x_test)
error = mean_squared_error(y_test, pre)
print(error)
18.897652766640018