1

以下は、RFE と推定器 LinearSVC を使用して機能選択を取得し、削減されたデータを使用して KNeighborClassifier を適合させて予測するために私が書いたコードです。

    clf = LinearSVC(C = 10, class_weight = 'auto')
    rfe = RFE(estimator = clf, n_features_to_select = 700, step = 42)
    rfe.fit(X, trainLabels)
    reduced_train_data = rfe.transform(X)
    print "reduced_train_data.shape ", reduced_train_data.shape
    reduced_test_data = rfe.transform(test)
    neigh = KNeighborsClassifier(n_neighbors=5, weights='distance', algorithm = 'ball_tree')
    print "knn initiated"
    neigh.fit(reduced_train_data, trainLabels)
    print "knn fitted"
    test_predict = neigh.predict(reduced_test_data)
    print "knn predicted"

出力は次のとおりです。 Reduced_train_data.shape (42000, 700) knn 開始 knn 適合

そして、次のエラーが表示されます。

Traceback (most recent call last):
  File "E:\Coursera\KaggleDataProjects\DigitRecognition\main.py", line 74, in <module>
    test_predict = neigh.predict(reduced_test_data)
  File "C:\Python27\lib\site-packages\sklearn\neighbors\classification.py", line 146, in predict
    neigh_dist, neigh_ind = self.kneighbors(X)
  File "C:\Python27\lib\site-packages\sklearn\neighbors\base.py", line 313, in kneighbors
    return_distance=return_distance)
  File "binary_tree.pxi", line 1295, in sklearn.neighbors.ball_tree.BinaryTree.query (sklearn\neighbors\ball_tree.c:9889)
  File "C:\Python27\lib\site-packages\sklearn\utils\validation.py", line 91, in array2d
    X_2d = np.asarray(np.atleast_2d(X), dtype=dtype, order=order)
  File "C:\Python27\lib\site-packages\numpy\core\numeric.py", line 320, in asarray
    return array(a, dtype, copy=False, order=order)
MemoryError

このエラーは、パラメーターを少し変更してコードを実行するたびに発生するわけではありません。この問題を解決するために何をする必要があるか説明してください。

列車データの初期次元 (X) = 42000, 784 テスト データの初期次元 (test) = 28000, 784

4

0 に答える 0