###前提・実現したいこと
MNIST手書き数字データセットを使って最適なkを探すプログラムを作成しているのですが、
現在の状況からどのように改善すればいいか教えてください。
また、kの使う近傍数ごとの正解率を折れ線グラフで可視化するプログラムも教えてください。
###発生している問題
データの容量が大きいこと
###該当のソースコード
python
1from sklearn import datasets, model_selection, svm, metrics 2 3mnist = datasets.fetch_mldata('MNIST original', data_home='data/src/download/') 4 5print(type(mnist)) 6print(mnist.keys()) 7 8mnist_data = mnist.data / 255 9mnist_label = mnist.target 10 11print(mnist_data.shape) 12print(mnist_label.shape) 13 14train_size = 500 15test_size = 100 16data_train, data_test, label_train, label_test = model_selection.train_test_split(mnist_data, mnist_label, test_size=test_size, train_size=train_size) 17 18clf = svm.SVC() 19clf.fit(data_train, label_train) 20pre = clf.predict(data_test) 21 22ac_score = metrics.accuracy_score(label_test, pre) 23print(ac_score) 24 25import timeit 26 27num = 10 28 29train_size = 500 30test_size = 100 31data_train, data_test, label_train, label_test = model_selection.train_test_split(mnist_data, mnist_label, test_size=test_size, train_size=train_size) 32 33clf = svm.SVC() 34print(timeit.timeit(lambda: clf.fit(data_train, label_train), number=num) / num) 35pre = clf.predict(data_test) 36ac_score = metrics.accuracy_score(label_test, pre) 37print(ac_score) 38 39 40clf = svm.LinearSVC() 41print(timeit.timeit(lambda: clf.fit(data_train, label_train), number=num) / num) 42pre = clf.predict(data_test) 43ac_score = metrics.accuracy_score(label_test, pre) 44print(ac_score) 45 46train_size = 10000 47test_size = 2000 48data_train, data_test, label_train, label_test = model_selection.train_test_split(mnist_data, mnist_label, test_size=test_size, train_size=train_size) 49 50clf = svm.LinearSVC() 51print(timeit.timeit(lambda: clf.fit(data_train, label_train), number=num) / num) 52pre = clf.predict(data_test) 53 54ac_score = metrics.accuracy_score(label_test, pre) 55print(ac_score) 56# 5.980748841702007 57# 0.8945 58 59co_mat = metrics.confusion_matrix(label_test, pre) 60print(co_mat)
###補足情報(言語/FW/ツール等のバージョンなど)
Anaconda3 Python

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/11/28 08:02
2017/11/28 08:10
退会済みユーザー
2017/11/28 08:18
2017/11/28 08:28