复试 || 就业day03(2024.01.03)项目一
2024-01-07 21:10:21
前言
💫你好,我是辰chen,本文旨在准备考研复试或就业
💫本文内容来自某机构网课,是我为复试准备的第一个项目
💫欢迎大家的关注,我的博客主要关注于考研408以及AIoT的内容
🌟 预置知识详见我的AIoT板块,需掌握 基本Python语法, Numpy, Pandas, Matplotlib
以下的几个专栏是本人比较满意的专栏(大部分专栏仍在持续更新),欢迎大家的关注:
💥ACM-ICPC算法汇总【基础篇】
💥ACM-ICPC算法汇总【提高篇】
💥AIoT(人工智能+物联网)
💥考研
💥CSP认证考试历年题解
scikit-learn实现简单线性回归
from sklearn.linear_model import LinearRegression
import numpy as np
import matplotlib.pyplot as plt
# 构造矩阵
X = np.linspace(0, 10, 30).reshape(-1, 1)
# 随机生成斜率和截距(真实值)
w = np.random.randint(1, 5, size = 1)
b = np.random.randint(1, 10, size = 1)
# 根据一元一次方程计算目标值 y 并加上一些噪声,使数据上下波动
y = X * w + b + np.random.randn(30, 1)
plt.scatter(X, y) # 绘制散点图
# 使用 scikit-learn 中的线性回归求解
model = LinearRegression()
model.fit(X, y)
w_ = model.coef_
b_ = model.intercept_
print('一元一次方程真实的斜率和截距是:', w, b)
print('通过scikit-learn求解的斜率和截距是:', w_, b_)
plt.plot(X, X.dot(w_) + b_, color = 'red')
scikit-learn实现多元线性回归(二元)
# 选择二元是因为方便画图
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
# 变换矩阵
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)) # 创建一个宽度为9,高度为6的图像
ax = Axes3D(fig) # 床架三维坐标轴
ax.scatter(x1, x2, y) # 三维散点图,三个坐标轴 x,y,z 分别对应 x1,x2,y
ax.view_init(elev = 10, azim = -20) # 调整视角
# elev 参数表示视角的仰角,azim 参数表示视角的方位角
# 重新构造X
X = np.concatenate([x1, x2], axis = 1)
# 使用scikit-learn中的线性回归求解
model = LinearRegression()
model.fit(X, y)
# 如果没有reshape(-1),算出来的w是列向量
# reshape(-1)后是行向量(一维数组,方便使用 w_[0], w_[1])
w_ = model.coef_.reshape(-1)
b_ = model.intercept_
print('二元一次方程真实的斜率和截距是:', w, b)
print('通过scikit-learn求解的斜率和截距是:', w_, b_)
# 重新构造等比数列 x1(下记为 x), x2(下记为 y)【方便绘图】
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 = 'red')
总结
1.model.coef_
:
model.coef_
是一个数组(当然不一定是一维的,具体取决于计算式,如上述代码中计算出的即为二维列向量),包含了线性模型中每个特征的权重(系数)。对于线性回归模型,这些权重用于衡量每个特征对预测目标的影响程度。如果你有多个特征,model.coef_
的每个元素对应于相应特征的权重。
2.model.intercept_
:
model.intercept_
是线性模型的截距(偏移项),表示当所有特征都为零时,预测的目标值应该是多少。在数学上,截距代表了线性函数与 y 轴的交点。
文章来源:https://blog.csdn.net/qq_52156445/article/details/135370538
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!