mds1.py

来自「orange源码 数据挖掘技术」· Python 代码 · 共 24 行

PY
24
字号
import orange, orngMDS, math

data=orange.ExampleTable("../datasets/iris.tab")
dist = orange.ExamplesDistanceConstructor_Euclidean(data)
matrix = orange.SymMatrix(len(data))
for i in range(len(data)):
   for j in range(i+1):
       matrix[i, j] = dist(data[i], data[j])

mds=orngMDS.MDS(matrix)
#mds.Torgerson()
mds.getStress(orngMDS.KruskalStress)

i=0
while 100>i:
    i+=1
    oldStress=mds.avgStress
    for j in range(10): mds.SMACOFstep()
    mds.getStress(orngMDS.KruskalStress)
    if oldStress*1e-3 > math.fabs(oldStress-mds.avgStress):
        break;
for (p, e) in zip(mds.points, data):
    print "<%4.2f, %4.2f> %s" % (p[0], p[1], e)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?