【SCAU_educoder数据挖掘】scau数据挖掘实验3-2基础聚类算法

任务描述

本关任务: 1.k-means聚类; 2.hcluster聚类。

相关知识

分类&聚类

分类

  • 有监督学习。
  • 通过有标签样本学习分类器。

聚类

  • 无监督学习。
  • 通过观察学习,将数据分割成多个簇。
测定聚类质量

外在方法:有监督的

  • 用某种聚类质量度量对聚类结果和基准进行比较。
  • 基准:一种理想的聚类,由专家构建

内在方法:无监督的

  • 通过考察簇的分离情况和簇的紧凑情况来评估聚类。
  • 例:轮廓系数

编程要求

根据提示,在右侧编辑器补充的相关函数代码,对鸢尾花数据集做KMeans聚类和HCluster聚类。

KMeans函数介绍

  1. kmeans = KMeans(n_clusters=5, random_state=3)
  2. n_clusters 为簇的个数,即你想聚成几类;random_state 是随机状态,没有设定输出结果会不确定,评测确定答案一致设定随机状态。

AgglomerativeClustering函数介绍

  1. AgglomerativeClustering(linkage='ward', n_clusters=2)
  2. 链接算法 ward,聚2类。
  3. linkage:一个字符串,用于指定链接算法
  4. —— ‘ward’:单链接single-linkage,采用dmindmin。
  5. —— ‘complete’:全链接complete-linkage算法,采用dmaxdmax。
  6. —— ‘average’:均连接average-linkage算法,采用davgdavg。

测试说明

平台会对你编写的代码进行测试:

测试输入:略; 预期输出:

K-means: [1 2 2 0 0 0 0 1 2 0 2 2 0 0 1 2 1 1 1 0 1 1 0 1 1 0 2 1 2 2 2 2 2 1 1 1 11 0 0 1 1 1 0 0 1 0 1 0 1 0 2 2 0 2 1 1 1 1 2 2 1 1 1 2 1 0 1 1 0 0 2 0 11 0 2 2 2 1 0 2 2 2 1 0 2 2 2 0 1 2 0 0 1 0 0 1 2 0 0 2 0 2 0 0 0 0 2 0 12 0 1 0 2 2 0 0 2]hcluster: [0 2 0 1 1 1 1 0 2 1 2 2 1 1 0 2 0 0 0 1 0 0 1 0 0 1 2 0 2 2 2 2 2 0 0 0 00 1 1 0 0 0 1 1 0 1 0 1 0 1 2 2 1 2 0 0 0 0 2 2 0 0 0 2 0 1 0 0 1 1 2 1 00 1 2 2 2 0 1 2 2 2 0 1 2 2 2 1 0 2 1 1 0 1 1 0 2 1 1 2 1 2 1 1 1 1 2 1 02 1 0 1 2 2 1 1 2]

源代码:

from sklearn.cluster import KMeans
from sklearn.cluster import AgglomerativeClustering
import pandas as pd


def Kmeans(data_url):
    """k-means"""
    df1 = pd.read_csv(data_url)
    X1 = df1.iloc[:, 1:5]
    # 构造k-means聚类器,类别为3,随机状态为9
    #####Begin#####
    estimator = KMeans(n_clusters=3, random_state=9)

    #####End#####
    return estimator.fit_predict(X1)


def Hcluster(data_url):
    """hcluster"""
    df2 = pd.read_csv(data_url)
    X2 = df2.iloc[:, 1:5]

    # 构造hcluster聚类器,类别为3
    #####Begin#####

    clustering = AgglomerativeClustering(n_clusters=3)
    #####End#####
    return clustering.fit_predict(X2)


if __name__ == '__main__':
    data_url = "src/step1/data/iris_train.csv"
    result1 = Kmeans(data_url)
    print('K-means:', result1)
    result2 = Hcluster(data_url)
    print('hcluster:', result2) 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值