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

11.18 机器学习-线性回归(重点)-最小二乘法

# 分类对离散型结果的数据进行预测,线性回归对连续性结果的数据

# 连续性数据和离散型的区别

# 标称数据的特点: 离散 不能数学运算

# 1. **无序性**:标称数据的各个类别之间没有固有的顺序关系。例如,“性别”可以分为“男”和“女”,但“男”和“女”之间不存在大小、高低等顺序关系。

# 2. **非数值性**:标称数据不能进行数学运算,因为它们没有数值含义。你不能对“颜色”或“品牌”这样的标称数据进行加减乘除。

# 3. **多样性**:标称数据可以有很多不同的类别,具体取决于研究的主题或数据收集的目的。

# 4. 比如西瓜的颜色,纹理,敲击声响这些数据就属于标称型数据,适用于西瓜分类

# 连续型数据的特点包括: 能数学运算

# 1. **可测量性**:连续型数据通常来源于物理测量,如长度、重量、温度、时间等,这些量是可以精确测量的。

# 2. **无限可分性**:连续型数据的取值范围理论上是无限可分的,可以无限精确地细分。例如,你可以测量一个物体的长度为2.5米,也可以更精确地测量为2.53米,甚至2.5376米,等等。

# 3. **数值运算**:连续型数据可以进行数学运算,如加、减、乘、除以及求平均值、中位数、标准差等统计量。

# 在数据分析中,连续型数据的处理和分析方式非常丰富,常见的有:

# - **描述性统计**:计算均值、中位数、众数、标准差、四分位数等,以了解数据的中心趋势和分布情况。

# - **概率分布**:通过拟合概率分布模型,如正态分布、指数分布、伽玛分布等,来理解数据的随机特性。

# - **图形表示**:使用直方图、密度图、箱线图、散点图等来可视化数据的分布和潜在的模式。

# - **回归分析**:建立连续型变量之间的数学关系,预测一个或多个自变量如何影响因变量。

# - 比如西瓜的甜度,大小,价格这些数据就属于连续型数据,可以用于做回归

# 回归就是求回归方程的回归系数的过程

# 说到回归,一般都是指线性回归(linear regression)。线性回归意味着可以将输入项分别乘以一些常量,再将结果加起来得到输出。

# 线性回归是机器学习中一种**有监督学习**的算法,**回归问题**主要关注的是**因变量**(需要预测的值)和一个或多个数值型的**自变量**(预测变量)之间的关系.

# 损失函数

# 一个坐标系中有一个点集 拟合一条直线 去表示这些点 这条线这么取呢?

# 均方差

# 点到线的竖直方向的距离 的平方和 再平均 最小时 这条线最好 估计值与真实值的差距为误差  每个点的误差加起来为总误差 为了避免-号 给每个点的误差平均平方 再加起来

# 平均误差 就是每个点的  预测值-真实值的平方的和在/n 这个就是损失函数

# 平均误差就是损失函数就是均方差

# 目前先令 拟合的线都经过原点 即 y=wx+b b=0

# 已经知道了 一个数据集 列出他的损失函数

# 带入全部的值得到了一个损失值与w的一元2次方程 求损失函数的导数=0是w的值 w的值再带回去 即y的值最小时w的值

# 多参数回归

# 就是不止wx 可能还有其他的变量 多加了很多个未知数

# 均方差为 求y最小的时候 全w1w2w3....的值

# y=(w1x1+...+wnxn-y真)^2+....+.../n

# 用高斯最小二乘法求

# 矩阵的乘法

# 矩阵的除法 A矩阵*A矩阵的转置 = 一个方阵 方阵可以求逆矩阵  方针乘逆矩阵为 单位矩阵 然后矩阵乘单位矩阵为自己 这样变换代替除法

# 链式求导 复合函数求导

#

# API

# sklearn.linear_model.LinearRegression()

# 功能: 普通最小二乘法线性回归, 权重和偏置是直接算出来的,对于数量大的不适用,因为计算量太大,计算量太大的适合使用递度下降法

# 参数:

# fit_intercept bool, default=True

#   是否计算此模型的截距(偏置)。如果设置为False,则在计算中将不使用截距(即,数据应中心化)。

# 属性:    

# coef_ 回归后的权重系数 即W

# intercept_ 偏置 即b

# print("权重系数为:\n", estimator.coef_)  #权重系数与特征数一定是同样的个数。

# print("偏置为:\n", estimator.intercept_)

from sklearn.linear_model import LinearRegression

import numpy as np

def linear_regression():

    model1=LinearRegression(fit_intercept=False) # fit_intercept 是否计算偏置b 它计算完之后有两个重要的属性 系数coef_ 权重即W  截距intercept_偏置 即b

    data=np.array([[0,14,8,0,5,-2,9,-3,399],

                [-4,10,6,4,-14,-2,-14,8,-144],

                [-1,-6,5,-12,3,-3,2,-2,30],

                [5,-2,3,10,5,11,4,-8,126],

                [-15,-15,-8,-15,7,-4,-12,2,-395],

                [11,-10,-2,4,3,-9,-6,7,-87],

                [-14,0,4,-3,5,10,13,7,422],

                [-3,-7,-2,-8,0,-6,-5,-9,-309]])

    x=data[:,0:8]

    y=data[:,8:]

    model1.fit(x,y)

    x_new=[[11,14,8,10,5,10,8,1]] # 定义一个新的数据拿去预测

    y_pre=model1.predict(x_new)

    print(y_pre)

    # print(model1.intercept_)

if __name__=="__main__":

    linear_regression()

    pass


http://www.kler.cn/a/401014.html

相关文章:

  • 《探索 C++:一门强大且多功能的编程语言》
  • 什么是 C++ 中的友元函数和友元类?友元的作用是什么?有什么注意事项?
  • 人工智能:塑造未来的工作与生活
  • MATLAB绘制克莱因瓶
  • 3D Streaming 在线互动展示系统:NVIDIA RTX 4090 加速实时渲染行业数字化转型
  • ChatGPT学术专用版,一键润色纠错+中英互译+批量翻译PDF
  • (二)PyTorch简要教学
  • 莱特币转型MEME币:背后隐含的加密市场现象
  • QT基本绘图
  • k8s 1.26安装
  • 集群聊天服务器(11)客户端开发
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04
  • 小程序-基于java+SpringBoot+Vue的实习生管理系统设计与实现
  • 网络安全等级测评师
  • vue3的setup、ref、reactive
  • RDD转换算子:join方面的算子(leftOuterJoin、rightOuterJoin、fullOuterJoin)
  • Spring Boot汽车资讯:驾驭信息新浪潮
  • 【网络安全 | 漏洞挖掘】在重置密码流程利用请求头实现ATO
  • 软件测试丨Java常用库
  • webgis与纯前端相比如何?
  • 网络传输:网卡、IP、网关、子网掩码、MAC、ARP、路由器、NAT、交换机
  • 【pytest】pytest注解使用指南
  • AI 技术在旅游和酒店行业的应用前景
  • 如何利用WebSockets实现高效的实时通信应用
  • docker 安装之 windows安装
  • MySQL深度剖析-索引原理由浅入深