Я использую Python для реализации линейной регрессии на некотором наборе данных, но на этом этапе я постоянно получаю эту ошибку - PullRequest
0 голосов
/ 23 декабря 2019

Я написал этот код линейной регрессии, и теперь он дает мне ошибку:

в def iterate_weights function.error = index 200 выходит за пределы оси 0 с размером 200

Я не знаю, что не так. Также, когда я загружаю свои веса, они приходят так же, как и выше, которые я выбрал наугад. Я использую ноутбук Jupyter.

Есть ли ошибки?

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt



#importing dataset
data = pd.read_csv('F:\WOC\linearreg.csv')
print(data.shape)
data.head()
data_arr = np.genfromtxt("F:\WOC\linearreg.csv", delimiter=",", skip_header=1)
print(data_arr)


# In[3]:


#collecting x and y
x_train = data_arr[:,1:4]
y_train = data_arr[:,4:5]
print(x_train)
print(y_train)


# In[4]:


weights_shape = y_train.shape
print(weights_shape)
r,c = x_train.shape
print(r,c)
w = np.random.randn(c,1)
w_num = len(w)
print(w)


# In[5]:


h = np.dot(x_train,w)
def cost_function():
    print(h)
    j = (1/2*r)*((h-y_train)**2)
    print('j',j)
cost_function()




# In[6]:


def iterate_weights():
    L=0.01
    iterations = 1000
    for iterations_proceed in range(1,1001):
        for i in range(w_num):
            for m in range(1,201):
                w[i,0] = w[i,0]-L*((1/r)*(sum(h-y_train)*(x_train[m,i])))  
print(w)
iterate_weights()



# In[7]:

h = np.dot(x_train,w)
def cost_function1():
    j = np.sum((1/2*r)*((h-y_train)**2))
    print(j)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...