vq.whiten
을 scipy.cluster
에서 사용하여 데이터를 표준화하는 데 문제가 있습니다. 각 피쳐의 평균값으로 채워진 피쳐 값이없는 numpy 배열을 전달 중입니다.AttributeError 받기 : sqrt in vq.whiten
가에 걸리면 라인은 다음과 같습니다
data = scipy.cluster.vq.whiten(self.imputed)
이 내가 누락 된 데이터를 대체하기 위해 사용하고 코드입니다.
imputed = np.array([self.masked[:,i].filled(self.masked[:,i].mean())
for i in range(np.shape(self.masked)[1])])
self.imputed = np.transpose(imputed)
나는 내 코드를 깨는 것으로 보인다 사실 꽤 떨어져 너무이 부분을 수행하는 더 나은 방법이있을거야. 그것은 추한 방법으로 보입니다. 보통은 파이썬으로 더 좋은 방법이 있다는 뜻입니다.
나는 배열의 얼마를 whiten
에 보내지 만 트레이스 백에서 다음을 얻었는지에 관계없이 슬라이싱을 시도했습니다.
Traceback (most recent call last):
File "C:\Users\jamie.bull\workspace\Metadata\src\draft_workflow.py", line 87, in <module>
dataset.cluster()
File "C:\Users\jamie.bull\workspace\Metadata\src\draft_workflow.py", line 59, in cluster
data = scipy.cluster.vq.whiten(self.imputed)
File "C:\Enthought\Python27\lib\site-packages\scipy\cluster\vq.py", line 131, in whiten
std_dev = std(obs, axis=0)
File "C:\Enthought\Python27\lib\site-packages\numpy\core\fromnumeric.py", line 2467, in std
return std(axis, dtype, out, ddof)
AttributeError: sqrt
클러스터링은 누락 된 데이터가없는 동일한 데이터 세트에서 올바르게 작동하므로 다음에 시도 할 대상이 손실됩니다.
편집 : I 세트의 전체 데이터를 사용하여 누락 된 데이터 하나 모두 imputed
각 항목 유형을 인쇄 시도 :
for item in imputed:
print type(item)
둘 사이의 차이가있을 때 그 평균 대체 및 변환이 없었던 버전은 각 행에 대해 하나의 numpy.ndarray
을 갖지만 대체 된 평균값은 각 열에 하나씩 있습니다.
당신이 역 추적을 더 보여줄 수 :
영업의 잘못된 라인
로 대체 할 수 있을까? – tiago전체 Traceback을 표시하도록 편집되었습니다. 나는 그 문제가 내가'imputed '을 만드는 방법에 있다고 확신한다. 나는 1D numpy 배열의 배열로 나오고, 원하는 것은 2D numpy 배열이다. –
예, imputed를 1D 배열로 설정하면 'vq.whiten'으로 중단됩니다.목록 이해력 ('[a b in c] ')을 없애고 누락 된 데이터를 대체하기위한 루프를 수행하는 것이 좋습니다. – tiago