数学建模社区-数学中国
标题:
线性回归代码
[打印本页]
作者:
2841097014
时间:
2023-8-26 18:08
标题:
线性回归代码
import numpy as np
8 r1 z( Y; V# ~. p
from sklearn.linear_model import LinearRegression
2 w, Q; @& ?3 N- C
import matplotlib.pyplot as plt
( R4 T* c# U" Z/ ^0 o$ X
% j2 \: S3 K0 I: S) l) f
# 生成一些示例数据
: F/ D: R& [7 z: J
np.random.seed(0)
+ g5 G0 P8 ~) H' V. F
X = 2 * np.random.rand(100, 1)
2 S+ g1 F- D% T) J+ `
y = 3 + 4 * X + np.random.randn(100, 1)
/ U8 s* F" ~5 f
7 p% w3 p- C, ?7 ?* x
# 创建线性回归模型
+ s( z. w8 L9 e+ `% V& c4 V
model = LinearRegression()
3 {9 i1 _& |7 n# h5 D0 e& E( K
1 z- ]% b8 y. ]3 C# Y1 ?( c
# 训练模型
k# k) D, w5 |) p) ~
model.fit(X, y)
1 D; M5 ~2 D( Z0 J* t% K) J
8 X9 s6 r% F% _# |5 x
# 打印模型的参数
6 T+ c5 X V- d, p0 q+ h7 T
print("Intercept:", model.intercept_)
5 V# k t+ r. C# p. k; [+ N; P
print("Coefficient:", model.coef_[0])
3 z9 o1 J, X1 |: I
3 K5 o% Z3 w' U' M% n
# 预测新数据点
6 D! ^' ~: g+ J. V/ g H/ F
new_X = np.array([[1.5]]) # 输入一个新的 X 值进行预测
* C7 i9 n+ ~: ] J+ w
predicted_y = model.predict(new_X)
/ H+ n7 K3 \: _; e$ W
print("Predicted y:", predicted_y)
1 Y+ x, r/ `8 x+ A( ^+ ?) X
9 u) B: w1 m, X( ^# T5 P$ E
# 绘制数据和拟合线
& b% s0 \. p; k( u- o
plt.scatter(X, y, color='blue')
$ o i G( N" T5 H: l& p
plt.plot(X, model.predict(X), color='red')
! E( j8 g- T5 w5 Q5 G
plt.xlabel('X')
) X9 @/ c) {/ [4 I
plt.ylabel('y')
7 p- b# j$ r' Y) j& H
plt.title('Linear Regression')
3 `( v, `& U6 J! B, J6 k' h
plt.show()
* v6 R) D8 l. P( N* T$ n& x, ^0 V7 T
4 x' Q& i+ n6 W
$ }6 @ S0 z( e, E6 |1 U0 I- _
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5