机器学习-04-分类算法-01决策树案例

总结

本系列是机器学习课程的系列课程,主要介绍机器学习中分类算法,本篇为分类算法开篇与决策树部分。

本门课程的目标

完成一个特定行业的算法应用全过程:

懂业务+会选择合适的算法+数据处理+算法训练+算法调优+算法融合
+算法评估+持续调优+工程化接口实现

机器学习案例

安装可视化库Graphviz

graphviz下载地址
在这里插入图片描述

下载后,解压,移动路径如下

D:\Graphviz-10.0.1-win64\bin

添加环境变量:

D:\Graphviz-10.0.1-win64\bin

在这里插入图片描述

安装graphviz的python库

pip install graphviz==0.20.1

决策树代码

核心类:

sklearn.tree.DecisionTreeClassifier(
	criterion=’entropy’, 
	max_depth=None, 
	min_samples_split=2, 
	min_samples_leaf=1, 
	min_weight_fraction_leaf=0.0, 
	random_state=None, 
	max_leaf_nodes=None, 
	)

参考:
https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html#sklearn.tree.DecisionTreeClassifier
在这里插入图片描述

完整代码:

#引入load_iris
from sklearn.datasets import load_iris
#引入tree
from sklearn import tree
#用于画出图形
import graphviz 
#在window设置graphviz的路径
import os
os.environ["PATH"] += os.pathsep + 'D:\Graphviz-10.0.1-win64\bin'

#加载数据
iris = load_iris()
#创建决策树分类器
clf = tree.DecisionTreeClassifier()
#训练
clf = clf.fit(iris.data, iris.target)


print(iris.data[0:5])

输出为:
array([[5.1, 3.5, 1.4, 0.2],
[4.9, 3. , 1.4, 0.2],
[4.7, 3.2, 1.3, 0.2],
[4.6, 3.1, 1.5, 0.2],
[5. , 3.6, 1.4, 0.2]


import joblib
joblib.dump(clf,'tree.pkl')
tree = joblib.load('tree.pkl')
tree.predict([[5.1, 3.5, 1.4, 0.2]])

输出为:
array([0])

#通过graphviz将模型保存
dot_data = tree.export_graphviz(clf, out_file=None,filled=True, rounded=True, 
special_characters=True) 
#设置graphviz的数据源
graph = graphviz.Source(dot_data) 
#显示图片
#graph.save()
graph

输出为:
在这里插入图片描述

确定方向过程

针对完全没有基础的同学们
1.确定机器学习的应用领域有哪些
2.查找机器学习的算法应用有哪些
3.确定想要研究的领域极其对应的算法
4.通过招聘网站和论文等确定具体的技术
5.了解业务流程,查找数据
6.复现经典算法
7.持续优化,并尝试与对应企业人员沟通心得
8.企业给出反馈

相关推荐

  1. 机器学习 -决策案例

    2024-03-12 07:44:02       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 07:44:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 07:44:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 07:44:02       82 阅读
  4. Python语言-面向对象

    2024-03-12 07:44:02       91 阅读

热门阅读

  1. android JNI float *转MutableList

    2024-03-12 07:44:02       45 阅读
  2. ArrayList与LinkedList的区别

    2024-03-12 07:44:02       50 阅读
  3. django中的QuerySet

    2024-03-12 07:44:02       42 阅读
  4. TypeScript之枚举

    2024-03-12 07:44:02       44 阅读
  5. 如何用prompt提示词开发Open AI项目?

    2024-03-12 07:44:02       47 阅读
  6. Prompt提示词工程构建指南

    2024-03-12 07:44:02       39 阅读
  7. 牛客周赛 Round 36----->C.小红的白色字符串

    2024-03-12 07:44:02       44 阅读
  8. SQLite表添加主键

    2024-03-12 07:44:02       40 阅读
  9. stl-list

    2024-03-12 07:44:02       44 阅读
  10. python-0001-安装虚拟环境

    2024-03-12 07:44:02       40 阅读
  11. C#设计原则

    2024-03-12 07:44:02       38 阅读