在scikit-learn中,可以使用多元回归模型来拟合数据并绘制最佳拟合平面。以下是实现这一目标的步骤:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
X = np.array([[1, 2], [2, 3], [3, 4], [4, 5], [5, 6]])
y = np.array([3, 4, 5, 6, 7])
poly = PolynomialFeatures(degree=2) # 设置多项式的阶数
X_poly = poly.fit_transform(X) # 转换特征为多项式特征
regressor = LinearRegression()
regressor.fit(X_poly, y)
x1_grid, x2_grid = np.meshgrid(np.arange(1, 6, 0.1), np.arange(2, 7, 0.1))
X_grid = np.column_stack((x1_grid.ravel(), x2_grid.ravel()))
X_poly_grid = poly.transform(X_grid)
y_pred_grid = regressor.predict(X_poly_grid)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(X[:, 0], X[:, 1], y, color='red', label='Actual')
ax.plot_surface(x1_grid, x2_grid, y_pred_grid.reshape(x1_grid.shape), alpha=0.5, cmap='viridis', label='Best Fit')
ax.set_xlabel('X1')
ax.set_ylabel('X2')
ax.set_zlabel('y')
ax.legend()
plt.show()
以上代码将绘制一个包含实际数据点和最佳拟合平面的3D图形。
关于scikit-learn、多元回归和数据可视化的更多信息,可以参考腾讯云机器学习平台(AI Lab)提供的相关产品和文档:
请注意,以上答案仅供参考,具体实现可能因个人需求和环境而异。
领取专属 10元无门槛券
手把手带您无忧上云