Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Exercicio 8 da Aula 01

Olá, estou com problemas no ultimo exercicio da Aula 01 que pede para prever a bilheteria de um filme dado o seguinte atributo:

zootopia = [0,0,0,0,0,0,0,0,1,1,1,0,1,145.5170642,3.451632127]
modelo.predict([zootopia])

Mesmo rodando o próprio código da solução dada pelo professor, o python me retorna um erro:

ValueError                                Traceback (most recent call last)
<ipython-input-93-415e105da24a> in <module>()
      1 zootopia = [0,0,0,0,0,0,0,0,1,1,1,0,1,145.5170642,3.451632127]
----> 2 modelo.predict([zootopia])

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\linear_model\base.py in predict(self, X)
    254             Returns predicted values.
    255         """
--> 256         return self._decision_function(X)
    257 
    258     _preprocess_data = staticmethod(_preprocess_data)

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\linear_model\base.py in _decision_function(self, X)
    239         X = check_array(X, accept_sparse=['csr', 'csc', 'coo'])
    240         return safe_sparse_dot(X, self.coef_.T,
--> 241                                dense_output=True) + self.intercept_
    242 
    243     def predict(self, X):

C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\extmath.py in safe_sparse_dot(a, b, dense_output)
    138         return ret
    139     else:
--> 140         return np.dot(a, b)
    141 
    142 

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

O código que usei:

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import numpy as np

filmes_dt = pd.read_csv('datasets/regressao_linear_alura.csv')

amostra = filmes_dt.sample(n=200)

X = amostra['Investimento (em milhoes)']
Y = amostra['Bilheteria (pessoas)']

print(len(filmes_dt))

# Visualização de Dados
plt.scatter(X,Y)
plt.show()


filmes_investimento = filmes_dt['Investimento (em milhoes)']
filmes_bilheteria = filmes_dt['Bilheteria (pessoas)']

#Separação dos dados em treino e teste(split padrão de 0.25)
treino, teste, treino_marcacoes, teste_marcacoes =  train_test_split(filmes_investimento, filmes_bilheteria)

#Reorganizando dados em vetor de colunas
treino = np.array(treino).reshape(len(treino), 1)
teste = np.array(teste).reshape(len(teste), 1) #reshape(num do array, num de colunas)

modelo = LinearRegression()
modelo.fit(treino,treino_marcacoes)

zootopia = [0,0,0,0,0,0,0,0,1,1,1,0,1,145.5170642,3.451632127]
modelo.predict([zootopia])

Ao reduzir os itens do dicionario "zotopia" para 1, o código funciona. Ex:

zootopia = [145.5170642]
1 resposta
solução!

O exercicio pentence à Aula 2, por isso não conseguia resolver com as técnicas da Aula 1, ele está na sessão errada.