拥抱时代--AI(3)

news2025/1/7 19:20:36

python语言为了研究机器学习专门发展起来一套框架,并且这个框架是开源的,它就是scikit-learn。它主要实现数据预处理,分类,回归,降维,模型选择等最常用的机器学习算法。

在使用scikit-learn之前,我们先安装scikit-learn库。pip install scikit-learn,当然可以加载国内镜像。不换镜像也没有关系,也没有用多久即安装完成。

在此处我们假设一定的数据,

x=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],

y=[2.4587219227057, 6.837784075810438, 13.578197534706062, 14.250972327881273, 10.314208469267715, 15.908826534890443, 14.19863772096425, 16.923432852757983, 25.391880908139342, 24.59929510475269, 22.167255816427108, 25.85103609909175, 26.34869617678909, 26.71003378861379, 35.44845345177977, 37.47726764911904, 41.747008693730976, 41.926991564559444, 36.57429634055646, 38.953741650002186, 49.57882606034161, 42.92543769469588, 53.0196671157195, 51.14200542464646, 56.637331077241036, 59.29248583040243, 59.71221758493881, 55.420495803489956, 63.294829432985395, 62.44812471692443]

根据数据生成的图形为:

此处数据的模拟代码如下,感兴趣的小伙伴可以直接拿去运行模拟出上述效果:

from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
import random
x=[]
y=[]
for i in range(0,30,1):
    x.append(i)
    y.append(2*i+random.random()*10)
print(x);
print(y);
plt.figure(figsize=(20,20))
plt.scatter(x,y)
plt.show()

从图中可以看出他的预测曲线应该用线性回归最好,此时如果用前面讲解的线性回归算法自己计算可能需要很多过程,此时知道原理即可,用scikit-learn很快即可实现其回归函数,利用scikit-learn对上述数据做线性回归分析得到回归图形对比如下:

参考代码大家可以 直接复制做简单模拟,

from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
import random
from sklearn.linear_model import LinearRegression 
x=[]
y=[]
for i in range(0,30,1):
    x.append(i)
    y.append(2*i+random.random()*10)

plt.figure(figsize=(20,20))
plt.scatter(x,y)
#plt.show()
lr_model=LinearRegression()
#此时需要将x,和y
x=np.array(x)
 
x=x.reshape(-1,1) # 将原数组重塑为二维数组,-1为模糊控制,否则里面的数字乘积要等于总个数
y=np.reshape(y,(-1,1))
#print(y) #np实现和上面x一样的效果
lr_model.fit(x,y) #训练数据
y_yc=lr_model.predict(x)
#根据拟合得到的函数计算x对应的值
#print(y_yc)
zuo=plt.subplot(1,2,1)
zuo.scatter(x,y)
zhong=plt.subplot(1,2,2)
zhong.plot(x,y_yc,y)

plt.show()


如果需要对新数据进行预测,则传递进新数据即可,如yy=lr_model.predict([[31]]),得到[[67.2463329]],这个数据和我们当时构造数据的思路y=2*x+random()*10预测结果在合理范围。

可以通过a=lr_model.coef_
b=lr_model.intercept_

求得线性函数的两个参数。
print("获得函数为:y=",a,"x+",b)

得到的准确函数为 :y= [[1.97294361]] x+ [4.96100185]

在此预测的函数怎么做出科学的评价呢?

from sklearn.metrics import mean_squared_error,r2_score,

这两个评价对应的公式为:

MSE值越小越好,R2越趋向于1函数越好,这个道理从上一博客讨论中即可知晓。运行效果如下图:

本博文全部运行代码:

from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
import random
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error,r2_score
x=[]
y=[]
for i in range(0,30,1):
    x.append(i)
    y.append(2*i+random.random()*10)

plt.figure(figsize=(20,20))
plt.scatter(x,y)
#plt.show()
lr_model=LinearRegression()
#此时需要将x,和y
x=np.array(x)
 
x=x.reshape(-1,1) # 将原数组重塑为二维数组,-1为模糊控制,否则里面的数字乘积要等于总个数
y=np.reshape(y,(-1,1))
#print(y) #np实现和上面x一样的效果
lr_model.fit(x,y) #训练数据
y_yc=lr_model.predict(x)
#根据拟合得到的函数计算x对应的值
#print(y_yc)
zuo=plt.subplot(1,2,1)
zuo.scatter(x,y)
zhong=plt.subplot(1,2,2)
zhong.plot(x,y_yc,y)

yy=lr_model.predict([[31]])
print(yy)
a=lr_model.coef_
b=lr_model.intercept_
print("获得函数为:y=",a,"x+",b)
Mse=mean_squared_error(y,y_yc)
R2=r2_score(y,y_yc)
print("");
print(Mse)
print(R2)
 


如果有疑问可以在评论区留言讨论。欢迎持续关注,一起加油进步!

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

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

相关文章

实现多账户cursor限制的免费使用

目录 前言 个人建议: 准备工作 下载: 打开cursor: 打开下载文件目录&#xff1a…

OpenCV计算机视觉 05 图像边缘检测(Sobel算子、Scharr算子、Laplacian算子、Canny边缘检测)

图像边缘检测 边缘检测是图形图像处理、计算机视觉和机器视觉中的一个基本工具,通常用于特征提取和特征检测,旨在检测一张数字图像中有明显变化的边缘或者不连续的区域。 yuancv2.imread(yuan.png) cv2.imshow(yuan,yuan) cv2.waitKey(0) yuan_xcv2.Sob…

2025年1月4日蜻蜓q旗舰版st完整开源·包含前后端所有源文件·开源可商用可二开·优雅草科技·优雅草kir|优雅草星星|优雅草银满|优雅草undefined

2025年1月4日蜻蜓q旗舰版st完整开源包含前后端所有源文件开源可商用可二开优雅草科技优雅草kir|优雅草星星|优雅草银满|优雅草undefined 产品介绍: 本产品主要贡献者优雅草科技优雅草kir|优雅草星星|优雅草银满|优雅草undefined-青史留名,时光如川浪淘…

n8n - AI自动化工作流

文章目录 一、关于 n8n关键能力n8n 是什么意思 二、快速上手 一、关于 n8n n8n是一个具有原生AI功能的工作流自动化平台,它为技术团队提供了代码的灵活性和无代码的速度。凭借400多种集成、原生人工智能功能和公平代码许可证,n8n可让您构建强大的自动化…

cursor 使用技巧

一、创建项目前期步骤 1.先给AI设定一个对应项目经理角色, 2.然后跟AI沟通项目功能,生成功能设计文件:README.md README.md项目功能 3.再让AI总结写出开发项目规则文件: .cursorrules 是技术栈进行限定,比如使用什…

xinput1_3.dll丢失修复方法。方法1-方法6

总结 xinput1_3.dll的核心作用 xinput1_3.dll作为Microsoft DirectX库的关键组件,对于游戏控制器的支持起着至关重要的作用。它不仅提供了设备兼容性、多控制器管理和反馈机制等核心功能,还通过XInput API简化了开发人员对控制器状态的检索和设备特性的…

【C++】P2550 [AHOI2001] 彩票摇奖

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述输入格式:输出格式:输入输出样例: 💯题解思路1. 问题解析 💯我的实现实现逻辑问题分析 💯老…

01:C语言的本质

C语言的本质 1、ARM架构与汇编2、局部变量初始化与空间分配2.1、局部变量的初始化2.1、局部变量数组初始化 3、全局变量/静态变量初始化化与空间分配4、堆空间 1、ARM架构与汇编 ARM简要架构如下:CPU,ARM(能读能写),Flash(能读&a…

8086汇编(16位汇编)学习笔记10.寄存器总结

8086汇编(16位汇编)学习笔记10.寄存器总结-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 寄存器 8086CPU有14个寄存器 它们的名称为: AX、BX、CX、DX、SI、DI、SP、BP、 IP**、CS、DS、ES、**SS、PSW。 8086CPU所有的寄存器都是16位的&#…

如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库教程

简介 本教程将向你介绍如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库。 Apache Cassandra 是一个分布式的 NoSQL 数据库,旨在处理跨多个普通服务器的大量数据,并提供高可用性,没有单点故障。Apache Cassandra 是一个高度可扩展的分布…

uni-app:实现普通选择器,时间选择器,日期选择器,多列选择器

效果 选择前效果 1、时间选择器 2、日期选择器 3、普通选择器 4、多列选择器 选择后效果 代码 <template><!-- 时间选择器 --><view class"line"><view classitem1><view classleft>时间</view><view class"right&quo…

centos,789使用mamba快速安装R及语言包devtools

如何进入R语言运行环境请参考&#xff1a;Centos7_miniconda_devtools安装_R语言入门之R包的安装_r语言devtools包怎么安装-CSDN博客 在R里面使用安装devtools经常遇到依赖问题&#xff0c;排除过程过于费时&#xff0c;使用conda安装包等待时间长等。下面演示centos,789都是一…

STM32第十一课:STM32-基于标准库的42步进电机的简单IO控制(附电机教程,看到即赚到)

一&#xff1a;步进电机简介 步进电机又称为脉冲电机&#xff0c;简而言之&#xff0c;就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩&#xff0c;步进电机的角位移量与输入的脉冲个数严格成正…

kafka使用以及基于zookeeper集群搭建集群环境

一、环境介绍 zookeeper下载地址&#xff1a;https://zookeeper.apache.org/releases.html kafka下载地址&#xff1a;https://kafka.apache.org/downloads 192.168.142.129 apache-zookeeper-3.8.4-bin.tar.gz kafka_2.13-3.6.0.tgz 192.168.142.130 apache-zookee…

JSON结构快捷转XML结构API集成指南

JSON结构快捷转XML结构API集成指南 引言 在当今的软件开发世界中&#xff0c;数据交换格式的选择对于系统的互操作性和效率至关重要。JSON&#xff08;JavaScript Object Notation&#xff09;和XML&#xff08;eXtensible Markup Language&#xff09;是两种广泛使用的数据表…

Android14 CTS-R6和GTS-12-R2不能同时测试的解决方法

背景 Android14 CTS r6和GTS 12-r1之后&#xff0c;tf-console默认会带起OLC Server&#xff0c;看起来olc server可能是想适配ATS(android-test-station)&#xff0c;一种网页版可视化、可配置的跑XTS的方式。这种网页版ATS对测试人员是比较友好的&#xff0c;网页上简单配置下…

BurpSuite工具安装

BurpSuite介绍&#xff1a; BurpSuite是由PortSwigger开发的一款集成化的Web应用安全检测工具&#xff0c;广泛应用于Web应用的漏洞扫描和攻击模拟&#xff0c;主要用于抓包该包(消息拦截与构造) 一、Burp suite安装 windows系统需要提前配置好java环境&#xff0c;前面博客…

Win11+WLS Ubuntu 鸿蒙开发环境搭建(一)

参考文章 Windows11安装linux子系统 WSL子系统迁移、备份与导入全攻略 如何扩展 WSL 2 虚拟硬盘的大小 Win10安装的WSL子系统占用磁盘空间过大如何释放 《Ubuntu — 调整文件系统大小命令resize2fs》 penHarmony南向开发笔记&#xff08;一&#xff09;开发环境搭建 一&a…

flink cdc oceanbase(binlog模式)

接上文&#xff1a;一文说清flink从编码到部署上线 环境&#xff1a;①操作系统&#xff1a;阿里龙蜥 7.9&#xff08;平替CentOS7.9&#xff09;&#xff1b;②CPU&#xff1a;x86&#xff1b;③用户&#xff1a;root。 预研初衷&#xff1a;现在很多项目有国产化的要求&#…

和为0的四元组-蛮力枚举(C语言实现)

目录 一、问题描述 二、蛮力枚举思路 1.初始化&#xff1a; 2.遍历所有可能的四元组&#xff1a; 3.检查和&#xff1a; 4.避免重复&#xff1a; 5.更新计数器&#xff1a; 三、代码实现 四、运行结果 五、 算法复杂度分析 一、问题描述 给定一个整数数组 nums&…