数据挖掘大作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.音乐分类的数据集

在这个题目中,使用了SVM分类器和贝叶斯分类器,并通过sklearn库中的GridSearchCV方法对SVM分类模型的参数进行调优,使最终的正确率提高了5个百分点左右。但仍没有文档中的论文达到的分类正确率高,因为论文中的分类器的设计使专一对音乐音调分类的,其中设计到神经网络和深度学习的一些方法。而我使用的分类器使对大部分分类问题都有效的方法。下面是对数据集的一个简单的介绍:

数据标签

第3-14列:YES or NO

第15列:共16个取值('D', 'G#', 'D#', 'Bb', 'Db', 'F#', 'Eb', 'F', 'C#', 'Ab', 'B', 'C', 'A#', 'A', 'G', 'E')

第16列:共5个取值(1,2,3,4,5)

第17列:共102个类别('C#M', 'F_m', 'D_m', 'D_d7', 'G#m', 'D_m6', 'C_m6', 'C_d7', 'F_M', 'D_M', 'BbM7', 'F#d', 'C#d', 'E_d', 'F_d7', 'F#d7', 'G_m', 'C#d7', 'AbM', 'EbM', 'D#d', 'Bbm6', 'G_M7', 'F#m6', 'Dbd', 'B_m6', 'G#M', 'D_m7', 'B_M', 'F#M7', 'Bbm', 'A#d', 'D#d7', 'Abd', 'G_M', 'F#M4', 'E_M', 'A_M4', 'E_m7', 'D#M', 'C_M7', 'A_m6', 'Dbm', 'A#d7', 'F#M', 'C#m7', 'F_m7', 'C_M', 'C#M4', 'F_M6', 'A_M', 'G_m6', 'D_M4', 'F_M7', 'B_M7', 'E_M4', 'E_m6', 'A_m4', 'G#d', 'C_m7', 'C_M6', 'Abm', 'F_m6', 'G_m7', 'F_d', 'Bbd', 'G_M4', 'B_d', 'A_M7', 'E_m', 'C#M7', 'DbM', 'EbM7', 'C#d6', 'F#m', 'G_M6', 'G_d', 'Dbd7', 'B_m7', 'DbM7', 'D_M6', 'D#d6', 'G#d7', 'A_m7', 'B_d7', 'B_M4', 'A_d', 'A_m', 'C_d6', 'D#m', 'C_M4', 'A_M6', 'BbM', 'C#m', 'D_M7', 'E_M7', 'F_M4', 'F#m7', 'Dbm7', 'B_m', 'C_m', 'Ebd')

这是一个多分类问题

1.1数据读取与训练集和测试集分离

从文件读取数据

使用sklearn.model_selection库中的train_test_split函数,将训练集随机分成10份,9份训练,1份测试

X是标签列表,y是类别列表

1.2使用svm分类

参数调优

模型训练与正确率

输出结果:

1.3使用贝叶斯分类器

分类结果:

在贝叶斯分类器中,使用了伯努利模型对概率。下图是输出结果:

其中中用到的gettime装饰器

1.4总结

数据集中提到的论文所实现的方法的正确率达到80.06%,它所设计的方法是专门用来对音乐音调进行分类的,其中涉及到了Viterbi方法等。我所采用的是普通的SVM分类器和贝叶斯分类器,这些分类器对大部分分类问题都有一个较客观的正确率。

2.银行用户是否有顶起存款的预测

在这个分类题目中仍然运用了SVM分类器和贝叶斯分类器,并对数据进行了可视化操作。因此在这一小节主要介绍数据的可视化。下面是对数据集的一个简单的介绍:

标签

年龄,工作,婚姻,教育,信用卡,余额,房子,贷款,联系方式,日,月,持续时间age,job,marital,education,default,balance,housing,loan,contact,day,mo nth,duration,campaign,pdays,previous,poutcome

类标签

是否订购定期存款

这是一个典型的二分类问题,主要通过银行客户的各种信息,其实现的意义在于可以通过银行已掌握的客户的基本信息,对客户是否有意向订购顶起存款进行预测,从众多客户中提取有价值的客户。

2.1数据读取

从文件读取数据

同样使用sklearn.model_selection库中的train_test_split函数将数据分为训练集和测试集。

2.2数据可视化

通过matplotlib库进行数据可视化,将每个标签在每个类别中的数量以直方图的形式画出来。

图(2.1)两个类别各占的比例图(2.2)年龄分布

图(2.3)工作分布

图(2.4)所受教育水平

图(2.5)主要联系方式

图(2.6)婚姻分布

从图(2.1)可以看出所有客户中只有十分之一预定了定期存款,可见开通这个业务的是一小部分人。从图(2.2)可以看出35左右的客户有大部分。从图(2.3)可以看出,所有职业中学生更倾向预定这项业务。从图(2.5)可以看到使用移动电话的客户更倾向预定这项业务。

2.3分类结果

贝叶斯分类器建立模型时间较短且有一个较好的正确率。

SVM分类器花费时间较长,相对于贝叶斯分类器的正确率并没有明显的提高。为什么会出现这种情况,本人感觉是数据集的标签过多引起的。由于对SVM的具体实现了解不深,具体的原因有待进一步探索。

3.特定人语音识别

这个数据集分为训练集和测试集,主要任务是区分9个不同成年男性对/ae/字母的发音。数据集中有每个人多次对这一字母的发音,每次发音的数据集是由递增顺序的12个LPC系数组成(即每个时间点有12个值)。即每次发音的数据会被分为多行(7-29),每行有12个数组成。

对于这个问题,根据论文中的方法实现了一个算法(Method T-B),

3.1数据读取

相关文档
最新文档