2016-06-30 3 views
0

オレンジ3.3.6でk-meansクラスタリングウィジェットを実行する際に問題があります。 46k行のデータセットで実行しようとしていますが、メモリエラーが発生してウィジェットがクラッシュします。私はそれを12030行にトリムすると、それは実行されます。明らかに、私はそれをデータセット全体で実行したいと思います。オレンジ色のキャンバス3.3.6 - k-meansクラスタリングウィジェットを実行中の "MemoryError"

私は私のデータを正規化し、小数点以下5桁に設定する、私は本当に必要なことをいくつかを除いて私のデータファイル内のすべての冗長列をトリミング、オレンジの最新バージョンをインストールしようとしています。

私はWindows 8.1 pro 64ビットを実行しており、8GBのRAMを搭載しています。オレンジはこれ以上のデータに対処できるはずです。

私は、ソフトウェアioGasにアルゴリズムをclusting K-手段(反射によって)を介して同じ46K行のデータセットを実行し、それがわずか数秒で罰金を駆け抜けました。

オレンジがうまく機能するようにするために何かできますか?

これは、オレンジ色のキャンバスGUIがスローするエラーメッセージです。

MemoryError         Traceback (most recent call last): 
    File "C:\Python34\lib\site-packages\Orange\widgets\gui.py", line 2228, in <lambda> 
    b.button = btn = button(b, master, label, callback=lambda: do_commit()) 
    File "C:\Python34\lib\site-packages\Orange\widgets\gui.py", line 2199, in do_commit 
    commit() 
    File "C:\Python34\lib\site-packages\Orange\widgets\unsupervised\owkmeans.py", line 250, in run 
    self.cluster() 
    File "C:\Python34\lib\site-packages\Orange\widgets\unsupervised\owkmeans.py", line 239, in cluster 
    max_iter=self.max_iterations)(self.data) 
    File "C:\Python34\lib\site-packages\Orange\projection\base.py", line 28, in __call__ 
    clf = self.fit(data.X, data.Y) 
    File "C:\Python34\lib\site-packages\Orange\clustering\kmeans.py", line 25, in fit 
    proj.silhouette = silhouette_score(X, proj.labels_) 
    File "C:\Python34\lib\site-packages\sklearn\metrics\cluster\unsupervised.py", line 95, in silhouette_score 
    return np.mean(silhouette_samples(X, labels, metric=metric, **kwds)) 
    File "C:\Python34\lib\site-packages\sklearn\metrics\cluster\unsupervised.py", line 158, in silhouette_samples 
    distances = pairwise_distances(X, metric=metric, **kwds) 
    File "C:\Python34\lib\site-packages\sklearn\metrics\pairwise.py", line 1207, in pairwise_distances 
    return _parallel_pairwise(X, Y, func, n_jobs, **kwds) 
    File "C:\Python34\lib\site-packages\sklearn\metrics\pairwise.py", line 1054, in _parallel_pairwise 
    return func(X, Y, **kwds) 
    File "C:\Python34\lib\site-packages\sklearn\metrics\pairwise.py", line 231, in euclidean_distances 
    distances = safe_sparse_dot(X, Y.T, dense_output=True) 
    File "C:\Python34\lib\site-packages\sklearn\utils\extmath.py", line 184, in safe_sparse_dot 
    return fast_dot(a, b) 
MemoryError 

答えて

1

k-meansは問題ありませんが、シルエットです。

シルエットは対の距離を計算するため、O(n^2)のメモリが必要です。だからあなたは単に記憶が足りなくなっているだけです。

+0

グレート!情報をありがとう。 – Rusty

0

64ビットPythonを実行してみてください。私は、64ビットのPythonが付属してAnacondaを、示唆して、あなたは簡単に行えます。

conda install -c anaconda orange3=3.3.6 
関連する問題