Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
pycaret
提交
34f722d6
pycaret
项目概览
OpenDocCN
/
pycaret
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
pycaret
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
34f722d6
编写于
5月 31, 2020
作者:
P
PyCaret
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
updated classification.py
上级
05f0e65a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
60 addition
and
24 deletion
+60
-24
pycaret/classification.py
pycaret/classification.py
+60
-24
未找到文件。
pycaret/classification.py
浏览文件 @
34f722d6
...
...
@@ -1673,6 +1673,7 @@ def create_model(estimator = None,
fold
=
10
,
round
=
4
,
verbose
=
True
,
system
=
True
,
#added in pycaret==1.0.1
**
kwargs
):
#added in pycaret==1.0.1
"""
...
...
@@ -1740,6 +1741,9 @@ def create_model(estimator = None,
verbose: Boolean, default = True
Score grid is not printed when verbose is set to False.
system: Boolean, default = True
Must remain True all times. Only to be changed by internal functions.
**kwargs:
Additional keyword arguments to pass to the estimator.
...
...
@@ -1930,7 +1934,7 @@ def create_model(estimator = None,
from
sklearn.neighbors
import
KNeighborsClassifier
model
=
KNeighborsClassifier
(
n_jobs
=
n_jobs_param
,
**
kwargs
)
full_name
=
'K Ne
arest Neighbours
'
full_name
=
'K Ne
ighbors Classifier
'
elif
estimator
==
'nb'
:
...
...
@@ -1942,19 +1946,19 @@ def create_model(estimator = None,
from
sklearn.tree
import
DecisionTreeClassifier
model
=
DecisionTreeClassifier
(
random_state
=
seed
,
**
kwargs
)
full_name
=
'Decision Tree'
full_name
=
'Decision Tree
Classifier
'
elif
estimator
==
'svm'
:
from
sklearn.linear_model
import
SGDClassifier
model
=
SGDClassifier
(
max_iter
=
1000
,
tol
=
0.001
,
random_state
=
seed
,
n_jobs
=
n_jobs_param
,
**
kwargs
)
full_name
=
'S
upport Vector Machine
'
full_name
=
'S
VM - Linear Kernel
'
elif
estimator
==
'rbfsvm'
:
from
sklearn.svm
import
SVC
model
=
SVC
(
gamma
=
'auto'
,
C
=
1
,
probability
=
True
,
kernel
=
'rbf'
,
random_state
=
seed
,
**
kwargs
)
full_name
=
'
RBF SVM
'
full_name
=
'
SVM - Radial Kernel
'
elif
estimator
==
'gpc'
:
...
...
@@ -1966,7 +1970,7 @@ def create_model(estimator = None,
from
sklearn.neural_network
import
MLPClassifier
model
=
MLPClassifier
(
max_iter
=
500
,
random_state
=
seed
,
**
kwargs
)
full_name
=
'M
ulti Level Perceptron
'
full_name
=
'M
LP Classifier
'
elif
estimator
==
'ridge'
:
...
...
@@ -1990,7 +1994,7 @@ def create_model(estimator = None,
from
sklearn.ensemble
import
AdaBoostClassifier
model
=
AdaBoostClassifier
(
random_state
=
seed
,
**
kwargs
)
full_name
=
'AdaBoost Classifier'
full_name
=
'Ada
Boost Classifier'
elif
estimator
==
'gbc'
:
...
...
@@ -2265,15 +2269,22 @@ def create_model(estimator = None,
model
.
fit
(
data_X
,
data_y
)
#mlflow logging
mlflow
.
set_experiment
(
exp_name_log
)
with
mlflow
.
start_run
(
run_name
=
full_name
)
as
run
:
params
=
model
.
get_params
()
mlflow
.
log_metrics
({
"Accuracy"
:
avgs_acc
[
0
],
"AUC"
:
avgs_auc
[
0
],
"Recall"
:
avgs_recall
[
0
],
"Precision"
:
avgs_precision
[
0
],
"F1"
:
avgs_f1
[
0
],
"Kappa"
:
avgs_kappa
[
0
],
"MCC"
:
avgs_mcc
[
0
]})
mlflow
.
log_params
(
params
)
if
logging_param
and
system
:
mlflow
.
set_experiment
(
exp_name_log
)
with
mlflow
.
start_run
(
run_name
=
full_name
)
as
run
:
params
=
model
.
get_params
()
mlflow
.
log_metrics
({
"Accuracy"
:
avgs_acc
[
0
],
"AUC"
:
avgs_auc
[
0
],
"Recall"
:
avgs_recall
[
0
],
"Precision"
:
avgs_precision
[
0
],
"F1"
:
avgs_f1
[
0
],
"Kappa"
:
avgs_kappa
[
0
],
"MCC"
:
avgs_mcc
[
0
]})
mlflow
.
log_params
(
params
)
# Log the sklearn model and register as version 1
mlflow
.
sklearn
.
log_model
(
model
,
full_name
)
#log other parameter of create_model function
mlflow
.
log_param
(
"ensemble"
,
ensemble
)
mlflow
.
log_param
(
"ensemble_method"
,
method
)
mlflow
.
log_param
(
"fold"
,
fold
)
mlflow
.
log_param
(
"round"
,
round
)
# Log the sklearn model and register as version 1
#mlflow.sklearn.log_model(model, full_name)
progress
.
value
+=
1
...
...
@@ -4369,6 +4380,26 @@ def tune_model(estimator = None,
'CatBoostClassifier'
:
'catboost'
,
'BaggingClassifier'
:
'Bagging'
}
model_dict_logging
=
{
'ExtraTreesClassifier'
:
'Extra Trees Classifier'
,
'GradientBoostingClassifier'
:
'Gradient Boosting Classifier'
,
'RandomForestClassifier'
:
'Random Forest Classifier'
,
'LGBMClassifier'
:
'Light Gradient Boosting Machine'
,
'XGBClassifier'
:
'Extreme Gradient Boosting'
,
'AdaBoostClassifier'
:
'Ada Boost Classifier'
,
'DecisionTreeClassifier'
:
'Decision Tree Classifier'
,
'RidgeClassifier'
:
'Ridge Classifier'
,
'LogisticRegression'
:
'Logistic Regression'
,
'KNeighborsClassifier'
:
'K Neighbors Classifier'
,
'GaussianNB'
:
'Naive Bayes'
,
'SGDClassifier'
:
'SVM - Linear Kernel'
,
'SVC'
:
'SVM - Radial Kernel'
,
'GaussianProcessClassifier'
:
'Gaussian Process Classifier'
,
'MLPClassifier'
:
'MLP Classifier'
,
'QuadraticDiscriminantAnalysis'
:
'Quadratic Discriminant Analysis'
,
'LinearDiscriminantAnalysis'
:
'Linear Discriminant Analysis'
,
'CatBoostClassifier'
:
'CatBoost Classifier'
,
'BaggingClassifier'
:
'Bagging Classifier'
}
_estimator_
=
estimator
estimator
=
model_dict
.
get
(
mn
)
...
...
@@ -5104,9 +5135,9 @@ def tune_model(estimator = None,
#creating base model for comparison
if
estimator
in
[
'Bagging'
,
'ada'
]:
base_model
=
create_model
(
estimator
=
_estimator_
,
verbose
=
False
)
base_model
=
create_model
(
estimator
=
_estimator_
,
verbose
=
False
,
system
=
False
)
else
:
base_model
=
create_model
(
estimator
=
estimator
,
verbose
=
False
)
base_model
=
create_model
(
estimator
=
estimator
,
verbose
=
False
,
system
=
False
)
base_model_results
=
create_model_container
[
-
1
][
compare_dimension
][
-
2
:][
0
]
tuned_model_results
=
create_model_container
[
-
2
][
compare_dimension
][
-
2
:][
0
]
...
...
@@ -5125,17 +5156,21 @@ def tune_model(estimator = None,
#mlflow logging
import
mlflow
mlflow
.
set_experiment
(
exp_name_log
)
with
mlflow
.
start_run
(
run_name
=
model_name
)
as
run
:
full_name
=
model_dict_logging
.
get
(
mn
)
full_name
=
'[TUNED] '
+
str
(
full_name
)
with
mlflow
.
start_run
(
run_name
=
full_name
)
as
run
:
params
=
model_grid
.
cv_results_
.
get
(
'params'
)
metrics
=
model_grid
.
cv_results_
.
get
(
'mean_test_score'
)
for
i
in
metrics
:
mlflow
.
log_metric
(
'Score'
,
i
)
# Log the sklearn model and register as version 1
#mlflow.sklearn.log_model(model, full_name)
mlflow
.
log_metric
(
'Mean Test Score'
,
i
)
params
=
best_model
.
get_params
()
mlflow
.
log_params
(
params
)
mlflow
.
log_metrics
({
"Accuracy"
:
avgs_acc
[
0
],
"AUC"
:
avgs_auc
[
0
],
"Recall"
:
avgs_recall
[
0
],
"Precision"
:
avgs_precision
[
0
],
"F1"
:
avgs_f1
[
0
],
"Kappa"
:
avgs_kappa
[
0
],
"MCC"
:
avgs_mcc
[
0
]})
if
verbose
:
clear_output
()
if
html_param
:
...
...
@@ -5143,7 +5178,7 @@ def tune_model(estimator = None,
else
:
print
(
model_results
.
data
)
return
best_model
,
model_grid
return
best_model
def
blend_models
(
estimator_list
=
'All'
,
fold
=
10
,
...
...
@@ -9327,4 +9362,5 @@ def automl(optimize='Accuracy', use_holdout=False):
return
automl_finalized
def
pull
():
return
display_container
[
-
1
]
\ No newline at end of file
return
display_container
[
-
1
]
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录