利⽤聚类分析,我们可以很容易地看清数据集中样本的分布情况。以往介绍聚类分析的⽂章中通常只介绍如何处理连续型变量,这些⽂字并
没有过多地介绍如何处理混合型数据(如同时包含连续型变量、名义型变量和顺序型变量的数据)。本⽂将利⽤ Gower 距离、
PAM(partitioning around medoids)算法和轮廓系数来介绍如何对混合型数据做聚类分析。
为了介绍⽅便,本⽂直接使⽤ ISLR 包中的 College 数据集。该数据集包含了⾃ 1995 年以来美国⼤学的 777 条数据,其中主要有以下⼏个
变量:
连续型变量
录取率
学费
新⽣数量
分类型变量
公⽴或私⽴院校
是否为⾼⽔平院校,即所有新⽣中毕业于排名前 10% ⾼中的新⽣数量占⽐是否⼤于 50%
录取率等于录取⼈数除以总申请⼈数
判断某个学校是否为⾼⽔平院校,需要根据该学校的所有新⽣中毕业于排名前 10% ⾼中的新⽣数量占⽐是否⼤于 50% 来决定
set.seed(1680) # 设置随机种⼦,使得本⽂结果具有可重现性
library(dplyr)
library(ISLR)
library(cluster)
library(Rtsne)
library(ggplot2)
Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union