本文共 1460 字,大约阅读时间需要 4 分钟。
Linear Regression aka Ordinary Least Squares# 线性回归,最小二乘法# 生成测试数据from sklearn.linear_model import LinearRegressionX, y = mglearn.datasets.make_wave(n_samples=60)X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)lr = LinearRegression().fit(X_train, y_train)# 查看斜率 ,截距print("lr.coef_: {}".format(lr.coef_))print("lr.intercept_: {}".format(lr.intercept_))lr.coef_: [0.394]lr.intercept_: -0.031804343026759746# 查看训练集和测试集的性能print("Training set score: {:.2f}".format(lr.score(X_train, y_train)))print("Test set score: {:.2f}".format(lr.score(X_test, y_test)))# 查看R方# R2 约为 0.66,这个结果不是很好,但我们可以看到,训练集和测试集上的分数非常接近。# 这说明可能存在欠拟合,而不是过拟合。# 然而,对于更高维的数据集(即有大量特征的数据集),线# 性模型将变得更加强大,过拟合的可能性也会变大Training set score: 0.67Test set score: 0.66# 我们来看一下 LinearRegression 在更# 复杂的数据集上的表现,比如波士顿房价数据集。记住,这个数据集有 506 个样本和 105# 个导出特征。首先,加载数据集并将其分为训练集和测试集。然后像前面一样构建线性回# 归模型:X, y = mglearn.datasets.load_extended_boston()X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)lr = LinearRegression().fit(X_train, y_train)print("Training set score: {:.2f}".format(lr.score(X_train, y_train)))print("Test set score: {:.2f}".format(lr.score(X_test, y_test)))# 训练集和测试集之间的性能差异是过拟合的明显标志,Training set score: 0.95Test set score: 0.61``
转载地址:http://qtrg.baihongyu.com/