Python:ValueError: Formen (3) und (118,1) nicht ausgerichtet: 3 (dim, 0) != 118 (dim 0)

Ich versuche zu tun, Logistische regression mit fmin aber es ist ein Fehler zeigt sich aufgrund der unterschiedlichen Formen von array. Hier ist der code.

import numpy as np

import scipy.optimize as sp

data= #an array of dim (188,3)

X=data[:,0:2]
y=data[:,2]
m,n=np.shape(X)
y=y.reshape(m,1)
x=np.c_[np.ones((m,1)),X]
theta=np.zeros((n+1,1))


def hypo(x,theta): 
    return np.dot(x,theta)

def sigmoid(z):
    return 1/(1+np.exp(-z))

def gradient(x,y,theta):#calculating Gradient
    m=np.shape(x)[0]
    t=hypo(x,theta)
    hx=sigmoid(t)
    J=-(np.dot(np.transpose(np.log(hx)),y)+np.dot(np.transpose(np.log(1-hx)),(1-y)))/m
    grad=np.dot(np.transpose(x),(hx-y))/m
    J= J.flatten()
    grad=grad.flatten()
    return J,grad

def costFunc(x,y,theta):    
    return gradient(x,y,theta)[0]

def Grad():
   return gradient(x,y,theta)[1]

sp.fmin( costFunc, x0=theta, args=(x, y), maxiter=500, full_output=True)

Fehler, der zeigt

File "<ipython-input-3-31a0d7ca38c8>", line 35, in costFunc

return gradient(x,y,theta)[0]

File "<ipython-input-3-31a0d7ca38c8>", line 25, in gradient

t=hypo(x,theta)

File "<ipython-input-3-31a0d7ca38c8>", line 16, in hypo

return np.dot(x,theta)

ValueError: shapes (3,) and (118,1) not aligned: 3 (dim 0) != 118 (dim 0)

Jede Art von Hilfe wird geschätzt

InformationsquelleAutor Sahil Dahiya | 2015-02-26

Schreibe einen Kommentar