gpt4 book ai didi

python - 逻辑回归无法拟合我的数据

转载 作者:行者123 更新时间:2023-11-30 09:21:13 25 4
gpt4 key购买 nike

我正在尝试拟合我的数据,但无法拟合它。数据集

0.50,0
0.75,0
1.00,0
1.25,0
1.50,0
1.75,0
1.75,1
2.00,0
2.25,1
2.50,0
2.75,1
3.00,0
3.25,1
3.50,0
4.00,1
4.25,1
4.50,1
4.75,1
5.00,1
5.50,1

和我的代码

data = np.loadtxt('dat', delimiter=',',dtype=None);

x=data[:,0:1];
y=data[:,1].reshape(x.size/x[0].size,1);
a=np.ones(shape=(y.size,x[0].size+1));
a[:,1:2]=x;
q=np.ones(shape=(a.shape[1],1));
alpha=0.003

for i in range(500000):
h=1/(1+np.exp(-np.dot(a,q)))
for j in range(q.size):
q[j][0]=q[j][0]-alpha*np.sum((h-y)*a[:,j]);
plt.axis((-1,10,-1,5))
plt.plot(x,y,'x',x,h);
plt.show();

所以我尝试了不同的学习率(alpha),尝试了不同的迭代次数,但我的拟合数据看起来像这样 enter image description here

但它应该看起来像这样 enter link description here

我错过了什么?是否存在任何逻辑错误或类似情况?感谢您的交易。

最佳答案

您的算法总体看起来是正确的,numpy 实现似乎存在一个小问题,当您计算(h - y)*a 时,您做到了

    q[j][0] = q[j][0] - alpha * np.sum((h - y) * a[:,j])

但是因为您使用的是 numpy.ndarray 类型而不是 numpy.matrix 类型,所以您应该这样做,例如a[:, j].dot(h - y)

    q[j][0] = q[j][0] - alpha * np.sum(a[:,j].dot(h - y))

这是我在拟合完成后从你的图中得到的结果

enter image description here

关于python - 逻辑回归无法拟合我的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38030408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com