一、线性回归

一、在有监督学习中主要包括两大类问题

分类问题:你去银行贷款借钱,人家银行会不会借给你?当然只有两种答案:会、不会
回归问题:人家银行能借给你多少钱?是一个具体的值
举个例子:假如你去银行贷款,人家银行主要考虑你月薪和年龄这两个因素来决定你的最终的贷款金额。

x0你的月薪(x1)你的年龄(x2)可以给你贷款金额(Y)
130002020000
180002835000
110002510000
140003030000
1120002050000

很显然,人家银行贷给你钱主要看的是你的月薪,其次看的是你的年龄,这两个元素权重不一样。
x1和x2是两个特征,即月薪和年龄,Y是最终的贷款金额。

二、线性拟合

假设θ1是年龄的参数, θ2是工资的参数,因为是两个参数影响,故需要拟合一个平面。
在这里插入图片描述,其中θ0是偏置项,方便后续的矩阵操作。
整理得:在这里插入图片描述

三、误差

真实值和预测值之间肯定存在差异,这个差异就是误差ε。
对于每个样本而言:在这里插入图片描述

误差在这里插入图片描述,是独立并且具有相同的分布,并且服从均值为0,方差为 在这里插入图片描述高斯分布
独立:A和B是两个人,银行对待这两个人是一样的,两个人都不认识,相互独立。
相同的分布:俩人都去同一家银行贷款
高斯分布:也称正态分布或正常分布。主要是说 银行可能会给的多,也可能给的少,但这都是少数情况,但大多数情况下浮动不会太大,
在这里插入图片描述
预测值和误差:在这里插入图片描述
高斯分布:在这里插入图片描述,这里的ε和σ都指代误差。
误差服从高斯分布,带入预测值和误差公式中得:在这里插入图片描述

似然函数:这里的均值为0,直接带入简化函数
在这里插入图片描述在这里插入图片描述,可以理解这个似然函数主要求解什么样的参数(θ0,θ1,θ2)跟我们的数据组合一下可以更好的接近真实值。
但这里是累乘的操作,相比累加而言确实有点麻烦,故需要通过对数似然来将累乘向类和转换。在这里插入图片描述

对数似然:在这里插入图片描述
L(θ)和log(θ)的值不同,但这两个函数的极值点θ是一样的,故可以相互等价。

化简:在这里插入图片描述
故:最终的目标是让在这里插入图片描述取值最小即可。

四、通过最小二乘法求目标函数最小值

目标函数:在这里插入图片描述
如何求函数最小值?很简单,求导呗,找到导数为0的θ。当然这里是多个变量求的是偏导。
在这里插入图片描述
令偏导为0,求出θ即可。在这里插入图片描述

五、评估方法

在这里插入图片描述
R²越接近于1,则模型拟合的越好。

六、梯度下降法

当我们得到一个目标函数之后,如何求解?你会求解,但是机器学习是让机器去学会这个方法,你学会没用!
故这时候就需要将我们求解的步骤进行具体话,给机器说一下求解的方法、步骤,让机器按照这个步骤来就可以求解出最佳的答案。
对于目标函数:在这里插入图片描述
在这里插入图片描述
我们的目标是如何找到终点?即什么样的参数能使得目标函数达到极值点

目标函数:在这里插入图片描述
①批量梯度下降:在这里插入图片描述
因为这里梯度下降法是沿梯度反方向走的,故需要加个负号,负负得正:在这里插入图片描述
可以看出:容易得到最优解,但是m个样本都考虑到了,速度太慢了。

②随机梯度下降:在这里插入图片描述
每一次知道一个样本,迭代速度很快,但不一定每次的样本都是收敛的。

③(常用)小批量梯度下降:在这里插入图片描述
从中随机找几个样本(这里选择10个),每次更新选择一小部分样本。
这里的α是学习率(learning rate,LR),也就是每次下降的步长,步长对结果影响很大,一般小一点较好。通常LR=0.01、0.001挨个试试效果。
这里选择的是随机选取10个样本,一般都是随机取64、128、256个样本。

总结梯度下降法步骤:
①分别求每个参数的偏导,找到偏导最小值
②走α步
③按当前方向进行更新参数θ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/377926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8-18-Exercise

8-18-小练 A.HDU 1172 猜数字 采用枚举~【赤果果的暴力~】 代码&#xff1a; 1 #include <iostream>2 #include <cstdio>3 #include <cstring>4 using namespace std;5 6 int x[111],y[111],s,ss,vis[4],dis[4];7 char a[111][5];8 9 void find(int b,int …

leetcode 501. 二叉搜索树中的众数 思考分析

目录题目1、不考虑BTS性质&#xff0c;直接寻找众数集合&#xff08;利用map&#xff09;2、考虑BTS的中序遍历结果性质题目 给定一个有相同值的二叉搜索树&#xff08;BST&#xff09;&#xff0c;找出 BST 中的所有众数&#xff08;出现频率最高的元素&#xff09;。 假定 BS…

二、模型评估方法

IDE为Jupyter Notebook scikit-learn官网 scikit-learn是一个专门用于机器学习的工具包 运用到啥函数不知道咋使用&#xff1f;戳它–>scikit-learn工具包的API文档 不知道用啥模板&#xff1f;戳它–>scikit-learn样例模型 功能翻译Classification分类Regression回归Cl…

三、线性回归实验分析

所有代码块都是在Jupyter Notebook下进行调试运行&#xff0c;前后之间都相互关联。 文中所有代码块所涉及到的函数里面的详细参数均可通过scikit-learn官网API文档进行查阅&#xff0c;这里我只写下每行代码所实现的功能&#xff0c;参数的调整读者可以多进行试验调试。多动手…

leetcode 236. 二叉树的最近公共祖先 思考分析

目录题目思考分析改进本文章代码思路来源于公众号【代码随想录】题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、…

leetcode 235. 二叉搜索树的最近公共祖先 思考分析

目录题目思考迭代法题目 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff0…

四、逻辑回归

逻辑回归logistic_regression(LR)其实是分类算法&#xff0c;而不是回归算法。 回归算法得到的是一个数&#xff0c;分类算法得到的是几个不同的类别。 逻辑回归就是通过函数将值转换为0-1之间&#xff0c;形成概率问题&#xff0c;从而实现了不同类别的分类。 Sigmoid 函数 …

运算符优先级

转载于:https://www.cnblogs.com/c-cloud/p/3280911.html

五、逻辑回归实验分析

所有代码块都是在Jupyter Notebook下进行调试运行&#xff0c;前后之间都相互关联。 文中所有代码块所涉及到的函数里面的详细参数均可通过scikit-learn官网API文档进行查阅&#xff0c;这里我只写下每行代码所实现的功能&#xff0c;参数的调整读者可以多进行试验调试。多动手…

二叉搜索树的插入、删除、修剪、构造操作(leetcode701、450、669、108)

目录1、leetcode 701. 二叉搜索树中的插入操作1、题目2、递归法3、迭代法2、leetcode 450. 二叉搜索树中的插入操作1、题目2、思路递归法3、迭代法4、删除结点的两个方法以及注意点3、leetcode 669. 修剪二叉搜索树1、题目2、思考与递归3、迭代法4、leetcode 108. 将有序数组转…

模拟退火算法解决np_P和NP问题与解决方案| 演算法

模拟退火算法解决npP问题 (P Problems) P is the set of all the decision problems solvable by deterministic algorithms in polynomial time. P是多项式时间内确定性算法可解决的所有决策问题的集合。 NP问题 (NP Problems) NP is the set of all the decision problems t…

POJ2251Dungeon Master

http://poj.org/problem?id2251 题意 &#xff1a; 就是迷宫升级版&#xff0c;从以前的一个矩阵也就是一层&#xff0c;变为现在的L层&#xff0c;" . "是可以走&#xff0c;但是“#”不可以走&#xff0c;从S走到E&#xff0c;求最短的路径&#xff0c;若是找不到…

六、聚类算法

一、聚类概念 1&#xff0c;通俗易懂而言&#xff0c;聚类主要运用于无监督学习中&#xff0c;也就是将没有标签的东西如何分为几堆儿。 2&#xff0c;无监督学习即没有标签&#xff0c;不知道这些玩意到底是啥。当然&#xff0c;有监督学习就是由标签&#xff0c;我们是提前知…

【C++grammar】string类和array类

目录1、C11的string类1、创建 string 对象2、追加字符串append函数3、为字符串赋值assign函数4、at, clear, erase, and empty函数5、比较字符串compare()6、获取子串at() 、substr()函数7、搜索字符串find()8、插入和替换字符串insert() 、replace()9、字符串运算符10、string…

六、聚类算法实战

所有代码块都是在Jupyter Notebook下进行调试运行&#xff0c;前后之间都相互关联。 文中所有代码块所涉及到的函数里面的详细参数均可通过scikit-learn官网API文档进行查阅&#xff0c;这里我只写下每行代码所实现的功能&#xff0c;参数的调整读者可以多进行试验调试。多动手…

超图软件试用许可操作步骤_软件中的操作步骤

超图软件试用许可操作步骤The software comprises of three things: Program code, Documentation, and the Operating Procedures. The Program code is the entire software code. The Documentation is produced while the development of the software itself for the time…

【嵌入式系统】STM32配置FreeRTOS以及利用多线程完成流水灯、按键、蜂鸣器、数码管工作

目录1、利用STM32CubeMX配置FreeRTOS2、完成流水灯、按键、蜂鸣器数码管工作1、在gpio.c和.h文件里面书写并声明按键扫描和led、数码管子程序2、在freertos.c文件里面设置全局变量并且在各自任务中载入程序3、关于FreeRTOS的注意事项1、利用STM32CubeMX配置FreeRTOS 假设我们之…

css模糊_如何使用CSS模糊图像?

css模糊Introduction: 介绍&#xff1a; Sometimes even the professional developers tend to forget the various basic properties which can be applied to solve very simple problems, therefore the fundamentals of developing a website or web page should be very …

七、决策树算法和集成算法

一、决策树算法 Ⅰ&#xff0c;树模型 决策树&#xff1a;从根节点开始一步步走到叶子节点&#xff08;决策&#xff09; 所有的数据最终都会落到叶子节点&#xff0c;既可以做分类也可以做回归 对于分类&#xff1a;是由众数决定的&#xff0c;例如爷爷奶奶妈妈都是负数&…

leetcode 538. 把二叉搜索树转换为累加树 思考分析

题目 给出二叉 搜索 树的根节点&#xff0c;该树的节点值各不相同&#xff0c;请你将其转换为累加树&#xff08;Greater Sum Tree&#xff09;&#xff0c;使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下&#xff0c;二叉搜索树满足下列约束条件&…