Buscar

Codigo gradient_descent

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.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais