线性模型快速入门

使用matplotlib画一条直线

import numpy as np
import matplotlib.pyplot as pltx = np.linspace(-5, 5, 100)
y = 0.5*x + 3plt.plot(x, y, c="orange")
plt.title("Straight Line")
plt.show()

在这里插入图片描述

线性模型的直线表示

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegressionX = [[1], [4]]
y = [3,5]lr = LinearRegression().fit(X, y)z = np.linspace(0, 5, 20)plt.scatter(X, y, s=80)
plt.plot(z, lr.predict(z.reshape(-1,1)), c="k")
plt.title("Straight Line")
plt.show()

在这里插入图片描述

获取线性模型的方程

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegressionX = [[1], [4]]
y = [3,5]lr = LinearRegression().fit(X, y)
print(f"y = {lr.coef_[0]:.3f}x + {lr.intercept_:.3f}")z = np.linspace(0, 5, 20)plt.scatter(X, y, s=80)
plt.plot(z, lr.predict(z.reshape(-1,1)), c="k")
plt.title("Straight Line")
plt.show()

在这里插入图片描述

绘制三个点的线性模型图

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegressionX = [[1], [4], [3]]
y = [3,5,3]lr = LinearRegression().fit(X, y)
print(f"y = {lr.coef_[0]:.3f}x + {lr.intercept_:.3f}")z = np.linspace(0, 5, 20)plt.scatter(X, y, s=80)
plt.plot(z, lr.predict(z.reshape(-1,1)), c="k")
plt.title("Straight Line")
plt.show()

在这里插入图片描述

生成数据集并绘制线性模型的图

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regressionX, y = make_regression(n_samples=50, n_features=1, n_informative=1, noise=50, random_state=1)lr = LinearRegression().fit(X, y)
print(f"y = {lr.coef_[0]:.3f}x + {lr.intercept_:.3f}")z = np.linspace(-3, 3, 200).reshape(-1, 1)plt.scatter(X, y, c="b", s=60)
plt.plot(z, lr.predict(z), c="k")
plt.title("Linear Regression")
plt.show()

在这里插入图片描述

训练和测试模型

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_splitX, y = make_regression(n_samples=100, n_features=2, n_informative=2, noise=50, random_state=1)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=8)lr = LinearRegression().fit(X_train, y_train)
print(f"y = {lr.coef_[0]:.3f}X1 + {lr.coef_[1]:.3f}X2 + {lr.intercept_:.3f}")
print(f"score = {lr.score(X_test, y_test)}")

在这里插入图片描述

实战:糖尿病预测

完整代码:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_diabetesdata = load_diabetes()
X, y = data.data, data.target
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=8)lr = LinearRegression().fit(X_train, y_train)
print(f"y = {lr.coef_[0]:.3f}X1 + {lr.coef_[1]:.3f}X2 + {lr.intercept_:.3f}")
print(f"score = {lr.score(X_test, y_test)}")

输出:

y = 11.512X1 + -282.514X2 + 152.563
score = 0.4593422174874441

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

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

相关文章

VUE如何实现批量下载多个文件并导出zip格式

效果图 1、安装jszip和file-saver插件 npm install jszip npm install file-saver2、在所需页面引入 import JSZip from "jszip"; import FileSaver from "file-saver";3、模拟fileList数组 //fileList模拟文件数组export default {name: "notic…

企业大模型如何成为自己数据的“百科全书”?

作者 | 郭炜 编辑 | Debra Chen 在当今的商业环境中,大数据的管理和应用已经成为企业决策和运营的核心组成部分。然而,随着数据量的爆炸性增长,如何有效利用这些数据成为了一个普遍的挑战。 本文将探讨大数据架构、大模型的集成&#xff0…

Kubernetes集群部署

目录 引言 一、常见的K8S按照部署方式 (一)Minikube (二)Kubeadmin (三)二进制安装部署 二、二进制安装 (一)环境准备 1.部署安装环境 1.1 关闭防火墙与selinux 1.2 关闭s…

吴恩达深度学习笔记:优化算法 (Optimization algorithms)2.7

目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第二周:优化算法 (Optimization algorithms)2.7 RMSprop 第二门课: 改善深层神经网络&am…

C# WinForm —— 21 RichTextBox 使用

1. 加载文件到控件中 加载文件时,要设置文件的路径和类型RichTextBoxStreamType,文件类型包含: RichText 0:富文本格式(RTF)流PlainText 1:纯文本流对象链接和嵌入(OLE&#xff…

恒创科技:域名CNAME解析和A记录解析有哪些区别?

​  域名是互联网上的一种地址,是用以替代复杂IP地址的字符标识,在进行域名解析时,主要有两种常见的记录类型:CNAME 记录和 A记录解析。今天就给大家讲下CNAME解析和A记录解析有哪些区别、优势。这里,我们先了解下什…

Kafka学习-Java使用Kafka

文章目录 前言一、Kafka1、什么是消息队列offset 2、高性能topicpartition 3、高扩展broker 4、高可用replicas、leader、follower 5、持久化和过期策略6、消费者组7、Zookeeper8、架构图 二、安装Zookeeper三、安装Kafka四、Java中使用Kafka1、引入依赖2、生产者3、消费者4、运…

OpenAI 震撼发布:GPT-4o免费,实时语音视频交互开启新纪元

OpenAI 震撼发布:GPT-4o免费,实时语音视频交互开启新纪元 在仅仅问世17个月后,OpenAI 研制出了仿佛科幻片中登场的超级人工智能——GPT-4o,而且所有人都可以完全免费使用,让这个科技界的巨浪让人震撼无比!…

【VUE】VUE3绘制箭头组件

效果预览&#xff1a; 长、宽、粗细等等根据情况合理调整即可。 组件&#xff1a; <template><div class"line" :style"props.arrowsColor"></div> </template><script setup> import { defineProps, ref, onMounted } fr…

代码随想录Day29

39.组合总和 题目&#xff1a;39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;可以重复选取&#xff0c;这个要怎么回溯&#xff1f;而且是无限制的重复。每次回溯&#xff0c;都还是遍历当前的数组&#xff0c;记住数组中的最小值&#xff0c;一旦发现…

低成本、功能强大!德思特提供一体化WiFi 6E信道测试方案!

​ 作者介绍 一、方案介绍 伴随WiFi 6E与WiFi 7的提出&#xff0c;WIFI划分出一个全新的5.925GHz-7.125GHz 之间的80MHz和160MHz频段。1200MHz的带宽是迄今为止最宽的&#xff0c;是之前2.4GHz和5GHz WiFi 频段可用带宽的数倍。此外WiFi 6E引入了以下技术&#xff1a; ● 多…

Google I/O 2024:探索未来AI技术的无限可能

近日&#xff0c;Google I/O 2024大会圆满落幕&#xff0c;带给我们一场关于人工智能的盛宴。在这场大会上&#xff0c;Google推出了一系列令人激动的AI新功能和工具&#xff0c;让我们得以一窥未来的科技发展。今天&#xff0c;就让我来为大家总结一下这些亮点吧&#xff01; …