机器学习4

news2024/11/19 6:27:07

九、线性回归

1、概念       

        假设存在多个点,需要使用一条线来保障尽量拟合这些点,寻找这条线就叫回归。

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

2、损失函数

        存在数据:[[4.2, 3.8],[4.2, 2.7],[2.7, 2.4],[0.8, 1.0],[3.7, 2.8],[1.7, 0.9],[3.2, 2.9]]

假设 这个最优的方程是:y=wx+b

        使用一种方法(均方差):通过预测点位的y值与实际y值的插值平方之和来衡量寻找的直线是否最优,这些值便成为均方差;也就是均方差越小,那么该线约优。

        通过不断对直线的求解,得到很多的系数(w)值,这些值的关系函数便是损失函数。(函数最低点就是最优系数)

        loss=1/n  * {(y_1-y_1^,)^2}+{(y_2-y_2^,)^2}+....{(y_n-y_n^,)^2} ,直接表述为 loss=1/n *

        目标为在纵坐标最小值的横坐标,也就是,不需要得到具体纵坐标值,所以变形为:

 loss=1/2 *   

3、最小二乘法MSE

3.1、原理

        

         loss=1/2 *

         loss' = X^TXW-X^Ty

3.2、API

from sklearn.linear_model import LinearRegression

参数:fit_intercept 布尔值,是否计算偏置(纵轴截距)

属性:coef_  解后的回归系数

           intercept_  解后的偏置

from sklearn.linear_model import LinearRegression
import numpy as np

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]])

# 1、处理x值和y值
# x 数据为第一列到第八列所有行
x=data[:,0:8]
# y 数据为第九列所有行
y=data[:,8:]

# 2、创建算法对象   
# fit_intercept 偏置
estimator=LinearRegression(fit_intercept=False)
# 传入x和y 训练
estimator.fit(x,y)

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

# 3、使用新数据进行预测结果
x_new=[[11,14,8,10,5,10,8,1]]
y_predict=estimator.predict(x_new)
print("预测结果:\n",y_predict)

4、梯度下降

4.1、原理:

        w_2 = w_{1} - a * w_{1}'

        学习率 a:控制每次前进距离

        第一个点随机取值,找到该点的导数,判断往左走还是往右走一个距离,通过多次前进,向最优系数靠近。

        前进的方式为判断该点导数的正负,判断向左还是向右移动,前进的距离大小由该点导数值与学习率控制。

4.2、代码实现

import numpy as np
import matplotlib.pyplot as plt

# 损失函数、损失函数导数、第一次的w值、学习率
# 损失函数
def loss(w):
    return 10*w**2 - 15.9*w +6
# 损失函数导数
def dloss(w):
    return 20*w-15.9
w = np.linspace(-50, 50,30)

plt.plot(w, loss(w))

# 数据点位的列表
x = []
y = []

# 随机产生第一次点位的w值
np.random.seed(666)
w = np.random.randint(-50,50)
x.append(w)
y.append(loss(w))

# 学习率
learning_rate = 0.01

# 开始进行多次学习
for i in range(1,13):
    w = w-learning_rate*dloss(w)
    learning_rate -= learning_rate*0.00005
    x.append(w)
    y.append(loss(w))
    plt.scatter(x,y)

plt.show()

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

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

相关文章

【Java EE初阶---多线程(初阶)】初识计算机

乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 ,Java ,Java数据结构 欢迎大家访问~ 创作不易,大佬们点赞鼓励下吧~ 文章目录…

网络安全之国际主流网络安全架构模型

目前,国际主流的网络安全架构模型主要有: ● 信息技术咨询公司Gartner的ASA(Adaptive Security Architecture自适应安全架构) ● 美国政府资助的非营利研究机构MITRE的ATT&CK(Adversarial Tactics Techniques &…

生成式人工智能(AIGC)在软件开发设计模式课程教学中的应用

一、引言 软件设计模式作为软件工程领域的核心组成部分,对于提升软件系统的质量和可维护性至关重要。然而,传统的软件设计模式课程教学方法面临着诸多挑战,例如教师准备教学案例的过程繁琐,学生理解和应用具体案例难度较大&#…

丹摩征文活动|摩智算平台深度解析:Faster R-CNN模型的训练与测试实战

目录 文章前言Faster R-CNN的简介Faster RCNN的训练与测试提前准备1.1 mobaxterm(远程连接服务器)1.2 本文的源码下载 目标检测模型 Faster-Rcnn2.1云服务器平台 数据上传内置JupyterLab的使用本地连接使用DAMODEL实例获取实例的SSH访问信息通过SSH连接通…

【实用教程】如何利用 JxBrowser 在 Kotlin 中实现屏幕共享

JxBrowser是一个跨平台的 JVM 库,它允许您将基于 Chromium 的 Browser 控件集成到 Compose、Swing、JavaFX、SWT 应用程序中,并使用 Chromium 的数百种功能。为了在 Kotlin 中实现屏幕共享,我们利用了 Chromium 的 WebRTC 支持以及 JxBrowser…

无人机动力系统节能技术的未来发展趋势——CKESC电调小课堂12.1

无人机动力系统节能技术的未来发展趋势包括以下几个方面: 1. 能源类型多元化与高效化 新型电池技术的发展:锂离子电池的性能将不断提升,能量密度增加、充放电速度加快、循环寿命延长。同时,固态电池技术有望取得突破并应用于无人…

【汇编语言】数据处理的两个基本问题(二) —— 解密汇编语言:数据长度与寻址方式的综合应用

文章目录 前言1. 指令要处理的数据有多长?1.1 通过寄存器指明数据的尺寸1.1.1 字操作1.1.2 字节操作 1.2 用操作符X ptr指明内存单元的长度1.2.1 访问字单元1.2.2 访问字节单元1.2.3 为什么要用操作符X ptr指明 1.3 其他方法 2. 寻址方式的综合应用2.1 问题背景&…

【算法】【优选算法】前缀和(下)

目录 一、560.和为K的⼦数组1.1 前缀和1.2 暴力枚举 二、974.和可被K整除的⼦数组2.1 前缀和2.2 暴力枚举 三、525.连续数组3.1 前缀和3.2 暴力枚举 四、1314.矩阵区域和4.1 前缀和4.2 暴力枚举 一、560.和为K的⼦数组 题目链接:560.和为K的⼦数组 题目描述&#x…

【进阶系列】正则表达式 #匹配

正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。re模块使 Python 语言拥有全部的正则表达式功能。 一个正则表达式的匹配工具:regex101: build, test, and debug regex s "C:\\a\\b\\c" pri…

【技术解析】Dolphinscheduler实现MapReduce任务的高效管理

MapReduce是一种编程模型,用于处理和生成大数据集,主要用于大规模数据集(TB级数据规模)的并行运算。本文详细介绍了Dolphinscheduler在MapReduce任务中的应用,包括GenericOptionsParser与args的区别、hadoop jar命令参…

Debezium-MySqlConnectorTask

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 MySqlConnectorTask,用于读取MySQL的二进制日志并生成对应的数据变更事件 整体架构流程 技术名词解释 数据库模式(Database Schema) 数据库模式是指数据库中数据的组织结构和定义&…

剧本杀门店预约小程序,解锁沉浸式推理体验

一、开发背景 剧本杀作为一种热门娱乐游戏,深受大众的欢迎,但随着市场的快速发展,竞争也在不断加大,对于剧本杀线下商家来说面临着发展创新。 剧本杀线下门店数量目前正在逐渐增加,竞争激烈,而门店的获客…

今天你学C++了吗——C++启航之入门知识

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…

【element-tiptap】Tiptap编辑器核心概念----结构篇

core-concepts 前言:这篇文章来介绍一下 Tiptap 编辑器的一些核心概念 (一)结构 1、 Schemas 定义文档组成方式。一个文档就是标题、段落以及其他的节点组成的一棵树。 每一个 ProseMirror 的文档都有一个与之相关联的 schema,…

LC69---219存在重复元素(滑动窗口)---Java版

1.题目描述 2.思路 3.代码实现 public class Solution { public boolean containsNearbyDuplicate(int[] nums, int k) {Map<Integer,Integer> m1new HashMap<>();// 1:0, 2:1,3:2,1:3 key存数组的值&#xff0c;value存索引&#xff0c;为getnum[i]做准备&am…

【C++】了解map和set及平衡二叉树和红黑树的原理

目录 ​编辑 一、关联式容器 二、 键值对 三、pair介绍 四、树形结构的关联式容器 4.1 set 4.2 map 4.3 multiset 4.4 multimaps 五、底层结构&#xff08;重点&#xff09; 5.1 AVL 树 5.1.1 AVL树的概念 5.1.2 AVL树节点的定义 5.1.3 AVL树的旋转 5.1.4 AVL树的…

LeetCode 力扣 热题 100道(五)最长回文子串(C++)

最长回文子串 给你一个字符串 s&#xff0c;找到 s 中最长的 回文子串。 回文性 如果字符串向前和向后读都相同&#xff0c;则它满足 回文性 子字符串子字符串 是字符串中连续的 非空 字符序列。 动态规划法 class Solution { public:string longestPalindrome(string s) {i…

Spring Boot汽车资讯:科技与汽车的新融合

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了汽车资讯网站的开发全过程。通过分析汽车资讯网站管理的不足&#xff0c;创建了一个计算机管理汽车资讯网站的方案。文章介绍了汽车资讯网站的系统分析部分&…

逆向攻防世界CTF系列41-EASYHOOK

逆向攻防世界CTF系列41-EASYHOOK 看题目是一个Hook类型的&#xff0c;第一次接触&#xff0c;虽然学过相关理论&#xff0c;可以看我的文章 Hook入门(逆向)-CSDN博客 题解参考&#xff1a;https://www.cnblogs.com/c10udlnk/p/14214057.html和攻防世界逆向高手题之EASYHOOK-…

【网络】HTTP 协议

目录 基本概念基于 HTTP 的系统组成HTTP 的基本性质 HTTP 请求头 & 响应头HTTP 的请求方法HTTP 的返回码HTTP 的 CookieHTTP 缓存 Cache-Control会话HTTP/1.x 的连接管理 基本概念 HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;是一…