plt.scatter(X, y, color='blue') plt.plot(X, y_pred, color='red') plt.title('Linear Regression') plt.xlabel('Independent Variable') plt.ylabel('Dependent Variable') plt.legend(['Regression Line', 'Observations'])什么意思
时间: 2023-06-19 07:06:12 浏览: 163
这段代码用于绘制线性回归模型的拟合效果。其中,plt.scatter用于绘制样本点的散点图,plt.plot用于绘制回归线,plt.title设置图表标题,plt.xlabel和plt.ylabel分别设置x轴和y轴的标签,plt.legend用于添加图例,其中'Regression Line'表示回归线,'Observations'表示样本点。
相关问题
plt.scatter(X, y, color='blue') plt.plot(X, y_pred, color='red')有哪些组合
这两行代码可以组合成以下几种形式:
1. plt.scatter(X, y, color='blue'):只显示散点图
2. plt.plot(X, y_pred, color='red'):只显示拟合曲线
3. plt.scatter(X, y, color='blue') 和 plt.plot(X, y_pred, color='red') 组合:同时显示散点图和拟合曲线
4. plt.plot(X, y_pred, color='red') 和 plt.scatter(X, y, color='blue', alpha=0.5) 组合:同时显示拟合曲线和半透明散点图,其中 alpha 参数控制散点图透明度。
import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split # 读取数据 df = pd.read_csv('./二手房.csv',encoding='gbk') df.head(10)# 取出房屋面积和房龄作为特征 X = df[['Square','house age']].values # 取出房价作为标签 y = df['price'].values # 将数据集拆分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)from sklearn.linear_model import LinearRegression # 创建线性回归模型 lr = LinearRegression() # 训练模型 lr.fit(X_train, y_train) # 在测试集上进行预测 y_pred = lr.predict(X_test)plt.scatter(X_train[:, 0], y_train, color='blue', label='Training set') plt.scatter(X_test[:, 0], y_test, color='green', label='Test set') # 绘制模型预测结果 plt.plot(X_test[:, 0], y_pred, color='red', label='Prediction') plt.title('House Prices Prediction') plt.xlabel('Square') plt.ylabel('price') plt.legend(loc='upper left') plt.show()拟合曲线不是一条直线如何修改代码
如果想让拟合曲线不是一条直线,可以使用多项式回归模型来进行拟合。可以将特征进行多项式转换,再使用线性回归模型进行拟合。修改代码如下:
```
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
# 读取数据
df = pd.read_csv('./二手房.csv',encoding='gbk')
df.head(10)
# 取出房屋面积和房龄作为特征
X = df[['Square','house age']].values
# 取出房价作为标签
y = df['price'].values
# 将特征进行多项式转换
poly_features = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly_features.fit_transform(X)
# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_poly, y, test_size=0.2, random_state=42)
# 创建线性回归模型
lr = LinearRegression()
# 训练模型
lr.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = lr.predict(X_test)
# 绘制散点图
plt.scatter(X_train[:, 0], y_train, color='blue', label='Training set')
plt.scatter(X_test[:, 0], y_test, color='green', label='Test set')
# 绘制拟合曲线
X_sorted = np.sort(X_test[:, 0])
y_pred_sorted = lr.predict(poly_features.fit_transform(np.c_[X_sorted, np.zeros_like(X_sorted)]))
plt.plot(X_sorted, y_pred_sorted, color='red', label='Prediction')
plt.title('House Prices Prediction')
plt.xlabel('Square')
plt.ylabel('price')
plt.legend(loc='upper left')
plt.show()
```
在上面的代码中,我们使用了 `PolynomialFeatures` 类来进行特征转换,将特征进行了二次多项式转换。然后使用线性回归模型来进行拟合,最后绘制出散点图和拟合曲线。
阅读全文