当前位置: 首页 > news >正文

【P27 回归算法及应用实践】有监督的机器学习、分类与回归、一元线性回归、最小二乘法、多元回归与梯度下降、学习率

回归算法及应用实践

  • 1 相关与回归
    • 1.1 有监督的机器学习过程
    • 1.2 分类与回归
    • 1.3 一个简单的案例
    • 1.4 回归分析与相关分析
    • 1.5 相关分析
  • 2 一元线性回归和最小二乘法
    • 2.1 回归问题
    • 2.2 一元线性回归
    • 2.3 最小二乘法
    • 2.4 实战 可支配收入与销售量
      • 2.4.1 为什么要用reshape(-1,1) ?
      • 2.4.2 本节完整代码
  • 3 多元回归与梯度下降
    • 3.1 简单例子
    • 3.2 多元线性回归
    • 3.3 梯度下降法
    • 3.4 学习率
    • 3.5 梯度下降法 求解2.4例子:取暖费
  • 4 回归算法及应用 完整代码

1 相关与回归

在这里插入图片描述

1.1 有监督的机器学习过程

在这里插入图片描述

1.2 分类与回归

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3 一个简单的案例

在这里插入图片描述

1.4 回归分析与相关分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.5 相关分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.6 实例
在这里插入图片描述
在这里插入图片描述

import numpy as np 
import pandas as pdinvestment = [20,40,20,30,10,10,20,20,20,30]
production = [30,60,40,60,30,40,40,50,30,70]df = pd.DataFrame({'investment':np.array(investment),'production':np.array(production)})
print(df)
print(df.corr())

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
字母u是指 unicode

A = [250,360,165,43,92,200,355,290,230,120,73,205,400,320,72,272,94,190,235,139]
B = [35,29,36,60,65,30,10,70,21,55,54,48,20,39,60,20,58,40,27,30]
C = [3,4,7,6,5,5,6,10,9,2,12,5,5,4,8,5,7,8,9,7]
D = [6,10,3,9,6,5,7,10,11,5,4,1,15,7,6,8,3,11,8,5]df = pd.DataFrame({'取暖费':np.array(A),'温度':np.array(B),'厚度':np.array(C),'年份':np.array(D)})
print(df)
print(df.corr()) # ABCD全部之间的相互和关系
print(df.corr()[u'温度'])# 温度和ABCD之间的关系
print(df[u'取暖费'].corr(df[u'温度']))  #取暖的费和温度之间的关系

在这里插入图片描述
在这里插入图片描述

2 一元线性回归和最小二乘法

2.1 回归问题

在这里插入图片描述

2.2 一元线性回归

在这里插入图片描述
在这里插入图片描述

2.3 最小二乘法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4 实战 可支配收入与销售量

在这里插入图片描述

X = [522,539,577,613,644,670,695,713,741,769,801,855,842,860,890,920]
Y = [6700,7136,7658,7784,8108,7583,8002,8442,8158,8683,9317,9675,8542,8584,9612,9719]
x = np.array(X).reshape(-1,1)#reshape(行数,列数)常用来更改数据的行列数目,reshape(-1,1)表示(任意行,1列)
y = np.array(Y).reshape(-1,1)# reshape(-1,1)表示(任意行,1列) reshape(1,-1)表示(1行,任意列)
# 相关性 案例三
X = [522,539,577,613,644,670,695,713,741,769,801,855,842,860,890,920]
Y = [6700,7136,7658,7784,8108,7583,8002,8442,8158,8683,9317,9675,8542,8584,9612,9719]
x = np.array(X).reshape(-1,1)#reshape(行数,列数)常用来更改数据的行列数目,reshape(-1,1)表示(任意行,1列)
y = np.array(Y).reshape(-1,1)# reshape(-1,1)表示(任意行,1列) reshape(1,-1)表示(1行,任意列)model = linear_model.LinearRegression() #线性回归函数
model.fit(x,y)  # fit函数主要用来计算一组数据的特征值,用于训练
print(model.coef_) #b1
print(model.intercept_)# b0

在这里插入图片描述

在这里插入图片描述

2.4.1 为什么要用reshape(-1,1) ?

reshape(1,-1)什么意思?

reshape(行数,列数)常用来更改数据的行列数目
一般可用于numpy的array和ndarray, pandas的dataframe和series(series需要先用series.values把对象转化成ndarray结构)

print(X)
print(x)

在这里插入图片描述

x = np.array(X)print(X)
print(x)

在这里插入图片描述

X = [522,539,577,613,644,670,695,713,741,769,801,855,842,860,890,920]
print(X)x = np.array(X)
print(x.shape)
print(x)x = np.array(X).reshape(-1,1)#reshape(行数,列数)常用来更改数据的行列数目,reshape(-1,1)表示(任意行,1列)
print(x.shape)
print(x)

在这里插入图片描述

2.4.2 本节完整代码

import numpy as np 
import pandas as pd
from sklearn import linear_model# 相关性 案例一
investment = [20,40,20,30,10,10,20,20,20,30]
production = [30,60,40,60,30,40,40,50,30,70]df = pd.DataFrame({'investment':np.array(investment),'production':np.array(production)})
print(df)
print(df.corr())# 相关性 案例二
A = [250,360,165,43,92,200,355,290,230,120,73,205,400,320,72,272,94,190,235,139]
B = [35,29,36,60,65,30,10,70,21,55,54,48,20,39,60,20,58,40,27,30]
C = [3,4,7,6,5,5,6,10,9,2,12,5,5,4,8,5,7,8,9,7]
D = [6,10,3,9,6,5,7,10,11,5,4,1,15,7,6,8,3,11,8,5]df = pd.DataFrame({'取暖费':np.array(A),'温度':np.array(B),'厚度':np.array(C),'年份':np.array(D)})
print(df)
print(df.corr()) # ABCD全部之间的相互和关系
print(df.corr()[u'温度'])# 温度和ABCD之间的关系
print(df[u'取暖费'].corr(df[u'温度']))  #取暖的费和温度之间的关系# 相关性 案例三
X = [522,539,577,613,644,670,695,713,741,769,801,855,842,860,890,920]
Y = [6700,7136,7658,7784,8108,7583,8002,8442,8158,8683,9317,9675,8542,8584,9612,9719]
x = np.array(X).reshape(-1,1)#reshape(行数,列数)常用来更改数据的行列数目,reshape(-1,1)表示(任意行,1列)
y = np.array(Y).reshape(-1,1)# reshape(-1,1)表示(任意行,1列) reshape(1,-1)表示(1行,任意列)model = linear_model.LinearRegression() #线性回归函数
model.fit(x,y)  # fit函数主要用来计算一组数据的特征值,用于训练
print(model.coef_) #b1
print(model.intercept_)# b0

3 多元回归与梯度下降

3.1 简单例子

在这里插入图片描述
在这里插入图片描述

3.2 多元线性回归

在这里插入图片描述
在这里插入图片描述

3.3 梯度下降法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4 学习率

通常一开始,学习率步长大一点,到后面越来越接近了,学习率调小
在这里插入图片描述

3.5 梯度下降法 求解2.4例子:取暖费

A = [250,360,165,43,92,200,355,290,230,120,73,205,400,320,72,272,94,190,235,139]
B = [35,29,36,60,65,30,10,70,21,55,54,48,20,39,60,20,58,40,27,30]
C = [3,4,7,6,5,5,6,10,9,2,12,5,5,4,8,5,7,8,9,7]
D = [6,10,3,9,6,5,7,10,11,5,4,1,15,7,6,8,3,11,8,5]## 梯度下降发 求解案例三:取暖费
x = np.array([B,C,D]).T
y = np.array(A).reshape(-1,1)
model = linear_model.LinearRegression()
model.fit(x,y) #训练训练模型#
print(model.coef_)
print(model.intercept_)#test
test = np.array([30,5,10]).reshape(1,3)
print('取暖费:',model.predict(test))

在这里插入图片描述

4 回归算法及应用 完整代码

import numpy as np 
import pandas as pd
from sklearn import linear_model## 相关性 案例一:投入和产出
investment = [20,40,20,30,10,10,20,20,20,30]
production = [30,60,40,60,30,40,40,50,30,70]df = pd.DataFrame({'investment':np.array(investment),'production':np.array(production)})
print(df)
print(df.corr())## 相关性 案例二:取暖费
A = [250,360,165,43,92,200,355,290,230,120,73,205,400,320,72,272,94,190,235,139]
B = [35,29,36,60,65,30,10,70,21,55,54,48,20,39,60,20,58,40,27,30]
C = [3,4,7,6,5,5,6,10,9,2,12,5,5,4,8,5,7,8,9,7]
D = [6,10,3,9,6,5,7,10,11,5,4,1,15,7,6,8,3,11,8,5]df = pd.DataFrame({'取暖费':np.array(A),'温度':np.array(B),'厚度':np.array(C),'年份':np.array(D)})
print(df)
print(df.corr()) # ABCD全部之间的相互和关系
print(df.corr()[u'温度'])# 温度和ABCD之间的关系
print(df[u'取暖费'].corr(df[u'温度']))  #取暖的费和温度之间的关系## 相关性 案例三:可支配收入与销售量
X = [522,539,577,613,644,670,695,713,741,769,801,855,842,860,890,920]
Y = [6700,7136,7658,7784,8108,7583,8002,8442,8158,8683,9317,9675,8542,8584,9612,9719]
x = np.array(X).reshape(-1,1)#reshape(行数,列数)常用来更改数据的行列数目,reshape(-1,1)表示(任意行,1列)
y = np.array(Y).reshape(-1,1)# reshape(-1,1)表示(任意行,1列) reshape(1,-1)表示(1行,任意列)model = linear_model.LinearRegression() #线性回归函数
model.fit(x,y)  # fit函数主要用来计算一组数据的特征值,用于训练训练模型
print(model.coef_) #b1
print(model.intercept_)# b0## 梯度下降发 求解案例三:取暖费
x = np.array([B,C,D]).T
y = np.array(A).reshape(-1,1)
model = linear_model.LinearRegression()
model.fit(x,y) #训练训练模型#
print(model.coef_)
print(model.intercept_)#test
test = np.array([30,5,10]).reshape(1,3)
print('取暖费:',model.predict(test))
http://www.dtcms.com/a/577637.html

相关文章:

  • Spring Boot 如何支持国际化
  • Excel斜线表头怎么做?合并单元格后添加对角线+两侧输入文字,新手也能秒会!
  • ara::core——Adaptive AUTOSAR
  • 大语言模型训推一体机:AI算力革命的“新引擎”,2031年市场规模突破123亿的黄金赛道
  • 百度网站降级的原因计算机一级考试网站怎么做
  • 复数的矩阵表示 | 欧拉恒等式的复数矩阵变换
  • Linux 系统调用在 ARM 上的实现与工作机制
  • 红松小课如何成为激活老年人生活的新引擎?从兴趣学习到价值重塑!
  • 怎么才能去定义自己的生活呢?
  • 嘉兴云建站模板重庆网站备案大厅
  • Java并发实战:ConcurrentHashMap原理与常见面试题
  • 前端FAQ: 在React中,如何优化⼤列表的渲染性能?
  • 华硕ROC奥创中心Armoury Crate服务崩溃解决办法
  • 工业软件国产替代:突破“卡脖子”,筑牢制造业升级基石
  • 大专生就业是否存在学历歧视?
  • Java 8 Stream API 进阶实战:从基础到业务落地的全解析​
  • Java117 最长公共前缀
  • 共聚焦显微镜(LSCM)的针孔尺寸标准解析
  • 长春网站优化方式投票链接制作
  • 酷炫的网站欢迎页面wordpress图片分页
  • 深入理解 flex-shrink:CSS 弹性布局中的 “收缩” 智慧
  • React+Tailwind CSS+Shadcn UI
  • 神经网络—— 优化
  • 有名的网站制怎样才能把网站宣传做的更好
  • MIPI DSI和MIPI Tx IP 的建立
  • 基于时间的 SQL 盲注-延时判断和基于布尔的 SQL 盲注
  • 个人微信公众号怎么做微网站seo完整教程视频教程
  • C++_chapter10_C++IO流类库
  • 树莓派5-docker里的ros常用命令
  • 网站地图1 500 怎么做网站推广方案及预算