尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

11.05记录-机器学习

11.05记录-机器学习
📅 发布时间:2026/6/20 10:41:24

# 11.05记录

拟合

欠拟合

简单地说,就是模型学不会,模型太简单。例如,一个学生只会背公式,但是不会运用,题目稍微变形,就做不出来了。欠拟合说明模型只学会了表层的规律。

现象:

在训练集和测试集上表现都很差

解决方案:

提升模型复杂度,例如增加特征,加深网络等

过拟合

过拟合说明模型学的太死,甚至会把噪声样本当成规律。例如一个学生能熟练的做出一张卷子上面所有的题目,甚至能把卷子的印刷错误都吸收了,但是这并非真实规律。

现象:

在训练集上表现极佳,但是在测试集上表现很差

解决方案:

降低复杂度,例如剪枝,正则化等

线性回归:

线性回归用于预测回归类问题,例如,我们要预测连续型数据,那么,我们就要找到一个函数,使得

\[y_i=h(x_i) \]

用线性函数表示,就是

\[h(x)=\omega^Tx \]

所以我们的目的就是找到最优的omega,怎么判断是否最优?可以用预测值和真实值的差来估算,但是这样正差值和负差值会抵消,所以我们用平方误差,公式:

\[L(\omega)=\sum_{i=1}^m(y_i-\omega^Tx_i)^2 \]

这个函数就是线性回归的损失函数

下面,就有两种求解方式了,一种是正规方程解法,一种是梯度下降法。

正规方程

先展开

\[(y-X\omega)^T(y-X\omega) \]

对omega求导,可以得到

\[X^T(y-X\omega) \]

令其为0,可以得出

\[\hat\omega=(X^TX)^{-1}X^Ty \]

这个omega即为最优解,但是要保证样本数大于特征数,不然X^TX的逆是不能直接算的。

梯度下降法

梯度就是函数值增加最快的方向,负梯度就是减少最快的方向。我们可以通过这个方法来寻找最小损失。

例如,我们站在山上,梯度下降就是从最陡峭的地方下滑山,这样可以最快到达山脚。但是我们也可能到达的是山谷之类的地方, 所以梯度下降只能求解局部最优解。

梯度公式

\[\frac{\partial J(\omega)}{\partial \omega_j} \]

然后用步长乘以这个公式,得到的就是下降的距离

\[a\frac{\partial J(\omega)}{\partial \omega_j} \]

检查梯度下降的距离是否小于设定的阈值epsilon,如果小于,那就停止,否则更新omega

\[\omega_j=\omega_j-a\frac{\partial J(\omega)}{\partial \omega_j} \]

梯度下降的方式

批量梯度下降:每次用所有样本来更新参数(计算量大,训练慢)

随机梯度下降:每次只用一个样本来更新参数(迭代方向变化大,函数收敛较慢)

mini-batch:综合上面两种方法

模型评估

均方误差:

\[MSE=\frac1 N \sum_{i=1}^N(y_i-p_i)^2 \]

其中,N为样本数量,y和p分别表示真实值和预测值

用线性回归来预测波士顿房价

sklearn

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
# 从原始网站读取 Boston 房价数据
data_url = "http://lib.stat.cmu.edu/datasets/boston"
raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)
# 构造 X 和 y
X = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
y = raw_df.values[1::2, 2]
# 训练集 / 测试集划分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=8)
# 建立线性回归模型
lr = LinearRegression()
lr.fit(X_train, y_train)
# 预测并计算 MSE
y_pred = lr.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print("MSE:", mse)

xgboost

xgboost内置了线性回归的API

import xgboost as xgb
from 线性回归.boston import X_train, y_train, X_testtrian_xgb=xgb.DMatrix(X_train,y_train)
params={'objective': 'reg:linear','booster': 'gblinear' }
model=xgb.train(dtrain=trian_xgb,params=params)
y_pred=model.predict(xgb.DMatrix(X_test))

相关新闻

  • 100小时学会SAP—问题1:FB50 做总账凭证时提示过账码没有定义
  • CSS元素定位
  • 题解:P13933 [蓝桥杯 2022 省 Java B] 最大子矩阵

最新新闻

  • 博尔塔拉蒙古自治州黄金回收多少钱一克?本地实体门店回收价格对比整理 - 三大殿
  • 黄金铂金白银回收门店整理,各区均有分店联系方式 - 三大殿
  • 盘锦市闲置黄金变现多少钱?本地5家回收门店最新报价参考 - 千叶啊
  • CurseBreaker未来路线图:插件管理器的发展方向与规划
  • 2026安徽省铜陵市电大中专会计二建报考前置学历最新发布 - cc江江
  • 承德市黄金回收实体店怎么选?这份清单帮你货比三家 - 开始就结束

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号