私はpythonでhclusterライブラリを使用しようとしています。私は、hclusterで疎な行列を使用するのに十分なPythonの知識がありません。誰か助けてください。だから、それは私がやっている:python hclusterでスパース行列を使う方法は?
import os.path
import numpy
import scipy
import scipy.io
from hcluster import squareform, pdist, linkage, complete
from hcluster.hierarchy import linkage, from_mlab_linkage
from numpy import savetxt
from StringIO import StringIO
data.dmpは行列が含まれていることは次のようになります。
A B C D
A 0 1 0 1
B 1 0 0 1
C 0 0 0 0
D 1 1 0 0
と行列の唯一の右上の部分が含まれています。私は正確に英語でそれをスペルする方法がわからない:)ので、上側の主対角 よりも、すべての数字は、そうdata.dmpは含まれています:1 0 1、0を1、0
f = file('data.dmp','r')
s = StringIO(f.readline()).getvalue()
f.close()
matrix = numpy.asarray(eval("["+s+"]"))
私にとって未知の理由により、 hclusterは!= C場合、私は0を使用して、例えば、反転値を使用し、A == D
sqfrm = squareform(matrix)
Y = pdist(sqfrm, metric="cosine")
結合Y
Z = linkage(Y, method="complete")
だから、行列Zは、私が必要なものである場合に1を使用して(もし私は正しくhclusterを使用しましたか?)
しかし、私は次の問題を抱えて:
私はそれが今の時間のような を入力データを生成するために消費する だ原因、 のための入力データの膨大な量をスパース行列を使用したいが、私はデータをインポートする必要が他の言語のPythonから へ 私はテキストファイルを読む必要があります。親切にも、 をごらんください。 どうすればいいですか? python hclusterを使用人々に
、私はデータの膨大な量 、数百行を処理する必要があり、 それはhclusterで行うことが可能ですか? このアルゴリズムは実際に正しい HACを生成しますか?
ありがとうございました。何か助けていただきありがとうございます。
書かれているように、このコードがどのように機能するかは想像もできません。始めに、 'hclusterからimport scipy.io 'は' hcluster import scipy.io'からでなければなりません。最初の選択肢は構文的ではありません。 – hughdbrown
ああ、そうだよ。私は輸入ラインを書き換えます。最初にルビースタイルの書式を設定します:) – Daniel