In [201]:
import pandas as pd
import numpy as np
from sklearn import tree
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
Download Dataset: movies_multilinear_reg.csv
In [202]:
filmes = pd.read_csv('datasets/movies_multilinear_reg.csv')
In [203]:
filmes.head(5)
Out[203]:
In [204]:
filmes.shape
Out[204]:
In [205]:
filmes_caract = filmes[filmes.columns[2:17]]
filmes_labels = filmes[filmes.columns[17:]]
In [206]:
filmes_caract.head(5)
Out[206]:
In [207]:
filmes_labels.head(5)
Out[207]:
In [208]:
treino, teste, treino_labels, teste_labels = train_test_split(filmes_caract, filmes_labels)
In [209]:
print('Shape do treino {}, Shape do teste {}'.format(treino.shape, teste.shape))
In [210]:
porc_treino = len(treino)/len(filmes_caract)*100
porc_teste = len(teste)/len(filmes_caract)*100
print('Proporção Treino / Teste: {0:.2f}% / {1:.2f}%'.format(porc_treino, porc_teste))
In [211]:
treino_arr = np.array(treino).reshape(len(treino),15)
teste_arr = np.array(teste).reshape(len(teste),15)
In [212]:
print('Tipo e shape do array treino {} - {}'.format(type(treino_arr), treino_arr.shape))
In [213]:
print('Tipo e shape do array teste {} - {}'.format(type(teste_arr), teste_arr.shape))
In [214]:
treino_labels_arr = np.array(treino_labels).reshape(len(treino_labels),1)
teste_labels_arr = np.array(teste_labels).reshape(len(teste_labels),1)
In [215]:
modelo = tree.DecisionTreeRegressor()
modelo.fit(treino_arr, treino_labels_arr)
Out[215]:
In [216]:
score_treino = modelo.score(treino_arr, treino_labels_arr)
score_teste = modelo.score(teste_arr, teste_labels_arr)
print('DecisionTreeRegressor: Acertamos {0:.2f}% no treino, Acertamos {1:.2f}% no teste'.
format(score_treino * 100, score_teste * 100))
In [217]:
modelo_reg = LinearRegression()
modelo_reg.fit(treino_arr, treino_labels_arr)
Out[217]:
In [218]:
score_treino = modelo_reg.score(treino_arr, treino_labels_arr)
score_teste = modelo_reg.score(teste_arr, teste_labels_arr)
print('LinearRegression: Acertamos {0:.2f}% no treino, Acertamos {1:.2f}% no teste'.
format(score_treino * 100, score_teste * 100))
In [219]:
modelo_depth5 = tree.DecisionTreeRegressor(max_depth=5)
modelo_depth5.fit(treino_arr, treino_labels_arr)
Out[219]:
In [220]:
score_max5_treino = modelo_depth5.score(treino_arr, treino_labels_arr)
score_max5_teste = modelo_depth5.score(teste_arr, teste_labels_arr)
print('DecisionTreeRegressor(max_depth=5): Acertamos {0:.2f}% no treino, Acertamos {1:.2f}% no teste'.
format(score_max5_treino * 100, score_max5_treino * 100))
In [221]:
zootopia = [0,0,0,0,0,0,0,1,1,1,1,0,1,110,27.74456356]
modelo_depth5.predict([zootopia])
Out[221]:
Download Dataset: avaliacoes_usuario.csv
In [222]:
gostos = pd.read_csv('datasets/avaliacoes_usuario.csv')
gostos.head(5)
Out[222]:
In [223]:
caract = gostos[gostos.columns[1:16]]
labels = gostos[gostos.columns[16:]]
In [224]:
treino, teste, treino_labels, teste_labels = train_test_split(caract, labels)
In [225]:
treino = np.array(treino).reshape(len(treino), 15)
teste = np.array(teste).reshape(len(teste), 15)
treino_labels = treino_labels.values.ravel()
teste_labels = teste_labels.values.ravel()
In [226]:
print('Tipos: treino {}, teste {}, treino_labels {}, teste_labels {}'.
format(type(treino), type(teste), type(treino_labels), type(teste_labels)))
In [227]:
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
In [228]:
model = LogisticRegression()
model.fit(treino, treino_labels)
Out[228]:
In [229]:
previsoes = model.predict(teste)
acuracia = accuracy_score(teste_labels, previsoes)
print('Acuracia com LogisticRegression no teste: {0:.2f}%'.format(acuracia * 100))
In [230]:
modelo = tree.DecisionTreeClassifier()
modelo.fit(treino, treino_labels)
Out[230]:
In [231]:
previsoes = modelo.predict(teste)
acuracia = accuracy_score(teste_labels, previsoes)
print('Acuracia com DecisionTreeClassifier no teste: {0:.2f}%'.format(acuracia * 100))
previsoes = modelo.predict(treino)
acuracia = accuracy_score(treino_labels, previsoes)
print('Acuracia com DecisionTreeClassifier com treino: {0:.2f}%'.format(acuracia * 100))
In [232]:
modelo_max5 = tree.DecisionTreeClassifier(max_depth=5)
modelo_max5.fit(treino, treino_labels)
previsoes = modelo_max5.predict(teste)
acuracia = accuracy_score(teste_labels, previsoes)
print('Acuracia com DecisionTreeClassifier(max_depth=5) no teste: {0:.2f}%'.format(acuracia * 100))
previsoes = modelo_max5.predict(treino)
acuracia = accuracy_score(treino_labels, previsoes)
print('Acuracia com DecisionTreeClassifier(max_depth=5) com treino: {0:.2f}%'.format(acuracia * 100))
In [ ]: