机器学习之决策树实例篇


1. python
2.  Python机器学习的库:scikit-learn

      2.1: 特性:
简单高效的数据挖掘和机器学习分析
对所有用户开放,根据不同需求高度可重用性
基于Numpy, SciPy和matplotlib
开源,商用级别:获得 BSD许可


     2.2 覆盖问题领域:
          分类(classification), 回归(regression), 聚类(clustering), 降维(dimensionality reduction)
          模型选择(model selection), 预处理(preprocessing)


3. 使用用scikit-learn
     安装scikit-learn: pip, easy_install, windows installer
     安装必要package:numpy, SciPy和matplotlib, 可使用Anaconda (包含numpy, scipy等科学计算常用
     package)
     安装注意问题:Python解释器版本(2.7 or 3.4?), 32-bit or 64-bit系统

4. 例子:
     
    具体代码如下:
from sklearn.feature_extraction import DictVectorizer
import csv
from sklearn import tree
from sklearn import preprocessing

# 从csv中读取数据
allElectronicsData = open(r'D:\BaiduNetdiskDownload\代码与素材\代码与素材(1)\01DTree\AllElectronics.csv', 'rt')
reader = csv.reader(allElectronicsData)
headers = next(reader)
# print(headers)

# 把特征数据以字典的形式读取到featureList,把标签数据存储到labelList
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)
# print(featureList)
# print(labelList)

# Vetorize features
vec = DictVectorizer()
dummyX = vec.fit_transform(featureList) .toarray()
print("dummyX: " + str(dummyX))
print(vec.get_feature_names())
print("labelList: " + str(labelList))

# vectorize class labels
lb = preprocessing.LabelBinarizer()
dummyY = lb.fit_transform(labelList)
print("dummyY: " + str(dummyY))

# Using decision tree for classification
clf = tree.DecisionTreeClassifier(criterion='entropy')
clf = clf.fit(dummyX, dummyY)
print("clf: " + str(clf))


# Visualize model
with open("allElectronicInformationGainOri.dot", 'w') as f:
    f = tree.export_graphviz(clf, feature_names=vec.get_feature_names(), out_file=f)

# 构造一行数据
oneRowX = dummyX[0, :]
print("oneRowX: " + str(oneRowX))
newRowX = oneRowX
newRowX[0] = 1
newRowX[2] = 0
print("newRowX: " + str(newRowX))
# 预测
predictedY = clf.predict(newRowX)
print("predictedY: " + str(predictedY))



      配置环境变量

      转化dot文件至pdf可视化决策树:dot -Tpdf iris.dot -o outpu.pdf

 



  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值