2016-06-30 2 views
0

Orange 3.3.6에서 k-means 클러스터링 위젯을 실행하는 데 문제가 있습니다. 46k 행을 가진 데이터 세트에서 실행하려고하지만 메모리 오류가 계속 발생하고 위젯이 충돌합니다. 12030 행으로 줄이면 실행됩니다. 분명히 전체 데이터 세트에서 실행되기를 원합니다.Orange Canvas 3.3.6 - k-means 클러스터링 위젯을 실행하는 동안 "MemoryError"

필자는 필자가 필요로하는 소수를 제외하고 데이터 파일에있는 모든 여분의 열을 잘라내어 데이터를 표준화하고 소수점 5 자리로 설정하여 최신 버전의 오렌지를 설치하려고했습니다.

저는 Windows 8.1 pro 64 비트를 실행 중이며 8GB의 RAM이 있습니다. 오렌지가 이보다 더 많은 데이터를 처리 할 수 ​​있어야한다고 생각합니다.

소프트웨어 ioGas (반사 식)에서 k-means 클러스터링 알고리즘을 통해 동일한 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- 수단은 문제는 아니지만 실루엣.

실루엣은 쌍 거리를 계산하므로 O (n^2) 메모리가 필요합니다. 그래서 당신은 단순히 기억이 부족합니다.

+0

위대한! 정보 주셔서 감사합니다. – Rusty

0

64 비트 Python을 실행 해 볼 수 있습니다. 저는 Anaconda을 제안합니다.이 비트는 64 비트 Python과 함께 제공되며 다음과 같이 간단하게 지정할 수 있습니다 :

conda install -c anaconda orange3=3.3.6