IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 集成学习02-回归问题 -> 正文阅读

[数据结构与算法]集成学习02-回归问题

要求:掌握机器学习回归的原理,并使用sklearn进行回归应用。

使用sklearn构建机器学习项目流程:

一般来说,一个完整的机器学习项目分为以下步骤:

  • 明确项目任务:回归/分类
  • 收集数据集并选择合适的特征。
  • 选择度量模型性能的指标。
  • 选择具体的模型并进行训练以优化模型。
  • 评估模型的性能并调参。

回归模型:

1.线性回归模型

(a) 最小二乘估计:

损失函数:

可直接求权重

注:为什么误差函数不用|y-yreal|? 首先,消除误差值的正负号影响,可以使用绝对值或平方解决;其次,使用绝对值不方便对误差函数求导。

(b) 几何解释:

为求y到平面x距离最近(误差最小)的参数,让y作垂直平面x的法向量,从而能得到最近似的y'值。

平面X的法向量为Y-Xw,与平面X互相垂直,所以

(Xw也位于x平面上)

?

?(c) 概率解释:

线性回归的最小二乘估计<==>噪声𝜖∽𝑁(0,𝜎2)的极大似然估计

2.线性回归的推广

(a) 多项式回归:将模型换成一个多项式函数

(b) 广义可加模型(GAM):在这个框架中,每一个变量都用一个非线性函数来代替,但是模型本身保持整体可加性。?

?

  • 优点:自然地推广线性回归模型至非线性模型,提升模型的预测精度;由于模型本身是可加的,GAM还能像线性回归模型对某个变量进行推断,保留了线性回归的易于推断的性质。
  • 缺点:GAM模型会经常忽略一些有意义的交互作用,比如某两个特征共同影响因变量,不过GAM还是能像线性回归一样加入交互项𝑥(𝑖)×𝑥(𝑗)的形式进行建模;但是GAM模型本质上还是一个可加模型。

?(c)回归树模型:

基于树的回归方法主要是依据分层和分割的方式将特征空间划分为一系列简单的区域。对某个给定的待预测的自变量,用他所属区域中训练集的平均数或者众数对其进行预测。由于划分特征空间的分裂规则可以用树的形式进行概括,因此这类方法称为决策树方法。

决策树由结点(node)和有向边(diredcted edge)组成。结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类别或者某个值。区域𝑅1,𝑅2等称为叶节点,将特征空间分开的点为内部节点。

与线性模型的比较:
线性模型的模型形式与树模型的模型形式有着本质的区别,线性回归对模型形式做了如下假定:

那么,哪种模型更优呢?

如果特征变量与因变量的关系能很好的用线性关系来表达,那么线性回归通常有着不错的预测效果。反之,如果特征变量与因变量的关系呈现高度复杂的非线性,那么树方法比传统方法更优。

?(d)支持向量回归SVR:

在线性回归的理论中,每个样本点都要计算平方损失,但是SVR却是不一样的。SVR认为:落在𝑓(𝑥)的𝜖邻域空间中的样本点不需要计算损失,这些都是预测正确的,其余的落在𝜖邻域空间以外的样本才需要计算损失。

作业:
(1)请详细阐述线性回归模型的最小二乘法表达。
(2)在线性回归模型中,极大似然估计与最小二乘估计有什么联系与区别?
(3)为什么多项式回归在实际问题中的表现经常不是很好?
(4)决策树模型与线性模型之间的联系与差别?
(5)什么是KKT条件?
(6)为什么要引入原问题的对偶问题?
(7)使用CH1机器学习数学基础所学的内容,找到一个具体的数据集,使用线性回归模型拟合模型,要求不能使用sklearn,只能使用python与numpy.(必做)

解答:
(1)最小二乘法:建立MSE损失函数,通过求L对X的导数,导数为0时得到最佳参数值。

?损失函数:

?参数:

(2)线性回归的最小二乘估计<==>噪声𝜖∽𝑁(0,𝜎2)的极大似然估计;区别是最小二乘法的角度是最小化预测与真实的偏差,极大似然估计是最大化事件发生概率。
(3)多项式回归可以处理相当一类非线性问题,任一函数都可以分段用多项式来逼近。但是,多项式回归的阶数太高后,边缘处置信区间会过大。此外,多项式回归容易过拟合,产生的模型往往与实际分布不符。
(4)决策树将特征空间划分为一系列简单的区域,用所属区域中训练集的平均数或者众数对其进行预测。所以每个小区域仍然可看作线性模型,但组合起来的整个向量空间就不是线性模型了。
(5)KKT条件(最优解的一阶必要条件):看不太懂,先把资料放在这。

?

(6)因为原问题与对偶问题就像是一个问题两个角度去看,如利润最大与成本最低等。有时侯原问题上难以解决,但是在对偶问题上就会变得很简单。再者,任何一个原问题在变成对偶问题后都会变成一个凸优化的问题。
(7)代码:

from sklearn import datasets  # 调用sklearn的数据集
import numpy as np

boston = datasets.load_boston()
X = boston.data
Y = boston.target
x = np.matrix(X)
y = np.matrix(Y).T

w = (x.T*x).I * (x.T*y)
ypre = np.dot(x, w)
n = x.shape[0]
loss = np.dot((ypre - y).T, (ypre - y)) / n
print("参数w值为:", w)
print("最小二乘法误差为:", loss)

结果:

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 11:33:17  更:2021-07-16 11:34:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 17:44:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码