机器学习(一):决策树算法及使用python构造一个决策树
2016-08-28 19:33
549 查看
本文使用python学习机器学习,其中anaconda包很强大,并且使用到scikit-learn这个机器学习的库
首先是第一个算法:决策树算法
一,安装配置python及anaconda,见我另一篇博客。http://blog.csdn.net/qq_32166627/article/details/52301641
二,安装scikit-learn库
三,决策树的理论知识参见网络
四,准备好数据:下图用于预测一个人是否会买电脑,特征有age,income,student,credit_rating,标签就是是否买电脑
该表保存到一个csv文件里面data.csv,可用excel编辑。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/29/540882e8f96ad20cec3c88e70fc2dcf5)
五,eclipse创建一个PyDev项目,代码如下:
# _*_ coding: utf-8 _*_
from sklearn.feature_extraction import DictVectorizer
import csv
from sklearn import preprocessing
from sklearn import tree
from sklearn.externals.six import StringIO
allData = open("E:\eclipse_file\Deeplearning\data\decisionTree.csv", "rU")
reader = csv.reader(allData)
headers = next(reader)#3.4版本使用该语法,2.7版本则使用headers=reader.next()
print(headers)#打印文件第一行
featureList = []
lableList = []
for row in reader:
lableList.append(row[len(row)-1])
rowDic = {}
for i in range(1,len(row)-1):
rowDic[headers[i]] = row[i]
featureList.append(rowDic)
print("featureList:"+str(featureList))
print("lablelist:"+str(lableList))
vec = DictVectorizer()
dummyX = vec.fit_transform(featureList).toarray()
print("dummyX:"+str(dummyX))
print("get_feature_names():"+str(vec.get_feature_names()))
lb = preprocessing.LabelBinarizer()
dummyY = lb.fit_transform(lableList)
print("dummyY:"+str(dummyY))
clf = tree.DecisionTreeClassifier(criterion="entropy")
clf = clf.fit(dummyX, dummyY)
print("clf:"+str(clf))
with open("DecisionTree_BuyCompute.dot","w") as f:
f = tree.export_graphviz(clf, feature_names=vec.get_feature_names(),out_file = f)
oneRow = dummyX[0]
print("oneRow:"+str(oneRow))
oneRow[0] = 1
oneRow[2] = 0
predictY = clf.predict(oneRow)
print("predictY:"+str(predictY))
首先是第一个算法:决策树算法
一,安装配置python及anaconda,见我另一篇博客。http://blog.csdn.net/qq_32166627/article/details/52301641
二,安装scikit-learn库
三,决策树的理论知识参见网络
四,准备好数据:下图用于预测一个人是否会买电脑,特征有age,income,student,credit_rating,标签就是是否买电脑
该表保存到一个csv文件里面data.csv,可用excel编辑。
五,eclipse创建一个PyDev项目,代码如下:
# _*_ coding: utf-8 _*_
from sklearn.feature_extraction import DictVectorizer
import csv
from sklearn import preprocessing
from sklearn import tree
from sklearn.externals.six import StringIO
allData = open("E:\eclipse_file\Deeplearning\data\decisionTree.csv", "rU")
reader = csv.reader(allData)
headers = next(reader)#3.4版本使用该语法,2.7版本则使用headers=reader.next()
print(headers)#打印文件第一行
featureList = []
lableList = []
for row in reader:
lableList.append(row[len(row)-1])
rowDic = {}
for i in range(1,len(row)-1):
rowDic[headers[i]] = row[i]
featureList.append(rowDic)
print("featureList:"+str(featureList))
print("lablelist:"+str(lableList))
vec = DictVectorizer()
dummyX = vec.fit_transform(featureList).toarray()
print("dummyX:"+str(dummyX))
print("get_feature_names():"+str(vec.get_feature_names()))
lb = preprocessing.LabelBinarizer()
dummyY = lb.fit_transform(lableList)
print("dummyY:"+str(dummyY))
clf = tree.DecisionTreeClassifier(criterion="entropy")
clf = clf.fit(dummyX, dummyY)
print("clf:"+str(clf))
with open("DecisionTree_BuyCompute.dot","w") as f:
f = tree.export_graphviz(clf, feature_names=vec.get_feature_names(),out_file = f)
oneRow = dummyX[0]
print("oneRow:"+str(oneRow))
oneRow[0] = 1
oneRow[2] = 0
predictY = clf.predict(oneRow)
print("predictY:"+str(predictY))
相关文章推荐
- 【Python】使用cmd模块构造一个带有后台线程的交互命令行界面
- 使用PYTHON构造一个静态HTTP服务器
- 【机器学习】使用python构建决策树
- 使用python构造一个微信聊天机器人
- 探索 Python、机器学习和 NLTK 库 开发一个应用程序,使用 Python、NLTK 和机器学习对 RSS 提要进行分类
- python第18篇自己构造一个模块使用
- Python数据分析与机器学习-使用sklearn构造决策树模型
- 探索 Python、机器学习和 NLTK 库 开发一个应用程序,使用 Python、NLTK 和机器学习对 RSS 提要进行分类
- Python与机器学习2——决策树只有一个名字!
- 开发一个应用程序,使用 Python、NLTK 和机器学习对 RSS 提要进行分类
- 使用python脚本下载www.wuxia.net.cn上的书籍,并且将它们合并成一个文件
- 今天犯了一个很蠢的错误,有关python的模块包的使用的
- 使用python的flask新建一个简单的站点前做的注意事项
- [python]关于import的一个使用tip
- 使用DxVcl为Python的飞信库写一个简单的GUI
- 经常使用的一个python logging封装,支持同时向console和文件输出
- Python使用一个进度条
- Python使用一个进度条
- 学习effective java-2创建和销毁对象之当类有多个构造参数时,请考虑使用一个builder来创建对象
- 使用delphi 为python创建一个新的类型。