Este projeto utiliza um modelo de árvore de decisão (regressão) para prever a nota IMDB de filmes. Inclui um Jupyter Notebook para treinamento e teste dos dados e um arquivo .pkl
com o modelo treinado.
- Python 3.7 ou superior
- Jupyter Notebook
- Bibliotecas Python listadas em
requirements.txt
-
Clone o repositório:
git clone https://github.com/GCurvo/projeto-indicium.git cd projeto-indicium
-
Instale as dependências:
pip install -r requirements.txt
-
Inicie o Jupyter Notebook:
-
Abra o arquivo
indicium_arvore_de_decisao.ipynb
:- No navegador, navegue até o diretório onde você clonou o repositório.
- Clique no arquivo
indicium_arvore_de_decisao.ipynb
para abri-lo.
-
Carregue a base de dados e a previsão:
- Pegue os arquivos
desafio_indicium_imdb.csv
e oprevisao.csv
e deixe eles na área do arquivo para ser carregado pelo código. - Verifique se o caminho para o arquivo esteja correto.
- Pegue os arquivos
-
Execute as células do notebook:
- Siga as instruções no notebook para carregar os dados, treinar o modelo e realizar análises.
O arquivo modelo_arvore.pkl
contém o modelo treinado. Aqui está um exemplo de como carregar e utilizar este modelo em um script Python.
import numpy as np
import pandas as pd
import tensorflow as tf
import seaborn as sns
import matplotlib.pyplot as plt
import pickle
from sklearn.preprocessing import StandardScaler, LabelEncoder
file_path=('/content/previsao.csv')
df = pd.read_csv(file_path)
prediction_data = df
# Carregando o modelo treinado
with open("modelo_arvore.pkl", "rb")as arquivo:
model = pickle.load(arquivo)
# Adicionar uma coluna chamada "Unnamed: 0" com índices do DataFrame
df.insert(0, 'Unnamed: 0', df.index)
# Aplicar as mesmas transformações aos dados de previsão
prediction_data.drop(["Director", "Star1", "Star2", "Star3", "Star4", "Overview", "Series_Title"], axis=1, inplace=True)
label_encoder = LabelEncoder()
# Transformar colunas categóricas usando LabelEncoder
categorical_columns = ['Genre', 'Certificate', 'Released_Year', 'Gross', 'Runtime']
for column in categorical_columns:
df[column] = label_encoder.fit_transform(df[column])
# Fazer previsões
predictions = model.predict(prediction_data)
# Arredondar previsões para duas casas decimais
predictions = np.round(predictions, 2)
print(predictions)