【学习笔记】山东大学生物信息学-07 数据挖掘(WEKA)
课程地址 :山东大学生物信息学
文章目录
- 七、数据挖掘
-
- 7.1 数据库系统
- 7.2 机器学习
- 7.3 WEKA
-
- 7.3.1 ARFF 文件的格式
- 7.3.2 ARFF 属性类型与格式转换
- 7.3.2 数据准备:Explorer 界面介绍
- 7.3.3 数据预处理
- 7.3.4 执行挖掘任务
七、数据挖掘
● 数据挖掘三要素
- 统计
- 数据库系统
- 机器学习
7.1 数据库系统
● 数据库系统
- 数据库系统 DBS:System(DB+DBMS)
- 数据库管理系统 DBMS: Database Management System (software for management)
- 数据库 DB: Database (data storage)
- 数据库系统 = 数据库 + 数据库管理系统
● 数据库类型
- 关系型数据库 :表格形式存储数据。
- 面对对象型数据库 :xml 形式存储,结构清晰、灵活,适合存储复杂的生物数据。

● 常用数据库系统
- 关系型数据库系统 :MySQL(SQL 语言)
- 面对对象型数据库系统 :exist-db (基于 JAVA,XQuery 语言)
7.2 机器学习
- 机器学习 (Machine Learning):主要是设计和分析一些让计算机自动“学习”的算法 。这些算法是一类从数据中获得规律,并利用这些规律对未知数据进行预测的算法。
- 机器学习的实现 :把需要计算机学习的物体转化成向量,用向量描述物体,让计算机读取向量值。如:

常见的机器学习的任务
1、分类 (Classification):有背景知识,根据背景知识判断新物体属于哪一类。
2、聚类 (Clustering):没有背景知识 ,对于一组新物体,通过判断其属性,将所有新物体分组。
3、回归 (Regression):有背景知识,根椐背景知识推导出 x1, x2, …,xn 与 y 之间的定量关系,并据此计算新物体的 y。

K 次交叉检验
聚类 不需要训练组数据学习背景知识(Unsupervised)。
回归和分类 需要训练组数据 training dataset 学习背景知识(Supervised)训练出预测模型,预测模型训练好后还需要从训练组中拿出一部分作为测试组数据 test dataset 来测试模型的准确度。
理论上,所有已知结果的数据都应该拿来做训练,训练数据以外的数据不知道结果,无法拿来做测试;如果用训练数据做测试是过学习;用测试组数据做测试是欠学习;使用 K 次交叉检验可以避免过学习和欠学习,是检验机器学习效果 的常用方法之一。
K 次交叉检验 (K-fold cross validation):把所有已知结果的数据分成 k 份。取出第 1 份作为测试组数据,其余 k-1 份作为训练组数据训练模型,用测试组数据测试模型的准确度;再取出第 2 分作为测试组数据,其余 k-1 份作为训练组数据训练模型;依此类推,让每一份都作为依次测试组数据,如此,用同种算法构建出 k 个模型进行 k 次测试,得到 k 个准确度,计算平均准确度 ,即最终模型的准确度 。
详见视频:机器学习-01 P127
机器学习的算法
● 几种常见算法 :
贝叶斯 :Bayes theorem
通常,事件 A 在事件 B(发生)的条件下的概率,与事件 B 在事件 A 的条件下的概率是不一样的;然而,这两者是有确定的关系,贝叶斯定理就是这种关系的陈述。 P(A|B) = P(B|A)P(A) / P(B)
详见:【学习笔记】山东大学生物信息学-05 高通量测序技术介绍 + 06 统计基础与序列算法(原理)
最近邻居 :Neighbor Joining
将已知物体 根据自身的特征属性标记在坐标系 中,再将未知物体 想据其身的特征属性也标记在坐标系中。新物体离哪个已知物体最近 ,新物体就是哪种已知物体。

决策树 :Decision Tree
决策树是一个预测模型 ,它表示对象属性 和对象值 之间的一种映射 ,树中的每一个节点 表示对象属性的判断条件 ,其分支 表示符合节点条件的对象 。树的叶子节点 表示对象所属的预测结果 。

支持向量机 :Support Vector Machine
支持向量机是一个二分类模型 ,但也可以扩展为多分类 。其基于间隔最大化 的特点可以使它更加灵活地处理线性或非线性的分类问题。
类似最近邻居法,将物体根据属性标记在坐标系中,画一条线将不同物体尽可能分开,且线两边离线最近的物体 到线的垂直距离 尽可能大(间隔最大化,最大最小距离 ),新物体落在线的哪测就属于哪种物体。

遗传算法
人工神经网络
其他更多算法……
7.3 WEKA
- WEKA 怀卡托智能分析环境 (Waikato Environment for Knowledge Analysis),免费,数据挖掘软件,不用操心算法,输入数据,选择现成的算法,即可输出结果模型。
- Weka 3: Machine Learning Software in Java
- WEKA 存储数据的格式 是
ARFF(Attribute-Relation File Format) 格式,这是一种 ASCII 文本文件。不能直接读取 EXCEL 文件。 - 详见视频:机器学习-01 P127
- WEKA 中的术语 :
◆ 表格里的一个横行 称作一个实例 (Instance),相当于统计学中的一个样本 ,或者数据库中的一条记录 。
◆ 表格里的一个竖行 称作一个属性 (Attrbute),相当于统计学中的一个变量 ,或者数据库中的一个字段 。
◆ 这样一个表格,或者叫数据集 ,在 WEKA 看来,呈现了属性之间 的一种关系 (Relation),例如下图 WEKA 的关系是 weather。

7.3.1 ARFF 文件的格式

● WEKA 读取 ARFF 文件的依据是分行和空格,因此不能随意断行或加入空格 ,空行和全是空格的行将被忽略。
● % 开头是注释行
● 头信息 (Head information),包括对关系的声明和对属性的声明。
-
关系声明 :关系名称在 ARFF 文件的第一个有效行来定义,格式为:
@relation relation-name
其中relation-name是一个字符串,如果这个字符串中包含空格 ,它必须加上引号 (英文标点的单引号或双引号)。 -
属性声明 :用以定义每一个属性的属性名称和属性类型,格式为:
@attribute attr-name attr-type
其中 attr-name 是必须以字母开头的字符串。和关系名称一样,如果这个字符串包含空格,必须加引号。
属性声明语句的顺序 表明了属性在数据部分的位置 。最后一个 声明的属性被称作 class 属性 。在分类或回归任务中,它是默认的目标变量 。
● 数据信息 (Data information),即数据集中给出的数据。
-
数据信息中
@data独占一行。接下来是所有实例的数据信息,每个实例占一行。实例的各属性值 用逗号,隔开。如果某个属性的值是缺失值 (missing value)、用问号?表示,且这个问号 不能省略。例如:
@data
sunny,85,85,FALSE,no
?,78,90,?,yes -
字符串型属性和标称型属性的值是区分大小写 的。若值中含有空格 ,必须被引号 括起来。
7.3.2 ARFF 属性类型与格式转换
● ARFF 格式共有四种属性类型 :

数值型numeric
格式:@attribute name numeric
注意:
numeric = integer = real
“integer”, “real”, “numeric”, “date”, “string” 这些关键字是区分大小写 的。
“relation”, "attribute"和 “data” 不区分大小写 。
标称型nominal-specification
格式:@attribute name {nominal.name1, nominal-name2,...}
注意:
标称属性由一系列可能的类别名称 构成的集合 ,并放在大括号{}中。
“name” 或 “nominal-name” 中如果有空格,需要用引号引起来。
“name” 以及所有 “nominal-name” 都是区分大小写 的。
字符串型string
格式:@attribute name string
注意:
这种类型的属性在文本挖掘中非常有用。
“name” 中如果有空格,需要用引号引起来。
字符串属性的 “data” 可以包含任意文本 。如有空格要用引号引起来。
时间日期型date
格式:@attribute name date "<date-format>"
注意:
日期和时间属性统一用"date"类型表示。
“date-format” 是一个用来规定怎样解析和显示日期时间格式的字符串。
“date-format” 如果省略,则按默认格式(见上)书写。
● 格式转换
-
WEKA 不能读取 EXCEL 文件,但可以读取 CSV 文件(用逗号分隔各列的纯文本文件),将 EXCEL 另存为 CSV 文件,即可用 WEKA 的 ArffViewer 打开,然后 File → Save as 保存成
.arff文件。

-
转成的 ARFF 文件会自动分配属性 类型,可能会不准确 ,需要人工更正。比如下图 name 属性应为字符串型,而不是标称型。

7.3.2 数据准备:Explorer 界面介绍
Explorer 界面是数据预处理及挖掘任务界面

详见视频:WEKA-03 Explorer 界面介绍 P131
使用 Open file 打开 weather.numeric.arff 文件。

根据不同功能可以把当前所在的 Precrocess 界面分成 8 个区域。
◆ 区域 1 的几个选项卡可用来切换不同的挖掘任务面板。当前所在的 Preprocess 面板可进行数据预览和预处理。
◆ 区域 2 是一些常用的功能按钮。包括打开、撤销、编辑、保存等。
◆ 区域 3 (数据预处理) 中通过使用 filter 选项里的各种函数 ,可以实现对数据的筛选 或对属性类型的转换 。
◆ 区域 4 (Current relation) 展示了数据集的一些基本情况,包括:关系名称,属性个数,实例个数。
◆ 区域 5 (Attributes) 中列出了所有属性 。Remove 按钮可以删除某些属性,删除后可利用区域 2 的 Undo 按钮找回。区域 5 上方的一排按钮是用来实现快速勾选的。
◆ 在区域 5 中选中某个属性,则在区域 6 (Selected attribute) 中会出现关于这个属性的摘要。注意对于数值型属性和标称型属性,摘要的显示方式是不样的。

◆ 区域 7 是区域 5 中选中属性的直方图 。直方图反映了标称型 目标属性(class 属性)的各个标称在当前选中属性的各个标称中的分布情况。WEKA 默认 将最后一个定义的属性为目标属性。也可通过下 Class 属性下拉菜单重新选择 。

△ Visualize All 可查看所有属性的直方图。标称型属性和数值型属性的直方图是有差别的,数值型 的直方图是根据平均值划分 出两个区段,分别统计每个区段里 class 属性值的分布。

◆ 区域 8 是状态栏,可以查看日志以判断程序是否出错 。weka 鸟反映了任务数量和任务状态。右键点击状态栏还可以执行内存垃圾回收 。
7.3.3 数据预处理
- 详见视频:WEKA-04 数据预处理 P132
数据预处理(1)属性转换
- 有些算法,只能处理所有属性都是标称型的数据。这就需要将数值型的属性转换成标称型 。
filters - unsupervised - attribute -Discretize离散化函数 → 点击参数框设置参数(如下)→ Apply。
attributeIndices:选择转换哪些属性,输入属性的顺序编号 ,以逗号 相隔。
bins: 设置离散化成几段,即转化成几个标称。

NumericToNominal函数也可以将数值型转换成标称型,与 Discretize 函数略有不同。
数据预处理(2)增加属性
- 通过
AddExpression函数定义公式,并据此添加一个新属性。 - 比如:添加新属性 temp/humi, 它的值等于 temperature 的值除以 humidity 的值。
- 注意 :新创建的属性添加在最后!这就会影响 WEKA 对 class 属性的判断!需要人工修正 class 属性 的选取!

7.3.4 执行挖掘任务
-
详见视频:WEKA-05 执行挖掘任务 P133

-
目标属性(输出变量)是标称型就是分类任务,数值型就是回归任务。
WEKA 自带的典型算法
● 典型的分类算法:
-
Bayes(贝叶斯分类器) :
BayesNet(贝叶斯信念网络)
NaiveBayes(朴素贝叶斯网络) -
Functions:
Multilayer Perceptron(多层前馈人工神经网络)
SMO(支持向量机) -
Trees(决策树分类器):
Id3 (ID3 决策树学习算法)
J48 (C4.5 决策树学习算法)
RandomTree(随机决策树算法)
RandomForest(基于决策树的组合方法)
● 典型的回归算法:
- Functions:
LinearRegression(除目标属性以外,支持多个属性)
SimpleLinearRegression(除目标属性以外,只支持一个属性)
PaceRegression (Pace 回归)
WEKA 实操
-
详见视频:WEKA-05 执行挖掘任务 P133
-
数据文件:weka 安装目录下的 data/diabetes.arff
-
1、构建模型 :通过 8 种生理指标预测糖尿病结果(阴性或阳性)(分类任务)。




-
2、结果输出 :文本形式的决策树和图形化的决策树。
文本形式的决策树方便进一步编写程序以实现预测模型的自动化。

放大决策树 :
决策树末端叶子 只有两种:预测的糖尿病结果为阴性或阳性。

-
3、预测准确度 :


预测得出的 TN、FN、TP、FP 可以代入公式计算出各种准确度衡量参数 ,包括 Sensitivity 和 Specificity。

当把 tested_negative 定义为阳性,tested_positive 定义为阴性后,会得出另一套 TN、FN、TP、FP,从而计算出另一组准确度衡量参数 ,两次统计结果可以分别体现出目标中每个标称的预测质量。
