Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F98774915
testing.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Jan 16, 09:00
Size
2 KB
Mime Type
text/x-python
Expires
Sat, Jan 18, 09:00 (2 d)
Engine
blob
Format
Raw Data
Handle
23646323
Attached To
R10130 EE311
testing.py
View Options
"""
EE-311
======
Lab 3: logistic regression and gradient descent
----------------------------------------
created by Francois Marelli on 05.03.2020
"""
import
unittest
import
numpy
as
np
import
homework
from
sklearn.datasets
import
load_iris
from
sklearn.linear_model
import
LogisticRegression
import
importlib
importlib
.
reload
(
homework
)
class
Test
(
unittest
.
TestCase
):
def
test_model_prediction
(
self
):
data_X
,
data_y
=
load_iris
(
return_X_y
=
True
)
mask
=
(
data_y
==
0
)
|
(
data_y
==
1
)
data_X
=
data_X
[
mask
]
data_y
=
data_y
[
mask
]
classifier
=
LogisticRegression
()
.
fit
(
data_X
,
data_y
)
beta
=
np
.
concatenate
((
classifier
.
intercept_
,
classifier
.
coef_
[
0
,
:]))
.
squeeze
()
p
=
homework
.
model_prediction
(
data_X
.
copy
(),
beta
.
copy
())
p2
=
classifier
.
predict
(
data_X
)
np
.
testing
.
assert_array_equal
(
p
,
p2
)
sample_X
=
np
.
zeros_like
(
data_X
[
0
])
sample_X
[
0
]
=
(
0.25
-
beta
[
0
])
/
beta
[
1
]
np
.
testing
.
assert_array_equal
(
homework
.
model_prediction
(
sample_X
[
None
,
:],
beta
),
1
)
def
test_gradient
(
self
):
data_X
,
data_y
=
load_iris
(
return_X_y
=
True
)
mask
=
(
data_y
==
0
)
|
(
data_y
==
1
)
data_X
=
data_X
[
mask
]
data_y
=
data_y
[
mask
]
data_X
=
data_X
[:
-
5
]
data_y
=
data_y
[:
-
5
]
grad_ref
=
np
.
load
(
"test_data.npy"
)
beta_0
=
np
.
zeros_like
(
grad_ref
)
grad_out
=
homework
.
logistic_loss_derivative
(
data_X
.
copy
(),
data_y
.
copy
(),
beta_0
)
np
.
testing
.
assert_allclose
(
grad_out
,
grad_ref
,
atol
=
1e-9
,
rtol
=
1e-5
)
def
test_gradient_descent
(
self
):
data_X
,
data_y
=
load_iris
(
return_X_y
=
True
)
mask
=
(
data_y
==
0
)
|
(
data_y
==
1
)
data_X
=
data_X
[
mask
]
data_y
=
data_y
[
mask
]
classifier
=
LogisticRegression
()
.
fit
(
data_X
,
data_y
)
beta
=
np
.
concatenate
((
classifier
.
intercept_
,
classifier
.
coef_
[
0
,
:]))
beta_0
=
np
.
zeros_like
(
beta
)
beta_out
=
homework
.
gradient_descent
(
data_X
.
copy
(),
data_y
.
copy
(),
beta_0
,
1e-1
,
5
)
p
=
homework
.
model_prediction
(
data_X
.
copy
(),
beta_out
)
p2
=
classifier
.
predict
(
data_X
)
np
.
testing
.
assert_array_equal
(
p
,
p2
)
if
__name__
==
"__main__"
:
unittest
.
main
()
Event Timeline
Log In to Comment