そのため、マトリックスの要素を標準化するコードを書いてきましたが、使用した関数は次のとおりです。
def preprocess(Data):
if stdn ==True:
st=np.empty((Data.shape[0],Data.shape[1]))
for i in xrange(0,Data.shape[0]):
st[i,0]=Data[i,0]
for i in xrange(1,Data.shape[1]):
st[:,i]=((Data[:,i]-np.min(Data[:,i]))/(np.ptp(Data[:,i])))
np.random.shuffle(st)
return st
else:
return Data
それはクラスの外で非常にうまく機能しますが、その内部で使用すると、このエラーが発生します:
AttributeError: 'Tuple' object has no attribute 'shape'
どうすれば修正できるのでしょうか?追伸これはKNN分類コードです
投稿したエラーによると、Data
はタプル型であり、データに定義された属性shape
はありません。 Data
関数を呼び出すときにpreprocess
関数をキャストしてみてください。例:
preprocess(numpy.array(Data))