Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
tianlh
LightGBM-DCU
Commits
e7c6e67a
Unverified
Commit
e7c6e67a
authored
Sep 02, 2019
by
Nikita Titov
Committed by
GitHub
Sep 02, 2019
Browse files
[tests] simplified test and added dumped data to gitignore (#2372)
parent
0f9720bf
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
30 deletions
+25
-30
.gitignore
.gitignore
+2
-1
tests/python_package_test/test_engine.py
tests/python_package_test/test_engine.py
+23
-29
No files found.
.gitignore
View file @
e7c6e67a
...
@@ -373,9 +373,10 @@ ENV/
...
@@ -373,9 +373,10 @@ ENV/
# R testing artefact
# R testing artefact
lightgbm.model
lightgbm.model
# saved or dumped model
# saved or dumped model
/data
*.model
*.model
*.pkl
*.pkl
*.bin
# macOS
# macOS
**/.DS_Store
**/.DS_Store
...
...
tests/python_package_test/test_engine.py
View file @
e7c6e67a
...
@@ -371,54 +371,48 @@ class TestEngine(unittest.TestCase):
...
@@ -371,54 +371,48 @@ class TestEngine(unittest.TestCase):
self
.
assertLess
(
ret
,
0.2
)
self
.
assertLess
(
ret
,
0.2
)
def
test_multi_class_error
(
self
):
def
test_multi_class_error
(
self
):
X
,
y
=
load_digits
(
return_X_y
=
True
)
X
,
y
=
load_digits
(
10
,
True
)
params
=
{
'objective'
:
'multiclass'
,
'num_classes'
:
10
,
'metric'
:
'multi_error'
,
'num_leaves'
:
4
,
'seed'
:
0
,
params
=
{
'objective'
:
'multiclass'
,
'num_classes'
:
10
,
'metric'
:
'multi_error'
,
'num_
round
s'
:
30
,
'verbose'
:
-
1
}
'num_
leave
s'
:
4
,
'verbose'
:
-
1
}
lgb_data
=
lgb
.
Dataset
(
X
,
label
=
y
)
lgb_data
=
lgb
.
Dataset
(
X
,
label
=
y
)
results
=
{}
est
=
lgb
.
train
(
params
,
lgb_data
,
num_boost_round
=
10
)
est
=
lgb
.
train
(
params
,
lgb_data
,
valid_sets
=
[
lgb_data
],
valid_names
=
[
'train'
],
evals_result
=
results
)
predict_default
=
est
.
predict
(
X
)
predict_default
=
est
.
predict
(
X
)
params
=
{
'objective'
:
'multiclass'
,
'num_classes'
:
10
,
'metric'
:
'multi_error'
,
'multi_error_top_k'
:
1
,
'num_leaves'
:
4
,
'seed'
:
0
,
'num_rounds'
:
30
,
'verbose'
:
-
1
,
'metric_freq'
:
10
}
results
=
{}
results
=
{}
est
=
lgb
.
train
(
params
,
lgb_data
,
valid_sets
=
[
lgb_data
],
valid_names
=
[
'train'
],
evals_result
=
results
)
est
=
lgb
.
train
(
dict
(
params
,
multi_error_top_k
=
1
),
lgb_data
,
num_boost_round
=
10
,
valid_sets
=
[
lgb_data
],
evals_result
=
results
,
verbose_eval
=
False
)
predict_1
=
est
.
predict
(
X
)
predict_1
=
est
.
predict
(
X
)
# check that default gives same result as k = 1
# check that default gives same result as k = 1
np
.
testing
.
assert_allclose
(
predict_1
,
predict_default
)
np
.
testing
.
assert_allclose
(
predict_1
,
predict_default
)
# check against independent calculation for k = 1
# check against independent calculation for k = 1
err
=
top_k_error
(
y
,
predict_1
,
1
)
err
=
top_k_error
(
y
,
predict_1
,
1
)
np
.
testing
.
assert_allclose
(
results
[
'train'
][
'multi_error'
][
-
1
],
err
)
self
.
assertAlmostEqual
(
results
[
'train
ing
'
][
'multi_error'
][
-
1
],
err
)
# check against independent calculation for k = 2
# check against independent calculation for k = 2
params
=
{
'objective'
:
'multiclass'
,
'num_classes'
:
10
,
'metric'
:
'multi_error'
,
'multi_error_top_k'
:
2
,
'num_leaves'
:
4
,
'seed'
:
0
,
'num_rounds'
:
30
,
'verbose'
:
-
1
,
'metric_freq'
:
10
}
results
=
{}
results
=
{}
est
=
lgb
.
train
(
params
,
lgb_data
,
valid_sets
=
[
lgb_data
],
valid_names
=
[
'train'
],
evals_result
=
results
)
est
=
lgb
.
train
(
dict
(
params
,
multi_error_top_k
=
2
),
lgb_data
,
num_boost_round
=
10
,
valid_sets
=
[
lgb_data
],
evals_result
=
results
,
verbose_eval
=
False
)
predict_2
=
est
.
predict
(
X
)
predict_2
=
est
.
predict
(
X
)
err
=
top_k_error
(
y
,
predict_2
,
2
)
err
=
top_k_error
(
y
,
predict_2
,
2
)
np
.
testing
.
assert_allclose
(
results
[
'train'
][
'multi_error@2'
][
-
1
],
err
)
self
.
assertAlmostEqual
(
results
[
'train
ing
'
][
'multi_error@2'
][
-
1
],
err
)
# check against independent calculation for k = 10
# check against independent calculation for k = 10
params
=
{
'objective'
:
'multiclass'
,
'num_classes'
:
10
,
'metric'
:
'multi_error'
,
'multi_error_top_k'
:
10
,
'num_leaves'
:
4
,
'seed'
:
0
,
'num_rounds'
:
30
,
'verbose'
:
-
1
,
'metric_freq'
:
10
}
results
=
{}
results
=
{}
est
=
lgb
.
train
(
params
,
lgb_data
,
valid_sets
=
[
lgb_data
],
valid_names
=
[
'train'
],
evals_result
=
results
)
est
=
lgb
.
train
(
dict
(
params
,
multi_error_top_k
=
10
),
lgb_data
,
num_boost_round
=
10
,
predict_2
=
est
.
predict
(
X
)
valid_sets
=
[
lgb_data
],
evals_result
=
results
,
verbose_eval
=
False
)
err
=
top_k_error
(
y
,
predict_2
,
10
)
predict_3
=
est
.
predict
(
X
)
np
.
testing
.
assert_allclose
(
results
[
'train'
][
'multi_error@10'
][
-
1
],
err
)
err
=
top_k_error
(
y
,
predict_3
,
10
)
# check case where predictions are equal
self
.
assertAlmostEqual
(
results
[
'training'
][
'multi_error@10'
][
-
1
],
err
)
# check cases where predictions are equal
X
=
np
.
array
([[
0
,
0
],
[
0
,
0
]])
X
=
np
.
array
([[
0
,
0
],
[
0
,
0
]])
y
=
np
.
array
([
0
,
1
])
y
=
np
.
array
([
0
,
1
])
lgb_data
=
lgb
.
Dataset
(
X
,
label
=
y
)
lgb_data
=
lgb
.
Dataset
(
X
,
label
=
y
)
params
=
{
'objective'
:
'multiclass'
,
'num_classes'
:
2
,
'metric'
:
'multi_error'
,
'multi_error_top_k'
:
1
,
params
[
'num_classes'
]
=
2
'num_leaves'
:
4
,
'seed'
:
0
,
'num_rounds'
:
1
,
'verbose'
:
-
1
,
'metric_freq'
:
10
}
results
=
{}
results
=
{}
lgb
.
train
(
params
,
lgb_data
,
valid_sets
=
[
lgb_data
],
valid_names
=
[
'train'
],
evals_result
=
results
)
lgb
.
train
(
params
,
lgb_data
,
num_boost_round
=
10
,
np
.
testing
.
assert_allclose
(
results
[
'train'
][
'multi_error'
][
-
1
],
1
)
valid_sets
=
[
lgb_data
],
evals_result
=
results
,
verbose_eval
=
False
)
lgb_data
=
lgb
.
Dataset
(
X
,
label
=
y
)
self
.
assertAlmostEqual
(
results
[
'training'
][
'multi_error'
][
-
1
],
1
)
params
=
{
'objective'
:
'multiclass'
,
'num_classes'
:
2
,
'metric'
:
'multi_error'
,
'multi_error_top_k'
:
2
,
'num_leaves'
:
4
,
'seed'
:
0
,
'num_rounds'
:
1
,
'verbose'
:
-
1
,
'metric_freq'
:
10
}
results
=
{}
results
=
{}
lgb
.
train
(
params
,
lgb_data
,
valid_sets
=
[
lgb_data
],
valid_names
=
[
'train'
],
evals_result
=
results
)
lgb
.
train
(
dict
(
params
,
multi_error_top_k
=
2
),
lgb_data
,
num_boost_round
=
10
,
np
.
testing
.
assert_allclose
(
results
[
'train'
][
'multi_error@2'
][
-
1
],
0
)
valid_sets
=
[
lgb_data
],
evals_result
=
results
,
verbose_eval
=
False
)
self
.
assertAlmostEqual
(
results
[
'training'
][
'multi_error@2'
][
-
1
],
0
)
def
test_early_stopping
(
self
):
def
test_early_stopping
(
self
):
X
,
y
=
load_breast_cancer
(
True
)
X
,
y
=
load_breast_cancer
(
True
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment