面试题:手写Kmeans

Kmeans聚类:将相似对象归入同一类,将不相似对象归到不同类。

Kmeans的基本流程:

 

Kmeans的优点:容易首先

缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢。

 

实现:

# --*--coding:utf-8 --*--
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

def distance(vec1,vec2):
    return np.sqrt(np.sum(np.square(vec1-vec2)))

def kmeans(data,k):
    '''

    :param data: dataframe:需要聚类的数组
    :param k: 聚类目标数
    :return:
    '''
    # 初始化质心
    K=np.random.uniform(0,10,(k,data.shape[1]))
    print("初始化质心:{}".format(k))
    #创建一个数组用来存储聚类结果
    ret=np.zeros((data.shape[0],2))
    flag=True
    while flag:
        flag=False
        for i in range(data.shape[0]):
            print("数据的每一行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值