Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
import pandas as pd import numpy as np def load_df(file_name, columns=list()): df = pd.read_csv(file_name) if columns: df.drop(columns, axis=1, inplace=True) return df def gradient_descent(x, df, n_iter=50): theta = stochastic(df,n_iter=50) a = theta[0] b = theta[1] return a * x + b def stochastic(df, n_iter=50): m = df.shape[0] theta = np.random.randn(2,1) #inicialização aleatória for ite in range(n_iter): for i in range(m): random_index = np.random.randint(m) #obtém instância aleatória row = df.iloc[random_index+1] print(row) xi = row.drop(['Y house price of unit area']) yi = row[['Y house price of unit area']] gradients = get_gradient(xi, yi, theta) eta = learning_schedule(ite * m + i) theta = theta - eta * gradients return theta def get_gradient(xi, yi, theta): return xi.T.dot((xi.dot(theta) - yi)) def learning_schedule(t,t0=5, t1=50): #cronograma de aprendizado return t0/(t+t1) if __name__ == "__main__": file_name = 'Real estate.csv' ignored_columns = ['No','X1 transaction date'] df = load_df(file_name, ignored_columns) stochastic(df,1) for ite in range(n_iter): for i in range(m): random_index = np.random.radiant(m) #obtém instância aleatória.
Compartilhar