数学建模社区-数学中国
标题:
线性回归代码
[打印本页]
作者:
2841097014
时间:
2023-8-26 18:08
标题:
线性回归代码
import numpy as np
! ]1 ~8 w/ p) M7 O5 Q
from sklearn.linear_model import LinearRegression
9 h9 E9 d5 y3 m( w0 O# D4 ]# u
import matplotlib.pyplot as plt
) E8 _9 H: M0 d- \' X. w/ S. S
* r7 |) p: {3 r0 z& L- n6 d
# 生成一些示例数据
+ o* S, |+ u% H$ V/ m0 r
np.random.seed(0)
9 X! G) y6 P) V6 X1 S
X = 2 * np.random.rand(100, 1)
. z1 X, l" o2 g
y = 3 + 4 * X + np.random.randn(100, 1)
/ [! O- d: T) a7 V2 { J
0 }) F+ x$ y- g6 h6 m
# 创建线性回归模型
4 i- A8 F2 \6 v$ X2 ?- R
model = LinearRegression()
1 u0 Y! N/ \% a" P
" u9 U2 Y1 {: r. I3 Y% [/ V
# 训练模型
! |! `: Z' x( r4 P
model.fit(X, y)
( g2 \! Q" w6 G( a0 k3 P o
g9 J X) R0 |- l* x+ ?' S
# 打印模型的参数
' {# h- H8 q- R6 S5 C+ ~/ y: G/ H
print("Intercept:", model.intercept_)
9 e7 @; C; q+ O
print("Coefficient:", model.coef_[0])
, w y! u; M0 w; h9 j3 ?
2 V9 F: q' n4 k+ a: i* H
# 预测新数据点
4 G8 E- Z. q2 B7 y1 j
new_X = np.array([[1.5]]) # 输入一个新的 X 值进行预测
7 f7 K8 ]) e+ g1 V
predicted_y = model.predict(new_X)
9 a7 k+ u# D$ V# L( O4 ]
print("Predicted y:", predicted_y)
- b+ v9 X2 \4 Z% `8 y
1 U: v+ h, B+ L2 r+ F
# 绘制数据和拟合线
5 p, e5 O" X) \) y& K) Z8 z
plt.scatter(X, y, color='blue')
! m" Q4 C' t+ g5 k
plt.plot(X, model.predict(X), color='red')
8 ]. ]: j6 i2 B
plt.xlabel('X')
! i& x" }0 B' ]: d
plt.ylabel('y')
" {2 h% i g5 c" @- U; _
plt.title('Linear Regression')
" ]/ I( A- z, D- H
plt.show()
/ E, `" Q% R" |7 ~2 v+ @
3 n7 x' e* r, c- ^
( [0 N/ m R" r0 o2 t
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5