De acordo com o projeto, devemos criar a função split para separar os dados de teste dos dados de treinamento. Assim, construir a função split abaixo:
def split(dados, rotulo):
# seed
# train_test_split
train_x, test_x, train_y, test_y = train_test_split(dados, rotulo, random_state=42367)
print("*" * 80)
print("Quebrando em treino (x,y) e teste (x,y)", train_x.shape, train_y.shape, test_x.shape, test_y.shape)
print("Usando colunas %s como X" % str(train_x.columns.values))
print("Desvio padrão do conjunto de testes", test_y.std())
return train_x, test_x, train_y, test_y
O retorno da função split criada no projeto é: Quebrando em treino (x,y) e teste (x,y) (33201, 2) (33201, 1) (11067, 2) (11067, 1) ; Usando colunas ['NU_NOTA_MT' 'NU_NOTA_LC'] como X; Desvio padrão do conjunto de testes nota_total 396.677; dtype: float64.
O erro acontece quando executo o trecho de código abaixo
from yellowbrick.regressor import PredictionError
def visualiza_erros(train_x,train_y,test_x,test_y):
model = LinearRegression()
visualizer = PredictionError(model)
visualizer.fit(train_x, train_y)
visualizer.score(test_x, test_y)
visualizer.poof()
visualiza_erros(train_x,train_y,test_x,test_y)
YellowbrickValueError: y must be a (1,) dimensional array not (11067, 1).
O que há de errado?