机器学习概论 聚类算法实现(实验四)

一、实验目的
1、熟悉使用numpy模块生成二维正态分布;
2、掌握kmeans聚类的代码实现;
3、熟悉numpy的使用;
4、熟悉matplotlib的使用。
二、实验设备
计算机:CPU四核i7 6700处理器;内存8G; SATA硬盘2TB硬盘; Intel芯片主板;集成声卡、千兆网卡、显卡; 20寸液晶显示器。
编译环境:python解释器、Pycharm编辑器
三、实验内容
1、新建项目和文件,并导入numpy和matplotlib
(1)打开Pycharm,新建项目,并在该项目下新建文件kmeans_clustering.py。
(2)导入一些编程中需要的包。

import numpy as np
import matplotlib.pyplot as plt
2、构造一个函数data_producer
(1)定义函数头data_producer,该函数有三个参数,miu,sigma,sample_no分别表示生成二维正态分布的均值,标准差和生成样本点的个数。
(2)调用numpy.random.multivariate_normal生成二维正态分布的数据。
(3)该函数返回生成的数据。```

```java

def data_producer(miu, sigma, sample_no):
    data = np.random.multivariate_normal(miu, sigma, sample_no)
    return data
``3、编写一个类KmeansClustering1)构造一个类KmeansClustering,并定义构造函数,需要数据集和kmeans算法中的k作为输入。
(2)定义类方法cluster,实现kmeans算法,并打印分类后的混淆矩阵,返回分类后的数据。`

```java
class KmeansClustering:
    def __init__(self, data, k, maxrenew):
        self.data = data
        self.k = k
        self.Sigma1 = None
        self.Sigma2 = None
        self.Sigma3 = None
        self.renew = 0
        self.maxrenew = maxrenew
    def cluster(self):
        a = []; iter = 0
        for i in range(self.k):
            x = np.random.randint(0, np.shape(self.data)[0])
            a.append(self.data[x])
        c = np.array(a)
        Old_d = np.copy(c)
        while(self.maxrenew <=1000):
            New_d = np.copy(Old_d)
            self.Sigma1 = []
            self.Sigma2 = []
            self.Sigma3 = []
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值