Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
sklearn-cookbook-zh
提交
8097dcd3
S
sklearn-cookbook-zh
项目概览
OpenDocCN
/
sklearn-cookbook-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
sklearn-cookbook-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
8097dcd3
编写于
6月 22, 2017
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6.22
上级
3becdbde
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
77 addition
and
0 deletion
+77
-0
5.md
5.md
+77
-0
未找到文件。
5.md
浏览文件 @
8097dcd3
...
...
@@ -1084,3 +1084,80 @@ LassoCV(alphas=None, copy_X=True, cv=None, eps=0.001,
```
我们可以看到,我们在模型的训练中获得了极大的提升。这刚好解释了,我们需要承认,不是所有特征都需要或者应该放进模型中。
## 5.11 使用 joblib 保存模型
这个秘籍中,我们打算展示如何保存模型,便于以后使用。例如,你可能打算实际使用模型来预测结果,并自动做出决策。
### 准备
这个秘籍中,我们会执行下列任务:
1.
训练我们要保存的模型
2.
导入 joblib 并保存模型
### 操作步骤
为了使用 joblib 保存我们的模型,可以使用下面的代码:
```
py
>>>
from
sklearn
import
datasets
,
tree
>>>
X
,
y
=
datasets
.
make_classification
()
>>>
dt
=
tree
.
DecisionTreeClassifier
()
>>>
dt
.
fit
(
X
,
y
)
DecisionTreeClassifier
(
compute_importances
=
None
,
criterion
=
'gini'
,
max_depth
=
None
,
max_features
=
None
,
max_leaf_nodes
=
None
,
min_density
=
None
,
min_samples_leaf
=
1
,
min_samples_split
=
2
,
random_state
=
None
,
splitter
=
'best'
)
>>>
from
sklearn.externals
import
joblib
>>>
joblib
.
dump
(
dt
,
"dtree.clf"
)
[
'dtree.clf'
,
'dtree.clf_01.npy'
,
'dtree.clf_02.npy'
,
'dtree.clf_03.npy'
,
'dtree.clf_04.npy'
]
```
### 工作原理
上面的下面的原理是,保存对象状态,可以重新加载进 Sklearn 对象。要注意,对于不同的模型类型,模型的状态拥有不同的复杂度级别。
出于简单的因素,将我们要保存的东西看做一种方式,我们提供出入来预测结果。对于回归来说很简单,简单的线性代数就足以。但是,对于像是随机森林的模型,我们可能拥有很多颗树。这些树可能拥有不同的复杂度级别,比较困难。
### 更多
我们可以简单随机森林模型的大小:
```
py
>>>
from
sklearn
import
ensemble
>>>
rf
=
ensemble
.
RandomForestClassifier
()
>>>
rf
.
fit
(
X
,
y
)
RandomForestClassifier
(
bootstrap
=
True
,
compute_importances
=
None
,
criterion
=
'gini'
,
max_depth
=
None
,
max_features
=
'auto'
,
max_leaf_nodes
=
None
,
min_density
=
None
,
min_samples_leaf
=
1
,
min_samples_split
=
2
,
n_estimators
=
10
,
n_jobs
=
1
,
oob_score
=
False
,
random_state
=
None
,
verbose
=
0
)
```
我打算省略输出,但是总之,我的机器上一共有 52 个输出文件。
```
py
>>>
joblib
.
dump
(
rf
,
"rf.clf"
)
[
'rf.clf'
,
'rf.clf_01.npy'
,
'rf.clf_02.npy'
,
'rf.clf_03.npy'
,
'rf.clf_04.npy'
,
'rf.clf_05.npy'
,
'rf.clf_06.npy'
,
...
]
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录