ToB企服应用市场:ToB评测及商务社交产业平台

标题: 机器学习之拟合 [打印本页]

作者: 曂沅仴駦    时间: 2024-12-22 02:39
标题: 机器学习之拟合
在机器学习中,拟合(Fitting) 是指通过训练数据来调整模型参数,使得模型能够较好地预测输出或逼近真实数据的分布。拟合水平决定了模型的表现,主要分为三种情况:欠拟合(Underfitting)适度拟合(Good Fit)过拟合(Overfitting)

1. 拟合的概念



2. 拟合的三种情况

(1) 欠拟合(Underfitting)



(2) 适度拟合(Good Fit)



(3) 过拟合(Overfitting)



3. 拟合的可视化理解

示例图


拟合情况可以通过训练数据和模型预测之间的关系图来直观理解:


4. 控制拟合的本领


5. 代码示例

以线性回归为例,展示欠拟合、适度拟合和过拟合:
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from sklearn.model_selection import train_test_split
  4. from sklearn.preprocessing import PolynomialFeatures
  5. from sklearn.linear_model import LinearRegression
  6. from sklearn.metrics import mean_squared_error
  7. # 生成数据
  8. np.random.seed(0)
  9. X = np.linspace(-3, 3, 100).reshape(-1, 1)
  10. y = X**3 + np.random.normal(0, 3, size=X.shape)  # 非线性数据
  11. # 拆分训练和测试集
  12. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  13. # 定义不同复杂度的模型
  14. degrees = [1, 3, 9]  # 1表示欠拟合,3表示适度拟合,9表示过拟合
  15. plt.figure(figsize=(18, 5))
  16. for i, d in enumerate(degrees):
  17.     poly = PolynomialFeatures(degree=d)
  18.     X_poly_train = poly.fit_transform(X_train)
  19.     X_poly_test = poly.transform(X_test)
  20.    
  21.     model = LinearRegression()
  22.     model.fit(X_poly_train, y_train)
  23.    
  24.     y_pred_train = model.predict(X_poly_train)
  25.     y_pred_test = model.predict(X_poly_test)
  26.    
  27.     train_error = mean_squared_error(y_train, y_pred_train)
  28.     test_error = mean_squared_error(y_test, y_pred_test)
  29.    
  30.     # 绘图
  31.     plt.subplot(1, 3, i+1)
  32.     plt.scatter(X, y, color='gray', label='Data')
  33.     X_plot = np.linspace(-3, 3, 100).reshape(-1, 1)
  34.     y_plot = model.predict(poly.transform(X_plot))
  35.     plt.plot(X_plot, y_plot, color='red', label=f"Degree {d}")
  36.     plt.title(f"Degree {d}\nTrain Error: {train_error:.2f}, Test Error: {test_error:.2f}")
  37.     plt.legend()
  38. plt.show()
复制代码


6. 总结


通过正则化、数据增强、交织验证等本领,可以有用地控制拟合水平,提升模型的泛化能力。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4