课程作业练习 K均值聚类 python实现(最小误差平方和准则)

课程作业练习 K均值聚类(最小误差平方和准则)
算法思路
这是学习机器学习课程的一个作业,自己的学习记录,利用python实现,依据图中的算法思路完成,初学,还需要很多改进。
首先生成了5类正态分布的点,对这些点进行聚类。
其中的NMI函数的实现来源于网络,侵权即删。
代码可用,循环5次取均值



#by gao
import numpy as np
import random
import collections
import matplotlib.pyplot as plt
import math

np.random.seed(11)
sigma=[[1, 0], [0, 1]]
mu1=(1,-1)
x1=np.random.multivariate_normal(mu1,sigma,200)
mu2=(5,-4)
x2=np.random.multivariate_normal(mu2,sigma,200)
mu3=(1,4)
x3=np.random.multivariate_normal(mu3,sigma,200)
mu4=(6,4)
x4=np.random.multivariate_normal(mu4,sigma,200)
mu5=(7,0.0)
x5=np.random.multivariate_normal(mu5,sigma,200)
lists=(x1,x2,x3,x4,x5)
x_all=[]
X_all=[]
for i in lists:
    x_all.extend(i)
    X_all.append(i)
    
def Euc_distance(x1,x2):
    l1=((abs(np.linalg.norm(x1)-np.linalg.norm(x2)))**2)**0.5
    return l1
def initial_point(k,x):
    point_list=[random.choice(x) for choices in range(k)]
    return point_list
def sel_point(k,x,point_list):
    all_f=[]
    for i1 in x:#循环每一个点
        f=[]
        for i in point_list:#循环簇心中的每一个点
            f.append(Euc_distance(i1,i))
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值