for i in range(len(lis)):
        for k in range(len(lis[i])):
            lis[i][k]=dic[lis[i][k]]
    return lis

if __name__ == "__main__":
    
    data=np.array([[1772.14,568.25,298.66,352.20,307.21,490.83,364.28,202.50],    # 辽宁            # 原始样本矩阵
                   [2752.25,569.95,662.31,541.06,623.05,917.23,599.98,354.39],    # 浙江
                   [1386.76,460.99,312.97,280.78,246.24,407.26,547.19,188.52],    # 河南
                   [1552.77,517.16,402.03,272.44,265.29,563.10,302.27,251.41],    # 甘肃
                   [1711.03,458.57,334.91,307.24,297.72,495.34,274.48,306.45]])   # 青海            # 总计5个样本
    
    dic={0:'辽宁',1:'浙江',2:'河南',3:'甘肃',4:'青海'}
                
    scm=SCM.SCM(classdist='nearest', sampledist='euc')

    res=scm.fit(data,kind=5)                     # 获得分类后的样本下标
    res=replace(res,dic)                         # 替换样本下标为样本标签名
    print("分为5类结果 res = :",res)
    
    res=scm.fit(data,kind=4)                     # 获得分类后的样本下标
    res=replace(res,dic)                         # 替换样本下标为样本标签名
    print("分为4类结果 res = :",res)

    res=scm.fit(data,kind=3)                     # 获得分类后的样本下标
    res=replace(res,dic)                         # 替换样本下标为样本标签名
    print("分为3类结果 res = :",res)

    res=scm.fit(data,kind=2)                     # 获得分类后的样本下标
    res=replace(res,dic)                         # 替换样本下标为样本标签名
Exemple #2
0
if __name__ == "__main__":

    data = np.array([[1, 3, 5, 7, 9], [2, 4, 6, 8, 10], [1, 4, 5, 8, 9],
                     [1100, 1300, 1500, 1700, 1900],
                     [1200, 1400, 1600, 1800, 2000],
                     [1100, 1400, 1500, 1800, 1900],
                     [11000, 13000, 15000, 17000, 19000],
                     [12000, 14000, 16000, 18000, 20000],
                     [11000, 14000, 15000, 18000, 19000]])  #12个样本,明显属于3类

    # 1. 欧氏距离

    print("欧氏距离测试: ")

    scm = SCM.SCM(classdist='nearest', sampledist='euc')
    res = scm.fit(data, kind=3)
    print("样本间欧氏距离+类间最近距离: res = ", res)

    scm = SCM.SCM(classdist='farthest', sampledist='euc')
    res = scm.fit(data, kind=3)
    print("样本间欧氏距离+类间最远距离: res = ", res)

    scm = SCM.SCM(classdist='average', sampledist='euc')
    res = scm.fit(data, kind=3)
    print("样本间欧氏距离+类间平均距离: res = ", res)

    scm = SCM.SCM(classdist='centroid', sampledist='euc')
    res = scm.fit(data, kind=3)
    print("样本间欧氏距离+类间重心距离: res = ", res)