机器学习之决策树 进行时......

今天学了关于决策树的相关知识点,以下是对学习过程中遇到问题所做的笔记。

1.关于csv

               csv文件格式是一种通用的电子表格和数据库导入导出格式。

           读取csv文件        

import csv 

file = open('C:\Users\QAQ\Desktop\p.csv','rb')
reader = csv.reader(file)
for row in reader:
    print row        #其中我们也可以对row中的元素进行操作, 比如row【0】, row【1】....

         写入csv文件     

import csv 

wf = open('C:\Users\QAQ\Desktop\p.csv','a+')
writer = csv.writer(wf)

writer.writerow(['15', 'youth', 'medium', 'no', 'excellent', 'yes'])
wf.flush()
wf.close()

2. 关于DictVectorizer() 参见http://blog.csdn.net/cheng9981/article/details/61924149

featureList=[] #里面储存特征值
LableList=[]   #储存类别的值  yes/no

for row in reader:
    LableList.append(row[len(row) - 1 ])#添加最后一列的值
    rowDict={}#创建一个字典
    for i in range(1, len(row) - 1):
        rowDict[headers[i]] = row[i]
    featureList.append(rowDict)#将每一行的的字典存在特征值里面
#print featureList

vec = DictVectorizer()#实例化DictVectorizer()
dummyX = vec.fit_transform(featureList).toarray()#特征值的提取
#参见http://blog.csdn.net/cheng9981/article/details/61924149

#print str(dummyX)
# [[ 0.  0.  1.  0.  1.  1.  0.  0.  1.  0.]
#  [ 0.  0.  1.  1.  0.  1.  0.  0.  1.  0.]
#  [ 1.  0.  0.  0.  1.  1.  0.  0.  1.  0.]
#  [ 0.  1.  0.  0.  1.  0.  0.  1.  1.  0.]
#  [ 0.  1.  0.  0.  1.  0.  1.  0.  0.  1.]
#  [ 0.  1.  0.  1.  0.  0.  1.  0.  0.  1.]
#  [ 1.  0.  0.  1.  0.  0.  1.  0.  0.  1.]
#  [ 0.  0.  1.  0.  1.  0.  0.  1.  1.  0.]
#  [ 0.  0.  1.  0.  1.  0.  1.  0.  0.  1.]
#  [ 0.  1.  0.  0.  1.  0.  0.  1.  0.  1.]
#  [ 0.  0.  1.  1.  0.  0.  0.  1.  0.  1.]
#  [ 1.  0.  0.  1.  0.  0.  0.  1.  1.  0.]
#  [ 1.  0.  0.  0.  1.  0.  1.  0.  0.  1.]
#  [ 0.  1.  0.  1.  0.  0.  0.  1.  1.  0.]]

3.tree.DecisionTreeClassifier(里面选择分离的方法)  决策树的算法, 这里我们选信息熵的分离

突然感觉python啥都替我们干好了,我们做的其实就是对前期数据的预处理。

#创建分离器
clf = tree.DecisionTreeClassifier(criterion='entropy')#选取分离的方法, 我们使用的是信息熵分离
clf = clf.fit(dummyX, dummyY)#建模  两个参数
print "clf" + str(clf)

4. tree.export_graphviz

with open('C:\\Users\\QAQ\\Desktop\\r.dot', 'w') as f:

    f = tree.export_graphviz(clf, feature_names = vec.feature_names_, out_file = f)
# 这个参数 feature_names = vec.feature_names_ 将矩阵中的01特征值重新变为 youth、middle_age... 

5.将dot文件转化为pdf格式

   1、首先安装Graphviz 

   2、配置Path环境变量

   3.dot -Tpdf r.dot -o outpu.pdf  (在cmd 下面输入 可将dot文件转化为pdf格式)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值