Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >线性回归

线性回归

作者头像
冬夜先生
发布于 2021-12-29 11:17:02
发布于 2021-12-29 11:17:02
44600
代码可运行
举报
文章被收录于专栏:csicocsico
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
统计学习方法
算法(线性回归)
策略(损失函数)
优化(找到最小损失对于的W值)

线性回归
寻找一种能预测的趋势

线性关系
二维:直线关系
三维:特征,目标值,平面当中

线性关系定义
h(w)=w0+w1x1+w2x2+…
其中w,x为矩阵:

w表示权重,b表示偏置顶

损失函数(误差大小:只有一个最小值)
yi为第i个训练样本的真实值
hw(xi)为第i个训练样本特征值组合的预测函数
总损失的定义:(最小二乘法)
预测结果-真实结果的平方


寻找W方法
最小二乘法之梯度下降 (数据十分庞大适合用)
最小二乘法之正规方程  (数据简单适合用 <1W数据时使用  但是不能解决过拟合问题)
过拟合表示:训练集表现良好,测试集表现不好

最小二乘法之梯度下降
理解:沿着损失函数下降的方向找,最后找到山谷的最低点,然后更新W值 
学习速率:指定下降的速度
使用:面对训练数据规模十分庞大的任务 适合各种类型的模型

注意:特征值和目标值都需要做标准化处理

API
# 正规方程
from sklearn.linear_model import LinearRegression 
# 梯度下降
from sklearn.linear_model import SGDRegressor


案例
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import SGDRegressor
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn import datasets


# 提取数据
df = datasets.load_boston()


# 数据切割
x_train, x_test, y_train, y_test = train_test_split(df.data, df.target, test_size=0.25)


# 下面均方误差 需要用到为标准化之前的数据
mse_test = y_test


# 给特征值标准化
std_x = StandardScaler()
x_train = std_x.fit_transform(x_train)
x_test = std_x.transform(x_test)


# 给目标值标准化
std_y = StandardScaler()
y_train = std_y.fit_transform(y_train.reshape(-1,1))
y_test = std_y.transform(y_test.reshape(-1,1)[0:1])

正规方程
# 正规方程
lr = LinearRegression()
lr.fit(x_train,y_train)
# 预测结果返回的是二维数组 所以不需要转换
lr_p = std_y.inverse_transform(lr.predict(x_test))  # std_y.inverse_transform() 转换数据
print(lr.coef_) # 显示回归系数 即W的值
print(lr_p.round(2).reshape(1,-1)[0:1][0])
正规方程均方误差
# 计算正规方程均方误差
# 第一个参数为真实数据,第二个参数为预测数据
# 需要填入标准化之前的值
mse_lr = mean_squared_error(mse_test,lr_p)
print(mse_lr)

梯度下降
# 梯度下降
sgd = SGDRegressor()
sgd.fit(x_train,y_train)
# std_y.inverse_transform() 转换数据
# reshape(-1,1) 梯度下降预测结果返回的是一维数组  需要转换
sdg_p = std_y.inverse_transform(sgd.predict(x_test).reshape(-1,1))
print(sgd.coef_) # 显示回归系数 即W的值
sdg_p = sdg_p.round(2).reshape(1,-1)[0:1][0]

梯度下降均方误差
# 计算梯度下降均方误差
# 第一个参数为真实数据,第二个参数为预测数据
# 需要填入标准化之前的值
mse_sdg = mean_squared_error(mse_test,sdg_p)
print(mse_sdg)

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring Boot Web 自定义注解篇(注解很简单很好用)
自从spring 4.0 开放以后,可以添加很多新特性的注解了。使用系统定义好的注解可以大大方便的提高开发的效率。
爱撸猫的杰
2019/04/01
9090
Spring Boot Web 自定义注解篇(注解很简单很好用)
Spring 完美配置跨域请求
在SpringBoot2.0 上的跨域 用以下代码配置 即可完美解决你的前后端跨域请求问题 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBas
云扬四海
2019/06/05
7160
springcloud zuul的跨域问题
正常情况下,跨域是这样的:  1. 微服务配置跨域+zuul不配置=有跨域问题  2. 微服务配置+zuul配置=有跨域问题  3. 微服务不配置+zuul不配置=有跨域问题  4. 微服务不配置+zuul配置=ok 然而云环境中每个服务自己有跨域解决方案,而网关需要做最外层的跨域解决方案.如果服务已有跨域配置网关也有,会出现*多次配置问题。
似水的流年
2019/12/07
2.2K0
5年经验程序员被问:前后端分离后,如何解决跨域问题?
做Web开发,经常会遇到跨域问题,小伙伴们在面试中,也经常被问到。这不,又有一位工作3年的小伙伴被问到这样一道题,说前后端分离后,如何解决跨域问题?
Tom弹架构
2023/09/07
2.1K0
5年经验程序员被问:前后端分离后,如何解决跨域问题?
三.Springboot配置跨域
     使用过滤器和拦截器方法来统一配置跨域请求性能是差不多,方便的地方是在这一个方法统一配置之后,就可以方便的使用后台方法了,但是也有个缺点,如果你不是设置为私有的方法,在controller里能够看到的代码在服务器外部都可以被访问到。
十分钟空间
2022/08/17
4260
Spring Boot 实现跨域的 5 种方式,总有一种适合你,建议收藏!!
点击关注公众号,Java干货及时送达 一、为什么会出现跨域问题 出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。 同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port) 二、什么是
Java技术栈
2022/07/26
4.8K0
Spring Boot 实现跨域的 5 种方式,总有一种适合你,建议收藏!!
SpringBoot中遇到跨域了怎么办???
一个URL的组成: 协议 + 域名(子域名 + 主域名) + 端口号 + 资源地址 http://www.baidu.com:8080/
Java宝典
2021/01/14
3330
SpringBoot中遇到跨域了怎么办???
SpringBoot系列(七) 分分钟学会SpringBoot多种跨域解决方式​
 跨域是指不同域名之间的相互访问,这是由浏览器的同源策略决定的,是浏览器对JavaScript施加的安全措施,防止恶意文件破坏。
全栈学习笔记
2022/03/31
7410
SpringBoot系列(七) 分分钟学会SpringBoot多种跨域解决方式​
“Ajax请求后台,后台两次session不一致”问题解决
请求后台验证码接口,获取验证码和验证码校验的接口,校验时总是获取不到数值,就是两次的SESSIONID不一样
治电小白菜
2020/08/25
2.1K0
“Ajax请求后台,后台两次session不一致”问题解决
SpringBoot跨域及三种解决方式
我们先了解下【域】的定义:协议 + 域名 + 端口。三者完全相同则为同域,反之有其一不同均为不同域。那么,什么是跨域请求?当前【发起请求】的域和【请求指向】的域属于不同域时,该次请求称之为跨域请求。简单说A应用只能访问A应用后台传来数据,B应用只能访问B应用后台传来的数据,如果A应用用Ajax获取数据时的URL地址中的协议、端口、域名其中有一个和B应用对应的话,则是A应用跨域了想获取B应用数据,是不允许的。在谈跨域之前,我们先来看看浏览器的同源策略。
崩天的勾玉
2021/12/24
24.1K1
SpringBoot跨域及三种解决方式
解决跨域问题的8种方法,含网关、Nginx和SpringBoot~
跨域问题是浏览器为了保护用户的信息安全,实施了同源策略(Same-Origin Policy),即只允许页面请求同源(相同协议、域名和端口)的资源,当 JavaScript 发起的请求跨越了同源策略,即请求的目标与当前页面的域名、端口、协议不一致时,浏览器会阻止请求的发送或接收。
磊哥
2024/01/25
6.1K0
解决跨域问题的8种方法,含网关、Nginx和SpringBoot~
SpringBoot解决ajax跨域问题
一、第一种方式: 1、编写一个支持跨域请求的 Configuration import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; /**
hbbliyong
2018/03/29
1.4K0
SpringBoot 中实现跨域的5种方式
出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。2021Java面试宝典
程序员白楠楠
2021/02/19
4.2K0
springboot解决跨域问题的方式
由于目前多数的项目都是采用前后端分离的设计方式,所以不可避免的就要在后端系统上设置跨域配置,否则前端调用接口时就很容易报跨域的错误,这里总结两种springboot的跨域配置方式
一缕82年的清风
2021/12/06
4480
Spring Boot 2.x(九):遇到跨域不用慌
只要协议,子域名,主域名,端口号这四项组成部分中有一项不同,就可以认为是不同的域,不同的域之间互相访问资源,就被称之为跨域。
山禾说
2019/01/21
8550
CorsConfig 跨域 初认识
跨域请求的流程: 浏览器 先会给服务器发送一个 预检请求 ,服务器 返回同意不同意 ,同意的话 浏览器 在发送真实的请求 ,服务再返回响应成功是否
默 语
2024/11/20
780
CorsConfig 跨域 初认识
java后端解决跨域问题
在SpringBoot2.0 上的跨域 用以下代码配置 即可完美解决你的前后端跨域请求问题
全栈程序员站长
2022/08/04
8670
spring security authorization server token端点配置跨域访问
在网页端跨域访问spring-security-oauth2搭建的授权服务器,以ClientCredentials授权模式获取token,发生跨域请求失败。
路过君
2021/12/07
9080
SpringBoot跨域配置「建议收藏」
简单而言,跨域请求就是当一台服务器资源从另一台服务器(不同 的域名或者端口)请求一个资源或者接口,就会发起一个跨域 HTTP 请求。举个简单的例子,从http://www.baidu.com,发送一个 Ajax 请求,请求地址是 http://www.taobao.com下面的一个接口,这就是发起了一个跨域请求,在不做任何处理的情况下,显然当前跨域请求是无法被成功请求,因为浏览器基于同源策略会对跨域请求做一定的限制。
全栈程序员站长
2022/09/13
8770
SpringBoot教程(七) | SpringBoot解决跨域问题
上篇文章我们介绍了SpringBoot的拦截器的写法,其中有一个比较重要的步骤,就是把我们写好的拦截器注册到Spring的一个配置类中,这个类是实现了WebMvcConfigurer 接口,这个类很重要,因为这个类中除了可以注册拦截以外,还可以配置很多内容。今天我们来讲解一下SpringBoot如何解决跨域问题。 先来解释一下什么是跨域问题。
一缕82年的清风
2022/04/08
9150
SpringBoot教程(七) | SpringBoot解决跨域问题
推荐阅读
相关推荐
Spring Boot Web 自定义注解篇(注解很简单很好用)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验