import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.compose import ColumnTransformer
from keras.models import Sequential
from keras.layers import Dense, Dropout
#Busca
csv = pd.read_csv('dados.csv', sep=';')
#Remove colunas desnecessárias
csv = csv.drop(columns=['Número comentários', 'Compartilhamento'])
#Trata
le = LabelEncoder()
csv['Tipo'] = le.fit_transform(csv['Tipo']) #Foto = 0|Link = 1|Status = 2|Video = 3
dados = csv.values
#Separa em Atributos e Classificadores
atributos = dados[:,:5]
classificadores = dados[:,5]
#Ajusta atributos de classificação não binária
ct = ColumnTransformer([('binario', OneHotEncoder(), [0, 1])], remainder='passthrough')
atributos = ct.fit_transform(atributos).toarray()
#Modelo
modelo = Sequential()
modelo.add(Dense(units=10, activation='relu'))
modelo.add(Dense(units=1, activation='linear'))
modelo.compile(loss = 'mean_absolute_error', optimizer = 'adam',
metrics = ['mean_absolute_error'])
modelo.fit(atributos, classificadores, batch_size=50, epochs=1000)
#Predizendo
#Tipo, Mes, Dia da Semana, Hora, Paga
novo = np.array([
[0, 1, 7, 21, 1]
])
novo = ct.transform(novo).toarray()
retorno = modelo.predict(novo)
print('Média: ', int(retorno[0]))
Comments
0 B
|👍
/👎