CarlosWGama

RN - Regressão

Feb 8th, 2020
248
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import pandas as pd
  2. import numpy as np
  3. from sklearn.preprocessing import LabelEncoder, OneHotEncoder
  4. from sklearn.compose import ColumnTransformer
  5. from keras.models import Sequential
  6. from keras.layers import Dense, Dropout
  7.  
  8. #Busca
  9. csv = pd.read_csv('dados.csv', sep=';')
  10.  
  11. #Remove colunas desnecessárias
  12. csv = csv.drop(columns=['Número comentários', 'Compartilhamento'])
  13.  
  14. #Trata
  15. le = LabelEncoder()
  16. csv['Tipo'] = le.fit_transform(csv['Tipo']) #Foto = 0|Link = 1|Status = 2|Video = 3
  17. dados = csv.values
  18.  
  19. #Separa em Atributos e Classificadores
  20. atributos = dados[:,:5]
  21. classificadores = dados[:,5]
  22.  
  23. #Ajusta atributos de classificação não binária
  24. ct = ColumnTransformer([('binario', OneHotEncoder(), [0, 1])], remainder='passthrough')
  25. atributos = ct.fit_transform(atributos).toarray()
  26.  
  27. #Modelo
  28. modelo = Sequential()
  29. modelo.add(Dense(units=10, activation='relu'))
  30. modelo.add(Dense(units=1, activation='linear'))
  31. modelo.compile(loss = 'mean_absolute_error', optimizer = 'adam',
  32.                   metrics = ['mean_absolute_error'])
  33.  
  34. modelo.fit(atributos, classificadores, batch_size=50, epochs=1000)
  35.  
  36. #Predizendo
  37. #Tipo, Mes, Dia da Semana, Hora, Paga
  38. novo = np.array([
  39.     [0, 1, 7, 21, 1]
  40. ])
  41. novo = ct.transform(novo).toarray()
  42.  
  43. retorno = modelo.predict(novo)
  44. print('Média: ', int(retorno[0]))
RAW Paste Data