z = self.__softmax(f) z_k = z - miniT dh1 = np.sum(z_k, axis=0) self.intercept_ = self.intercept_ - self.eta * dh1 dh2 = np.dot(z_k.T, miniX) self.coef_ = self.coef_ - self.eta * dh2 if __name__ == '__main__': import time mnist = MNIST(pathMNIST='./mnist') k_class = 10 # 学習データを作成 y_train = mnist.getLabel('L') X_train = mnist.getImage('L') X_train /= 255 X_test = mnist.getImage('T') X_test /= 255 y_test = mnist.getLabel('T') gradient_methods = ['GD', 'SGD', 'MSGD'] for gradient_method in gradient_methods: clf = Logistic_regression(gradient_method=gradient_method, seed=1) print(clf.eta) print(clf.gradient_method) start = time.time() clf.fit(X_train, y_train) print('学習にかかった時間:', time.time() - start) clf.score(X_test, y_test)