# SWJTU_DataMiningCourseDesign
环境介绍:`Python3.6.3`
涉及的库:`pandas=1.1.5, sklearn=0.24.2, numpy=1.19.2`
# 一.数据集介绍
本文中使用的数据集breast cancer, iris和wine都是来自于UCI,下面是对这三个数据集的详细介绍:
### 1.1 Breast Cancr数据集
威斯康星乳腺癌数据集一共包含569个恶性或者良性肿瘤细胞样本,分为两类,总共包含6个属性,该数据集的部分数据展示如下:
![breast_cancer](https://i.loli.net/2020/09/26/1NaUlwb6FpoiEHc.png)
其中各个属性的描述具体见下表:
| 属性 | 属性描述 |
| ------- | --------------------------------------------- |
| C_D | Sample code number,样本代码编号 |
| C_T | Clump Thickness,肿块厚度 |
| U_C_Si | Uniformity of Cell Size,细胞大小的均匀性 |
| U_C_Sh | Uniformity of Cell Shape,细胞形状的均匀性 |
| M_A | Marginal Adhesion,边缘粘 |
| S_E_C_S | Single Epithelial Cell Size,单个上皮细胞大小 |
| B_N | Bare Nuclei,裸核 |
| B_C | Bland Chromatin,乏味染色体 |
| N_N | Normal Nucleoli,正常核 |
| M | Mitoses,有丝分裂 |
| Class | 类别(2代表良性,4代表恶性) |
### 1.2 Iris数据集
鸢尾花卉数据集一共包含150个样本,分为三类(Setosa,Versicolour,Virginica),每类50个数据,该数据集的部分数据展示如下:
![iris](https://i.loli.net/2020/09/26/Y6o1CKg7VLOUeqm.png)
其中各个属性的描述具体见下表:
| 属性 | 属性描述 |
| ------------ | ---------------------------------------------------- |
| sepal.length | 花萼长度 |
| sepal.width | 花萼宽度 |
| petal.length | 花瓣长度 |
| petal.width | 花瓣宽度 |
| variety | 花类型(0表示Setosa, 1表示Versicolour 2表示Virginica) |
### 1.3 Wine数据集
葡萄酒数据集包含178个样本,也分为三类(1, 2, 3),其中第一类包含59个样本,第二类包含71个样本,第三类包含48个样本,在该数据集中包含了三种酒13种不同成分的数量,下面是该数据集的部分数据:
![wine](https://i.loli.net/2020/09/26/4YIQL2PvXkhTgCz.png)
其中各属性的描述如下:
| 属性 | 属性描述 |
| ------------------- | ----------------------- |
| Wine | 类别 |
| Alcohol | 酒精 |
| Malic.acid | 苹果酸 |
| Ash | 灰 |
| Acl | 灰分的碱度 |
| Mg | 镁 |
| Phenols | 总酚 |
| Flavanoids | 黄酮类化合物 |
| Noflavanoid.phenols | 非黄烷类酚类 |
| Proanth | 原花色素 |
| Color.int | 颜色强度 |
| Hue | 色调 |
| OD | 稀释葡萄酒的OD280/OD315 |
| Proline | 脯氨酸 |
## 1.4 数据集标准化
在读取数据集后还对每个数据集的特征值进行了Z-score标准化,其数学公式为:
$$
x' = \frac{x-\mu}{\sigma}
$$
其中$\mu$和$\sigma$分别为**总体平均值**和**总体标准差**。
# 二.算法介绍
本文包含的分类算法为KNN、朴素贝叶斯以及CART决策树,分别对应文件`knn.py`、`naiveBayes.py`和`DTree.py`,直接运行即可。