学习人工智能-用python进行训练步骤,DecisionTreeClassifier模型,Graphviz Interactive Preview 预览.dot文件

用python进行训练步骤:

  1. 导入数据 import the data
  2. 清理数据 clean the data
  3. 把数据分为训练和验证部分 split the data into training and test sets
  4. 创建一个模型 create a model
  5. 训练模型 train the model
  6. 创建预测 make predictions
  7. 打分评估 score and evaluate.

以DecisionTreeClassifier为例:

直接把数据灌入模型,然后预测

import pandas as pd
from sklearn.tree import DecisionTreeClassifier


music_data = pd.read_csv('music.csv')
x =  music_data.drop(columns=['genre'])
y = music_data['genre']

model  = DecisionTreeClassifier()
model.fit(x,y)

predictions  = model.predict([[21,1],[22,0]])
print(predictions)

把数据分为训练数据和验证数据,再训练,之后打分。

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

music_data = pd.read_csv('music.csv')
x = music_data.drop(columns=['genre'])
y = music_data['genre']
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.1)


model = DecisionTreeClassifier()
model.fit(x_train, y_train)

predictions  = model.predict(x_test)


score_results = accuracy_score(y_test, predictions)
print(score_results)

训练后把训练的结果存入文件,以后可以直接载入文件进行预测。

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import joblib


music_data = pd.read_csv('music.csv')
x = music_data.drop(columns=['genre'])
y = music_data['genre']
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.1)
model = DecisionTreeClassifier()
model.fit(x_train, y_train)

#把训练完成的结果输出到文件。
joblib.dump(model, 'music-rec.joblib')

#直接载入 训练完成的文件,用来预测。
model = joblib.load('music-rec.joblib')
predictions = model.predict([[21,1],[22,0]])
print(predictions)

生成.dot文件,用VS code生成预览,查看训练结束的逻辑。

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import joblib

from sklearn import tree


music_data = pd.read_csv('music.csv')
x = music_data.drop(columns=['genre'])
y = music_data['genre']
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.1)

model = DecisionTreeClassifier()
model.fit(x_train, y_train)

tree.export_graphviz(model,
                     out_file='music-plot.dot',
                     feature_names=['age','gender'],
                     class_names=sorted(y_train.unique()),
                     label='all',
                     rounded=True,
                     filled=True
                     )

在VS code里面安装插件Graphviz Interactive Preview, 预览.dot文件,查看逻辑。

### Graphviz 使用教程 #### 安装与配置 为了使用 Graphviz,在本地环境中安装必要的软件包是首要条件。对于 Ubuntu 用户来说,可以通过命令行工具轻松完成这一操作[^4]。 ```bash sudo apt-get install graphviz ``` 这会下载并安装最新版本的 Graphviz 库及其依赖项。 #### 创建 DOT 文件 Graphviz 的核心在于其描述语言——DOT 语言。这是一种简单而强大的文本格式,用来定义图形中的节点和边的关系。下面是一个创建基本有向图的例子: ```dot digraph G { "Node A" -> "Node B"; "Node B" -> "Node C"; } ``` 这段代码表示存在三个节点 (A, B, 和 C),其中 A 指向 B,B 则指向 C。 #### 将 DOT 转换为图像 一旦有了 DOT 文件之后,就可以利用 `dot` 命令将其转换成各种类型的图片文件。比如要生成 PNG 图像可以这样做: ```bash dot -Tpng input.dot -o output.png ``` 这里 `-T` 参数指定了目标输出格式(这里是 png),接着是指定输入文件名 (`input.dot`) 和输出文件路径 (`output.png`)。 #### 集成到其他编程环境 除了直接编写 DOT 文件外,还可以借助多种编程语言接口来动态构建图表数据。Python 中就有专门为此设计的一个库叫做 pygraphviz 或者更简单的 graphviz 包[^1]。 例如,如果想要基于 SQL 数据库模式自动生成关系图,则可参照如下做法[^2]: ```python import sql_graphviz schema_dump_file = 'path/to/your/schema_dump.sql' graphviz_commands = sql_graphviz.generate_graphviz(schema_dump_file) with open('output.dot', 'w') as f: f.write(graphviz_commands) ``` 此脚本读取给定位置上的 SQL 方案转储文件,并调用函数 `generate_graphviz()` 来获得相应的 Graphviz 表达形式;最后保存至指定的目标 .dot 文件中以便后续处理或查看。 #### 提升工作效率的小技巧 为了让日常工作中更加高效地运用 Graphviz 工具集,不妨考虑采用一些辅助性的插件和服务。例如,Graphviz Interactive Preview 插件能够提供即时反馈机制,让用户实时看到修改后的效果变化情况,从而加快迭代速度和提高最终成果的质量[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ankie(资深技术项目经理)

打赏就是赞赏,感谢你的认可!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值