彻底学会系列:一、机器学习之线性回归(一)

1.基本概念(basic concept)

线性回归: 有监督学习的一种算法。主要关注多个因变量和一个目标变量之间的关系。
因变量: 影响目标变量的因素: X 1 , X 2 . . . X_1, X_2... X1,X2... ,连续值或离散值。
目标变量: 需要预测的值: t a r g e t target target y y y
因变量和目标变量之间的关系: 即模型,model

1.1连续值(continuous value)

连续值是可以在一个区间范围内取任意值的变量。例如,身高、体重、温度、时间等都是连续值
在这里插入图片描述

1.2离散值(discrete value)

离散值是只能取有限个数值或者可数值的变量。例如,学生人数、家庭成员数、考试分数等都是离散值
在这里插入图片描述

1.3简单线性回归(simple linear regression)

简单线性回归对应的公式: y = w x + b y = wx + b y=wx+b
y y y 是目标变量即未来要预测的值
x x x 是影响 y y y 的因素
w , b w,b w,b 是公式上的参数即要求的模型, w w w就是斜率, b b b就是截距
一元一次方程:
在这里插入图片描述
一元二次方程:
在这里插入图片描述

1.4多元线性回归(multiple linear regression)

现实生活中,往往影响结果 y 的因素不止一个,有可能是 n 个, X 1 , X 2 , X n . . . X_1,X_2,X_n... X1,X2,Xn...
多元线性回归公式:

y ^ = w 1 X 1 + w 2 X 2 . . . w n X n + b \hat y = w_1X_1 + w_2X_2 ... w_nX_n + b y^=w1X1+w2X2...wnXn+b

b是截距,也可以表示成:

y ^ = w 1 X 1 + w 2 X 2 . . . w n X n + w 0 \hat y = w_1X_1 + w_2X_2 ... w_nX_n + w_0 y^=w1X1+w2X2...wnXn+w0

使用向量来表示:

y ^ = W T X \hat y = W^TX y^=WTX

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression# 转化矩阵
x1 = np.random.randint(-150, 150, size=(300, 1))
x2 = np.random.randint(0, 300, size=(300, 1))# 斜率和截距,随机生成
w = np.random.randint(1, 5, size=2)
b = np.random.randint(1, 10, size=1)# 根据二元一次方程计算目标值y,并加上"噪声"
y = x1 * w[0] + x2 * w[1] + b + np.random.randn(300, 1)
fig = plt.figure(figsize=(9, 6))
ax = plt.subplot(111, projection='3d')
ax.scatter(x1, x2, y)  # 三维散点图
ax.view_init(elev=10, azim=-20)  # 调整视角
#
X = np.concatenate([x1, x2], axis=1)
model = LinearRegression()
model.fit(X, y)
w_ = model.coef_.reshape(-1)
b_ = model.intercept_print('一元一次方程真实的斜率和截距是:\n', w, b)
print('通过scikit-learn求解的斜率和截距是:\n', w_, b_)x = np.linspace(-150, 150, 100)
y = np.linspace(0, 300, 100)
z = x * w_[0] + y * w_[1] + b_
ax.plot(x, y, z, color='green')plt.show()

在这里插入图片描述

1.5 最优解(optimal solution)

y y y: 真实值(actual value)
y ^ \hat y y^: 预测值(predicted value), 根据因变量 X 1 , X 2 . . . X_1,X_2... X1,X2...和计算出来的参数w,b得到
e r r o r error error: 误差,预测值和真实值的差距( ε \varepsilon ε
最优解: 尽可能的找到一个模型使得整体的误差最小,通常叫做损失 Loss,通过损失函数Loss Function计算得到。

from sklearn.linear_model import LinearRegressionX = np.linspace(0, 10, num=30).reshape(-1, 1)
w = np.random.randint(1, 5, size=1)
b = np.random.randint(1, 10, size=1)y = X * w + b + np.random.randn(30, 1)
plt.scatter(X, y)model = LinearRegression()
model.fit(X, y)
w_ = model.coef_
b_ = model.intercept_print('一元一次方程真实的斜率和截距是:\n', w, b)
print('通过scikit-learn求解的斜率和截距是:\n', w_, b_)plt.plot(X, X.dot(w_) + b_, color='green')
plt.show()

在这里插入图片描述

1.6 高斯密度函数 (Gaussian Density Function):

高斯密度函数(Gaussian Density Function)也被称为正态分布或钟形曲线,是统计学中最常用的概率分布之一。其概率密度函数(Probability Density Function, PDF)的表达式如下:

f ( x ; μ , σ 2 ) = 1 2 π σ 2 exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) \ f(x; \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)  f(x;μ,σ2)=2πσ2 1exp(2σ2(xμ)2)

其中,(x) 是变量, μ \mu μ 是均值, σ 2 \sigma^2 σ2是方差。

  • μ \mu μ 表示分布的均值,决定了曲线的中心位置。
  • σ 2 \sigma^2 σ2 是方差,决定了曲线的宽度或分布的离散程度。标准差 σ \sigma σ是方差的平方根。

高斯密度函数的特征包括:

  1. 钟形曲线形状: 高斯分布呈现出典型的钟形曲线,对称分布在均值周围。

  2. 68-95-99.7 规则: 大约68% 的数据在均值的一个标准差范围内,95% 在两个标准差范围内,99.7% 在三个标准差范围内。

  3. 均值和方差唯一决定分布: 高斯分布的均值和方差是唯一确定整个分布的两个参数。
    在这里插入图片描述

1.8 最大似然估计(Maximum Likelihood Estimation)

是一种用于估计模型参数的统计方法。它基于概率论的观点,寻找使观测数据出现的概率最大的参数值。通常记为 L ( θ ∣ d a t a ) L(θ∣data) L(θdata),其中 θ 是待估计的参数,为了方便计算,通常取似然函数的对数,得到对数似然函数(Log-Likelihood),记为 ℓ ( θ ∣ data ) \ell(\theta | \text{data}) (θdata)

公式:
Likelihood Function:  L ( θ ∣ data ) = ∏ i = 1 n P ( X i ; θ ) \text{Likelihood Function: } L(\theta | \text{data}) = \prod_{i=1}^{n} P(X_i; \theta) Likelihood Function: L(θdata)=i=1nP(Xi;θ)
Log-Likelihood Function:  ℓ ( θ ∣ data ) = ∑ i = 1 n log ⁡ P ( X i ; θ ) \text{Log-Likelihood Function: } \ell(\theta | \text{data}) = \sum_{i=1}^{n} \log P(X_i; \theta) Log-Likelihood Function: (θdata)=i=1nlogP(Xi;θ)

其中, X i X_i Xi 表示每个观测数据点。

1.7 最小二乘法(Least Squares Method)

是一种用于拟合数据和估计模型参数的优化方法。其核心思想是通过最小化观测数据的残差平方和来找到最优的模型参数。这种方法常用于线性回归和其他模型拟合问题

J ( θ ) = 1 2 n ∑ i = 1 n ( h θ ( x i ) − y i ) 2 J(\theta) = \frac{1}{2n} \sum_{i=1}^{n} (h_\theta(x_i) - y_i)^2 J(θ)=2n1i=1n(hθ(xi)yi)2

其中, h θ ( x i ) h_\theta(x_i) hθ(xi) 是模型对样本 x i x_i xi 的预测 y ^ \hat y y^ y i y_i yi 是实际观测值。

1.8正规方程 (Normal Equations)

正规方程是用于求解线性回归模型参数的一种解析方法(解方程的一种方法)

θ = ( X T X ) − 1 X T y \theta = (X^T X)^{-1} X^T y θ=(XTX)1XTy

其中, ( X T X ) − 1 (X^T X)^{-1} (XTX)1 是矩阵 X T X X^T X XTX 的逆矩阵, X T X^T XT X X X的转置矩阵, y y y 是实际观测值。

1.9均方误差(Mean Squared Error, MSE)

MSE是一个用于衡量模型预测与实际观测值之间的差异的指标。对于线性回归模型,MSE定义如下:

MSE = 1 n ∑ i = 1 n ( h θ ( x i ) − y i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (h_\theta(x_i) - y_i)^2 MSE=n1i=1n(hθ(xi)yi)2

其中, h θ ( x i ) h_\theta(x_i) hθ(xi) 是模型对第 i 个样本的预测值, y i y_i yi是实际观测值,n 是样本数量。MSE计算的是平方误差的平均值,其值越小,表示模型对数据的拟合程度越好。

总结:

均方误差 (MSE):

  • 用于度量模型预测值与实际观测值之间的平方差的平均值。
  • 是一种评估模型性能的指标,越小越好。

最小二乘法 (Least Squares Method):

  • 是一种用于估计线性回归模型参数的方法。
  • 通过最小化均方误差或其他损失函数来找到最优参数。
  • 目标是找到参数,使得模型对观测值的预测误差最小。

通俗理解:
MSE是评估模型好不好,预测准不准用的。最小二乘法是求解方程参数 w 1 , w 2 . . . w_1,w_2... w1,w2...用的

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

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

相关文章

JAVA毕业设计126—基于Java+Springboot+Vue的二手交易商城管理系统(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的二手交易商城管理系统(源代码数据库)126 一、系统介绍 本项目前后端分离,本系统分为管理员、用户两种角色 1、用户: 注册、登录、…

docker更换镜像源

添加的镜像源 {"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com", "https://reg-mirror.qiniu.com/", "https://docker.mirrors.ustc.edu.cn"] }docker更换镜像源之后一定要重启守卫 systemctl daemon-reloaddock…

docker-学习-5

docker-学习第五天 docker-学习第五天1. 昨天的练习回顾1.1. 练习11.2. 练习2 2. 命令2.1. 看镜像的详细信息 3. Dockerfile指令3.1. 常见的指令3.2. ENTRYPOINT和CMD的区别3.3. RUN中的set指令 4. 镜像的原理4.1. 为什么 Docker 镜像要采用这种分层结构呢?4.2. doc…

JavaScript ATM取款机

①:循环的时候,需要反复提示输入框,所以提示框写到循环里面 ②:退出的条件是用户输入了 4,如果是4,则结束循环,不在弹窗 ③:提前准备一个金额预先存储一个数额 ④:取钱…

Servlet服务器端的小程序

文章目录 Servlet概述快速入门Servlet 中方法的生命周期Servlet 的体系结构GenericServletHttpServlet Servlet 3.0以后Servlet 相关配置 案例Servlet xml配置web.xmlMyServlet Servlet 注解配置 Servlet 概述 Servlet applet 运行在服务器端的小程序,Servlet 就是…

挑战杯 python+opencv+机器学习车牌识别

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于机器学习的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:4分工作量:4分创新点:3分 该项目较为新颖,适…

【MySQL】在 Centos7 环境安装 MySQL -- 详细完整教程

说明: 安装与卸载中,用户全部切换成为 root,一旦安装,普通用户就能使用。 一、卸载内置环境 1、卸载不要的环境 [rootVM-8-5-centos ~]$ ps ajx | grep mariadb # 先检查是否有mariadb存在 13134 14844 14843 13134 pts/0 14843…

NLP_Bag-Of-Words(词袋模型)

文章目录 词袋模型用词袋模型计算文本相似度1.构建实验语料库2.给句子分词3.创建词汇表4.生成词袋表示5.计算余弦相似度6.可视化余弦相似度 词袋模型小结 词袋模型 词袋模型是一种简单的文本表示方法,也是自然语言处理的一个经典模型。它将文本中的词看作一个个独立…

Java Collection 集合体系的使用

Java Collection 集合体系的使用 package com.zhong.collection;import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashSet;public class CollectionDemo {public static void main(String[] args) {// ArrayList 有序 可…

C语言贪吃蛇详解

个人简介:双非大二学生 个人博客:Monodye 今日鸡汤:人生就像一盒巧克力,你永远不知道下一块是什么味的 C语言基础刷题:牛客网在线编程_语法篇_基础语法 (nowcoder.com) 一.贪吃蛇游戏背景 贪吃蛇是久负盛名的游戏&…

###C语言程序设计-----C语言学习(9)#函数基础

前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。 一. 基础知识的学习 1.函数的定义 函数是一个完成特定工作的独立程序模块&…

GPT-1, GPT-2, GPT-3, GPT-3.5, GPT-4论文内容解读

目录 1 ChatGPT概述1.1 what is chatGPT1.2 How does ChatGPT work1.3 The applications of ChatGPT1.3 The limitations of ChatGPT 2 算法原理2.1 GPT-12.1.1 Unsupervised pre-training2.1.2 Supervised fine-tuning2.1.3 语料2.1.4 分析 2.2 GPT-22.3 GPT-32.4 InstructGPT…

如何使用MCSM搭建我的世界Java版服务器并实现远程联机游戏

文章目录 1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 本教程主要介…

面试题:SpringBoot 在打包部署的时候打包成 jar 和 war 有什么不同?

文章目录 前言jar包和war包的区别一、打包成jar二、打包成war包形式 前言 首先给大家来讲一个我们遇到的一个奇怪的问题: 我的一个springboot项目,用mvn install打包成jar,换一台有jdk的机器就直接可以用java -jar 项目名.jar的方式运行,没…

Unable to access SFTP sub-system, operation failed

解决方法: 1. 编辑 /etc/ssh/sshd_config 配置文件 2. 重启SSHD服务 service sshd restart 还有一种特殊情况,也是本文重点要介绍的: 当启用sftp-server后,使用FlashFXP等工具传输文件的时候,仍然失败,…

『运维备忘录』之 Vim 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大…

MySQL进阶45讲【10】MySQL为什么有时候会选错索引?

1 前言 前面我们介绍过索引,在MySQL中一张表其实是可以支持多个索引的。但是,写SQL语句的时候,并没有主动指定使用哪个索引。也就是说,使用哪个索引是由MySQL来确定的。 大家有没有碰到过这种情况,一条本来可以执行得…

vue2 自定义指令 v-highlight 文本高亮显示分享

简单分享一个文本高亮显示的自定义指令,主要分两部分: 1、代码实现:在 main.js 文件中添加一个自定义指令,实现搜索时文本高亮显示,代码如下: const highlightText (el, searchText) > {const textCo…

Linux--- vim详解

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 “学如逆水行舟&#xff0…

大数据企业应用场景分析

目录 一、企业分析 1.1 企业领域维度分析 1.2 技术服务型维度分析 1.3 细分领域维度分析 二、大数据应用场景 2.1 数据分析 2.2 智能推荐 2.3 产品/流程优化 2.4 异常监测 2.5 智能管理 2.6 人工智能和机器学习 三、总结 前言:想讲清楚大数据应用对企业…