这是读取的数据
26,167
31,205
33,257
20,239
26,288
33,316
40,291
44,328
47,368
41,426
59,420
48,440
60,453
53,462
46,526
54,541
59,550
68,554
59,621
51,627
60,694
72,627
75,601
68,699
80,678
74,713
79,751
89,710
90,752
82,785
79,834
89,825
100,793
93,853
98,870
93,927
103,874
121,783
124,837
114,927
106,927
99,1008
105,1096
126,927
132,910
137,860
150,871
144,927
135,972
124,1031
131,1046
128,1097
123,1155
121,1256
135,1080
147,1003
142,1189
133,1249
136,1349
150,1247
157,1358
157,1358
146,1466
170,1430
162,1393
162,1588
176,1493
163,1506
174,1582
179,1618
192,1622
184,1659
172,1700
191,1708
187,1802
198,1797
205,1855
197,1890
211,1971
205,1934
代码如下
import numpy as np
#初始化变量
data1 = []
temp0 = 0
temp1 = 0
alpha = 0.01
diff = [0, 0]
error0 = 0
error1 = 0
epsilon = 0.0001
sum = 0
f = open("C:\\Users\\楊先生\\Desktop\\练习文件\\123.txt")
for line in f:
line = line.replace('\n','')
data1.append(list(map(eval,line.split(','))))
m = len(data1)
data1 = np.array(data1)
data1_x = data1[:,0]
data1_x_max = np.max(data1_x)
data1_x_min = np.min(data1_x)
darta = data1_x_max - data1_x_min
averge_data1_x = 0
for i in data1_x
averge_data1_x = averge_data1_x + i
data1_y = data1[:,1]
while True:
sum += 1
for i in range(m):
diff[0] = (temp0+temp1*data1_x[i])-data1_y[i]
temp0 -= alpha*diff[0]/m
temp1 -= alpha*diff[0]*data1_x[i]/m
for i in range(m):
error0 += (data1_y[i]-(temp0+temp1*data1_x[i]))**2/2
if abs(error0 - error1)<epsilon :
break
else:
erron0 =error1
print("迭代次数:",sum)
print("temp0:\n","temp1:")
这个是错误信息
```python
D:/AI code2/AI1/梯度下降.py:32: RuntimeWarning: overflow encountered in double_scalars
error0 += (data1_y[i]-(temp0+temp1*data1_x[i]))**2/2
D:/AI code2/AI1/梯度下降.py:30: RuntimeWarning: overflow encountered in double_scalars
temp1 -= alpha*diff[0]*data1_x[i]/m
D:/AI code2/AI1/梯度下降.py:30: RuntimeWarning: invalid value encountered in double_scalars
temp1 -= alpha*diff[0]*data1_x[i]/m
求解决啊 !!太难受了