实验目的
- 巩固4种基本的分类算法的算法思想:朴素贝叶斯算法,决策树算法,人工神经网络,支持向量机算法;
- 能够使用现有的分类器算法代码进行分类操作
- 学习如何调节算法的参数以提高分类性能;
实验内容及步骤
利用现有的分类器算法对文本数据集进行分类
实验步骤:
1.了解文本数据集的情况并阅读算法代码说明文档;
2.利用文本数据集中的训练数据对算法进行参数学习;
3.利用学习的分类器对测试数据集进行测试;
4.统计测试结果;
利用现有的分类器算法对文本数据集进行分类
实验步骤:
1.了解文本数据集的情况并阅读算法代码说明文档;
2.利用文本数据集中的训练数据对算法进行参数学习;
3.利用学习的分类器对测试数据集进行测试;
4.统计测试结果;
实验数据说明
汽车评估数据集包含1728个数据,其中训练数据1350,测试数据 个。每个数据包含6个属性,所有的数据分为4类:
Class Values: unacc, acc, good, vgood
Attributes:
buying: vhigh, high, med, low.
maint: vhigh, high, med, low.
doors: 2, 3, 4, 5,more.
persons: 2, 4, more.
lug_boot: small, med, big.
safety: low, med, high.
其中Attributes是指它的属性子集。而其属性子集包括了六类,分别是购买(buying),维修(maint),车门数(doors),承载人数(Persons),载行李量(Luggage boot),安全性(safety)。每种属性又分成了相应的子集,分别为高中低或者是能承载的数量。下图是提供该数据集的网站截图。
实验过程
- 首先将所需要的库和数据集导入,分为训练集和测试集
from sklearn import svm,tree
from sklearn.naive_bayes import GaussianNB,MultinomialNB,BernoulliNB
from sklearn.metrics import classification_report
from sklearn.neural_network import MLPClassifier
import numpy as np
def iris_type1(s):
Class_Values = {b'unacc':0, b'acc':1, b'good':2, b'vgood':3}
return Class_Values[s]
def iris_type2(s):
buying = {b'vhigh': 0, b'high': 1, b'med': 2, b'low': 3}
return buying[s]
def iris_type3(s):
maint = {b'vhigh': 0, b'high': 1, b'med': 2, b'low': 3}
return maint[s]
def iris_type4(s):
doors = {b'2':0, b'3':1, b'4':2, b'5more':3}
return doors[s]
def iris_type5(s):
persons = {b'2':0, b'4':1, b'more':2}
return persons[s]
def iris_type6(s):
lug_boot = {b'small':0, b'med':1, b'big':2}
return lug_boot[s]
def iris_type7(s):
safety = {b'low':0, b'med':1, b'high':2}
return safety[s]
path1 = u'D:/大三上/人工智能导论/实验/dataset/test.txt' # 数据文件路径
path2 = u'D:/大三上/人工智能导论/实验/dataset/predict.txt'
train = np.loadtxt(path1,dtype=int,delimiter=',',converters={0: iris_type3, 1: iris_type3, 2: iris_type4,