Как продолжить после градиентного спуска? - PullRequest
0 голосов
/ 30 апреля 2020

Я очень плохо знаком с наукой о данных и Python. После нескольких часов экспериментов я наконец получил значения для моего градиентного спуска (код ниже). У меня проблемы с построением BZW. Как я могу построить линию регрессии автоматически после алгоритма?

import numpy as np;
import matplotlib.pyplot as plt;
import csv
import pandas as pd



def gradient_descent(x,y):
    m_curr=b_curr=0
    iterations = 5000
    n=len(x)
    learning_rate = 0.01

    for i in range(iterations):
        y_predicted = m_curr*x + b_curr
        cost = (1/n)*sum([val**2 for val in (y-y_predicted)])
        md = -(2/n)*sum(x*(y-y_predicted))
        bd = -(2/n)*sum(y-y_predicted)
        m_curr = m_curr - learning_rate*md
        b_curr = b_curr - learning_rate*bd

        print("m{}, b{}, cost {}, iteration {}".format(m_curr,b_curr,cost,i))


if __name__ == '__main__':

    #Reading data -> Output: DataFrame in float64
    data = pd.read_csv('ex1data1.txt', sep=',', header=None, names=['Feature', 'Label'])
    data.plot(x='Feature', y='Label', kind = 'scatter')

    #separating data frame to 
    feat_vec = pd.DataFrame(data['Feature'])
    label_vec = pd.DataFrame(data['Label'])

    #Finding the Best Fit Line for our given Dataset and convert the df to np.array
    #because it's more convenient for matrix multiplication
    x = np.array(feat_vec)
    y = np.array(label_vec)

    gradient_descent(x,y)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...