Python Numpy : operands could not be broadcast together with shapes

shivram picture shivram · Jan 13, 2015 · Viewed 9.5k times · Source

I am getting this error "operands could not be broadcast together with shapes" for this code

import numpy as np
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
beantown = load_boston()
x=beantown.data
y=beantown.target
model = LinearRegression()
model = model.fit(x,y)

def mse(truth, predictions): 
    return ((truth - predictions) ** 2).mean(None)
print model.score(x,y)
print mse(x,y)

The error is on the line print mse(x,y)

Error is ValueError:

operands could not be broadcast together with shapes (506,13) (506,)

Answer

mty picture mty · Jan 13, 2015

Reshape y:

from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
beantown = load_boston()
x = beantown.data
y = beantown.target
y = y.reshape(y.size, 1)
model = LinearRegression()
model = model.fit(x, y)


def mse(truth, predictions):
    return ((truth - predictions) ** 2).mean(None)
print model.score(x, y)
print mse(x, y)