Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 线性回归规划问题_Python_Linear Regression - Fatal编程技术网

Python 线性回归规划问题

Python 线性回归规划问题,python,linear-regression,Python,Linear Regression,我正在尝试使用一个线性回归程序来使用mnist数据集预测手写数字。每当我尝试运行它时,梯度下降函数总是需要一段时间才能工作,并且需要很长时间才能接近正确的权重。在八个小时内,它已经完成了550次功能,但仍然存在很多错误。有没有人能告诉我,这通常需要这么长时间,或者我做错了什么 import numpy as np import pandas as pd mnist = pd.read_csv('mnist_train.csv')[:4200] x = np.array(mnist)[:4200

我正在尝试使用一个线性回归程序来使用mnist数据集预测手写数字。每当我尝试运行它时,梯度下降函数总是需要一段时间才能工作,并且需要很长时间才能接近正确的权重。在八个小时内,它已经完成了550次功能,但仍然存在很多错误。有没有人能告诉我,这通常需要这么长时间,或者我做错了什么

import numpy as np
import pandas as pd

mnist = pd.read_csv('mnist_train.csv')[:4200]
x = np.array(mnist)[:4200,1:]
y = np.array(mnist)[:4200,0].reshape(4200,1)

#How many numbers in dataset
n = len(x)
#How many values in each number
n1 = len(x[0])

#sets all weights equal to 1
coef = np.array([1 for i in range(n1)])

epochs = 1000000000000
learning_rate = .000000000008999
for i in range(epochs):
    cur_y = sum(x*coef)
    error = y-cur_y
    #Calculates Gradient
    grad = (np.array([sum(sum([-2/n  * (error)* x[j,i] for j in range(n)])) for i in range(n1)]))
    #Updates Weights
    coef = (-learning_rate * grad) + coef
    print(i)
    print(sum(y-(x*coef)))

你的学习率非常低。另外,784是线性回归需要处理的很多维度,特别是假设您使用的是所有60000个样本。支持向量机将更好地工作,显然,CNN将是最好的


鉴于您的错误越来越小,我建议您提高学习率,并使用随机梯度进行训练(从每个历元的训练集中随机获取批次,而不是整个训练集)。

“有人能告诉我,通常需要这么长时间吗?”-需要多长时间?我将历代设置为10000000000,并让它运行八个小时,以查看它将经历多少次,以及大约550次迭代。错误变小了,但仍然不准确。猜测一下,您可能希望对代码进行安排,以便在
numpy
中对迭代次数超过100次的循环进行矢量化。我认为您将学习速率设置得太小,因此在经过合理数量的循环后会出现较大的错误。谢谢!我会试着用它。