我试图从Python中的CSV文件中导入一个数据集,但是它显示了一个“形状不对齐”的错误。我想知道有没有人知道怎么解决这个问题。
这是我的密码
import numpy as np
from numpy import genfromtxt
x = genfromtxt('problem1.csv', delimiter=',')
def model(x,w):
a = w[0] + np.dot(x.T,w[1:])
return a.T
#define sigmoid function
def sigmoid(t):
return 1/(1 + np.exp(-t))
#the convex cross-entropy cost function
def cross_entrypy(w):
#compute sigmoid of model
a = sigmoid(model (x,w))
#compute cost of label 0 points
ind = np.argwhere (y == 0) [:,1]
cost = -np.sum(np.log(1 - a[:,ind]))
#add cost on label 1 points
ind = np.argwhere(y==1)[:,1]
cost -= np.sum(np.log(a[:,ind]))
#compute cross-entropy
return cost/y.size
print(cross_entrypy([3,3]))这是我的数据集

这是我收到的错误消息。

-更新--

这是使用dataset的实践问题。
发布于 2022-03-05 02:51:27
阵列维数
我不知道您的数据集的含义是什么,但是x有形状(11,2),w有形状(1,)。
误差源
从屏幕截图来看,错误出现在np.dot(x.T,w[1:])中。您不能在x.T和w[1:]上做点积,因为维度不匹配。
可能的解决办法
简单地添加x = genfromtxt('problem1.csv', delimiter=',').
x=x[0]或x=x[1]行,np.dot(x.T,w[1:])改为np.dot(x[0].T,w[1:])或np.dot(x[1].T,w[1:]).https://stackoverflow.com/questions/71358967
复制相似问题