针对西瓜书数据集2.0使用sklearn创建决策树
1.分类算法之决策树
决策树是一种常见的机器学习方法,这里我以二分类任务为例,我们希望从给定的训练数据集学得一个模型用以对新示例进行分类。通常决策树学习包括三个步骤:特征选择、决策树的生成和决策树的修剪。这里我将放上数据集图片。如何将数据集转换为excel表格,我简单说一下。首先将新建一个文本文档,将数据集粘贴进入文本文档,点击另存为,将后缀名改为.csv,然后将保存类型换为所有类型。
2.读取数据文件,并转换数据
因为我将数据文件保存为csv文件,所以使用csv.reader()函数来读取文件,然后将数据提取出来转换为[{属性:属性值,属性:属性值},{属性:属性值,属性:属性值}]的列表,因为这样可以采用sklearn的DictVectorizer()将其转换为数据型列表。将各个样本的标签转换成列表。
data= open(r'D:\python程序\西瓜对率回归\1.csv')
reader = csv.reader(data)#采用csv.reader读取文件
for row in reader:#reader不能直接使用,需要通过循环提取每一行的数据
headers=row
break#只需要将属性提取出来
featureList = []#存放属性值的列表
labelList = []#存放标签的列表
for row in reader:
labelList.append(row[len(row)-1])
rowDict = {
}
for i in range(1, len(row)-1):
rowDict[headers[i]] = row[i]#保存为{属性:属性值}的字典
featureList.append(rowDict)
3.将特征值和样本标签数据化
vec = DictVectorizer() #实例化
dummyX = vec.fit_transform(featureList) .toarray()
print(vec.get_feature_names