利用微博做网站排名,百度指数api,wordpress 近期文章,品牌建设成效有待提升# 编码声明#xff0c;并不是注释#xff0c;而是一种特殊的源文件指令#xff0c;用于指定文件的字符编码格式
# -*- coding: utf-8 -*-import pandas as pd # 提供了DataFrame等数据结构
from sklearn.tree import DecisionTreeClassifier, export_graphviz # 决策树分类…# 编码声明并不是注释而是一种特殊的源文件指令用于指定文件的字符编码格式
# -*- coding: utf-8 -*-import pandas as pd # 提供了DataFrame等数据结构
from sklearn.tree import DecisionTreeClassifier, export_graphviz # 决策树分类器和可视化决策树的模块
from sklearn.model_selection import train_test_split # 划分训练集和测试集
from sklearn.feature_extraction import DictVectorizer # 将字典形式的特征转换成向量形式# 读入并选择
data pd.read_csv(lenses.txt, encodinggbk, sep\t)
features data[[age, prescript, astigmatic, tearRate]] # 使用两层括号是为了创建一个包含多个列名的列表
targets data[eye_types]
# 获取所有属性的同步属性值的名字
feature_name []
# 遍历 features 数据框的每一列对每一列的 unique 值进行提取并将这些 unique 值添加到 feature_name 列表中
features.apply(lambda x: feature_name.extend(x.unique()), axis0)# 特征提抽取one-hot编码
vect DictVectorizer() # 将字典数据转换为特征矩阵如果某个样本缺少某个特征会用默认值通常为0进行填充形成稀疏矩阵。
# 生成一个列表其中每个元素是一个字典字典的键是列名值是对应行的值。
features vect.fit_transform((features.to_dict(orientrecords)))# 划分数据集
# 训练集特征数据赋值给 X_train测试集特征数据赋值给 X_test训练集目标数据赋值给 y_train测试集目标数据赋值给 y_test
X_train, X_test, y_train, y_test train_test_split(features, targets, test_size0.25)# #构建模型
clf DecisionTreeClassifier()
clf.fit(X_train, y_train)
score clf.score(X_test, y_test)
print(f决策树模型的分类准确率为{score:.3f})# 将模型保存至dot文件
with open(tree_model.dot, w) as f:f export_graphviz(clf, out_filef, feature_namesfeature_name, class_namestargets.unique())# #将模型输出至目标文件
# import os
# os.system(fdot -Tpng {tree_model.dot} -o {tree_model}.jpg)from sklearn.datasets import load_iris
from sklearn import tree
import graphviz# ----------------数据准备----------------------------
iris load_iris() # 加载数据# ---------------模型训练----------------------------------
clf tree.DecisionTreeClassifier() # sk-learn的决策树模型
clf clf.fit(iris.data, iris.target) # 用数据训练树模型构建()
r tree.export_text(clf, feature_namesiris[feature_names])
dot_data tree.export_graphviz(clf, out_fileNone,feature_namesiris.feature_names,class_namesiris.target_names,filledTrue, roundedTrue,special_charactersTrue)
graph graphviz.Source(dot_data) # 将存储在 dot_data 中的图形数据加载到对象中
graph # 显示图形。如果没显示则需要独立运行这一句
# graph.render(iris) #将图形保存为iris.pdf文件。
# graph.view() # 直接打开pdf文件展示# 关于使用的文件编码
# GBK编码主要用于简化汉字编码通常在中国大陆被使用。如果你确定你的文本数据是中文并且使用了GBK编码那么使用GBK编码是合适的。
# 但是如果你不确定数据的编码方式或者数据中包含多种语言的字符那么使用UTF-8编码会更加安全因为它是一种通用的、兼容性很好的编码方式能够支持几乎所有的字符和符号并且在全球范围内被广泛应用。# 每次运行准确度差距较大主要是因为数据量太小# 熵entropy是用来衡量一个随机变量的不确定性的度量如果计算出的熵值较高表示该数据集的不确定性也较高而熵值较低则表示数据集的不确定性较低即包含的信息量较少。# tearRate特征是指眼泪流失率tear rate用于描述眼睛的泪液排出速度或眼泪的分泌量。
# soft通常指代软性隐形眼镜或软性眼镜镜片而hard可能指代硬性隐形眼镜或硬性眼镜镜片。如果不能生成决策树图片可以参考这篇文章