线性回归与 logistic回归

线性回归

算法方程:hθ(x)=∑i=0nθixi=θTxh_{\theta}(x)=\sum_{i=0}^{n} \theta_{i} x_{i}=\theta^{T} xhθ(x)=i=0nθixi=θTx

损失函数:J(θ0,θ1,…,θn)=12m∑i=1m(hθ(x(i))−y(i))2J\left(\theta_{0}, \theta_{1}, \ldots, \theta_{n}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}J(θ0,θ1,,θn)=2m1i=1m(hθ(x(i))y(i))2
将损失函数看做是关于θ\thetaθ的函数。

最小化损失函数:凸函数可以找到全局最优解,算法梯度下降。
θ0:=θ0−α1m∑i=1m(hθ(x(i))−y(i))x0(i)θ1:=θ1−α1m∑i=1m(hθ(x(i))−y(i))x1(i)θ2:=θ2−α1m∑i=1m(hθ(x(i))−y(i))x2(i)…\begin{array}{l}{\theta_{0}:=\theta_{0}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{0}^{(i)}} \\ {\theta_{1}:=\theta_{1}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{1}^{(i)}} \\ {\theta_{2}:=\theta_{2}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{2}^{(i)}} \\ {\ldots}\end{array}θ0:=θ0αm1i=1m(hθ(x(i))y(i))x0(i)θ1:=θ1αm1i=1m(hθ(x(i))y(i))x1(i)θ2:=θ2αm1i=1m(hθ(x(i))y(i))x2(i)

学习率:θ1:=θ1−αddθ1J(θ1)\theta_{1}:=\theta_{1}-\alpha \frac{d}{d \theta_{1}} J\left(\theta_{1}\right)θ1:=θ1αdθ1dJ(θ1)
与收敛速度相关

过拟合与欠拟合:我们的假设函数曲线对原始数据拟合得非常好,但丧失了一般推到性,以致于预测效果很差。
解决方法:正则化
作用:控制参数幅度;限制参数搜索空间
J(θ)=12m[∑i=1m(hθ(x(i))−y(i))2+λ∑j=1nθj2]J(\theta)=\frac{1}{2 m}\left[\sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda \sum_{j=1}^{n} \theta_{j}^{2}\right]J(θ)=2m1[i=1m(hθ(x(i))y(i))2+λj=1nθj2]
假设原始线程方式是hθ(x)=θ1x1+θ2x2+θ3x3+θ4x4h_{\theta}(x)=\theta_1x_1+\theta_2x_2+\theta_3x_3+\theta_4x_4hθ(x)=θ1x1+θ2x2+θ3x3+θ4x4,在线训练过程中,根据训练集数据大小,每一个θ\thetaθ的都可能非常大,或者非常小,这条线抖动非常大。如果在损失函数中加入∑j=1nθj2\sum_{j=1}^{n} \theta_{j}^{2}j=1nθj2,因为损失函数要求最小值,所以每一个θ\thetaθ的值就不可能很大。
λ\lambdaλ是一个超参数。λ\lambdaλ太小,正则化项不起作用;λ\lambdaλ太大,学习到的参数主要由正则化项决定,与训练数据无关,也是错误的。
通常使用L1、L2正则化。

logistic回归

线性回归在分类问题上使用,健壮性差,所以使用logistic回归。
sigmoid函数值域在(0,1)之间,可以看做一个概率函数。
在线性回归外面套一层sigmoid函数。

算法方程:hθ(x)=g(θ0+θ1x1+θ2x2)h_{\theta}(x)=g\left(\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}\right)hθ(x)=g(θ0+θ1x1+θ2x2)
hθ(x)=g(θ0+θ1x1+θ2x2+θ3x12+θ4x22)h_{\theta}(x)=g\left(\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{3} x_{1}^{2}+\theta_{4} x_{2}^{2}\right)hθ(x)=g(θ0+θ1x1+θ2x2+θ3x12+θ4x22)

损失函数:cost⁡(hθ(x),y)={−log⁡(hθ(x))if y=1−log⁡(1−hθ(x))if y=0\operatorname{cost}\left(h_{\theta}(x), y\right)=\left\{\begin{aligned}-\log \left(h_{\theta}(x)\right) & \text { if } y=1 \\-\log \left(1-h_{\theta}(x)\right) & \text { if } y=0 \end{aligned}\right.cost(hθ(x),y)={log(hθ(x))log(1hθ(x)) if y=1 if y=0

J(θ)=−1m[∑i=1my(i)log⁡hθ(x(i))+(1−y(i))log⁡(1−hθ(x(i)))]J(\theta)=-\frac{1}{m}\left[\sum_{i=1}^{m} y^{(i)} \log h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right]J(θ)=m1[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]

梯度下降优化公式:θj:=θj−α∂∂θjJ(θ)\theta_{j}:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J(\theta)θj:=θjαθjJ(θ)

加入正则化:J(θ)=[−1m∑i=1my(i)log⁡(hθ(x(i))+(1−y(i))log⁡1−hθ(x(i))]+λ2m∑j=1nθj2J(\theta)=\left[-\frac{1}{m} \sum_{i=1}^{m} y^{(i)} \log \left(h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \log 1-h_{\theta}\left(x^{(i)}\right)\right]+\frac{\lambda}{2 m} \sum_{j=1}^{n} \theta_{j}^{2}\right.J(θ)=[m1i=1my(i)log(hθ(x(i))+(1y(i))log1hθ(x(i))]+2mλj=1nθj2

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

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

相关文章

[高效时间管理] 番茄工作钟 windows版本

【背景】 2019年本人学会了记录每日时间(将每日分割成半小时一段的时间) ,但似乎是为了完成而完成,效果不佳,手机端的番茄钟总是诱惑太多,就在准备tb计时器的时候,发现了宝藏软件。 个人整理知…

IDEA设置取消自动显示参数提示

IDEA设置取消自动显示参数提示 最近在使用IDEA的过程中,发现方法中一直显示形参名的提示,无法选中,也无法删除,基于不同人的使用习惯不同,有的人不喜欢这种提示,我也在网上寻找各种解决方案,由于…

spring学习(34):构造函数依赖注入

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

[高效时间管理]复盘篇

【背景】 2019年本人在公众号中阅读了《时间管理&#xff0c;这篇就够了》&#xff0c;学习了其中的内容并开始记录每日所做&#xff0c;偶尔晚上进行复盘&#xff0c;对督促学习和反思起到一定的作用&#xff0c;故向大家分享经验。 为什么要时间管理&#xff1f; 时间管理…

PHP内存管理机制与垃圾回收机制

转载&#xff1a;https://www.cnblogs.com/zk0533/p/5667122.html PHP内存管理机制 var_dump(memory_get_usage()); //获取内存 $a "laruence"; //定义一个变量 var_dump(memory_get_usage()); //定义变量之后获取内存 unset($a); …

139. Word Break

目录题目描述分析暴力搜索记忆化回溯动态规划题目描述 给定一个字符串数组作为词典&#xff0c;再给定一个字符串。判断一下用词典中的词是不是可以组成这个字符串。 注意&#xff1a;词典中的词可以使用多次&#xff1b;词典中不存在重复的词 例如&#xff1a; 输入: s “le…

spring学习(35):c名称空间注入

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

Element-UI 表单验证规则rules 配置参数说明

官方文档 : https://github.com/yiminghe/async-validator转载于:https://www.cnblogs.com/itstac/p/11063125.html

[能力提升][费曼学习法]学习方法

【背景知识】 费曼学习法 费曼学习法可以简化为四个单词&#xff1a;Concept &#xff08;概念&#xff09;、Teach &#xff08;教给别人&#xff09;、Review &#xff08;评价&#xff09;、Simplify &#xff08;简化&#xff09;。 第一步&#xff1a;把它教给一个小孩…

338. Counting Bits

输入&#xff1a;一个正整数n 输出&#xff1a;一个数组 规则&#xff1a;输出的数组分别表示0<x<n0<x<n0<x<n&#xff0c;范围内x的二进制表示中有多少个1。 示例&#xff1a;输入2&#xff0c;输出[0,1,1]。 分析&#xff1a;这道题目很直观。如果计算数字…

spring学习(36):注入简单类型

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

【剑指offer】【leetcode精选题集】【Java】剑指offer题解合集 更新中

Leetcode题集 [剑指offer][JAVA]面试题第[03]题[数组中的重复数字][HashSet] [剑指offer][JAVA]面试题第[04]题[二维数中的查找][数组] [剑指offer][JAVA]面试题第[05]题[替换空格][StringBuilder/Buffer] [剑指offer][JAVA]面试题第[06]题[从尾到头打印链表][栈][递归] [剑指…

41. First Missing Positive

输入&#xff1a;一个没有排序的正数数组nums 输出&#xff1a;在 nums数组中未出现的最小的正整数 规则&#xff1a;数组中的元素可能是负数&#xff0c;也可能重复。要求时间复杂度O(n)&#xff0c;空间复杂度O(1)。 分析&#xff1a;题目其实很简单&#xff0c;遍历一次放入…

spring学习(37):注入list类型

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

【小技巧】【牛客网】【JAVA】在线输入输出练习

【总结】 1. 一直输入模板 import java.util.*; public class Main{public static void main(String[] args) {Scanner sc new Scanner(System.in);while (sc.hasNext()) {//操作}} }2. 有组数或者输入个数 import java.util.Scanner; public class Main{public static voi…

你是一直认为count(1)比count(*)效率高么?

MySQL count(1) 真的比 count(*) 快么? 反正同事们都是这么说的&#xff0c;我也姑且觉得对吧&#xff0c;那么没有自己研究一下究竟&#xff1f;如果我告诉你他们一样&#xff0c;你信么&#xff1f; 有 Where 条件的 count&#xff0c;会根据扫码结果count 一下所有的行数&a…

169. Majority Element

输入&#xff1a;一个数组 输出&#xff1a;数组中的众数 规则&#xff1a;众数就是出现次数大于数组长度一半的元素。 分析&#xff1a;暴力&#xff0c;计算每个元素出现次数。 public int majorityElement(int[] nums) {for(int num : nums){int count 0;for(int num2 : nu…

spring学习(38):注入set类型

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

spring学习(39):注入map类型

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

NanUI文档 - 如何实现C#与Javascript的相互通信

NanUI文档目录 NanUI简介开始使用NanUI打包并使用内嵌式的HTML/CSS/JS资源使用网页来设计整个窗口如何实现C#与Javascript的相互通信如何处理NanUI中的下载过程 - DonwloadHandler的使用(待更新。。。)如何处理NanUI中的弹窗过程 - LifeSpanHandler的使用(待更新。。。)如何控制…