NativeVex commited on
Commit
11146f7
1 Parent(s): e5a723e

last question WIP

Browse files
midterm/Pipfile ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [[source]]
2
+ url = "https://pypi.org/simple"
3
+ verify_ssl = true
4
+ name = "pypi"
5
+
6
+ [packages]
7
+ black = "*"
8
+ jupyterlab = "*"
9
+ pandas = "*"
10
+ scikit-learn = "*"
11
+ numpy = "*"
12
+ ipython = "*"
13
+
14
+ [dev-packages]
15
+
16
+ [requires]
17
+ python_version = "3.10"
midterm/Pipfile.lock ADDED
@@ -0,0 +1,1374 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_meta": {
3
+ "hash": {
4
+ "sha256": "eadb9aca9c2e9dcfe3044c4a636221469690ffde3a8dab04ade665197db578a0"
5
+ },
6
+ "pipfile-spec": 6,
7
+ "requires": {
8
+ "python_version": "3.10"
9
+ },
10
+ "sources": [
11
+ {
12
+ "name": "pypi",
13
+ "url": "https://pypi.org/simple",
14
+ "verify_ssl": true
15
+ }
16
+ ]
17
+ },
18
+ "default": {
19
+ "aiofiles": {
20
+ "hashes": [
21
+ "sha256:1142fa8e80dbae46bb6339573ad4c8c0841358f79c6eb50a493dceca14621bad",
22
+ "sha256:9107f1ca0b2a5553987a94a3c9959fe5b491fdf731389aa5b7b1bd0733e32de6"
23
+ ],
24
+ "markers": "python_version >= '3.7' and python_version < '4.0'",
25
+ "version": "==22.1.0"
26
+ },
27
+ "aiosqlite": {
28
+ "hashes": [
29
+ "sha256:c3511b841e3a2c5614900ba1d179f366826857586f78abd75e7cbeb88e75a557",
30
+ "sha256:faa843ef5fb08bafe9a9b3859012d3d9d6f77ce3637899de20606b7fc39aa213"
31
+ ],
32
+ "markers": "python_version >= '3.7'",
33
+ "version": "==0.18.0"
34
+ },
35
+ "anyio": {
36
+ "hashes": [
37
+ "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421",
38
+ "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3"
39
+ ],
40
+ "markers": "python_full_version >= '3.6.2'",
41
+ "version": "==3.6.2"
42
+ },
43
+ "argon2-cffi": {
44
+ "hashes": [
45
+ "sha256:8c976986f2c5c0e5000919e6de187906cfd81fb1c72bf9d88c01177e77da7f80",
46
+ "sha256:d384164d944190a7dd7ef22c6aa3ff197da12962bd04b17f64d4e93d934dba5b"
47
+ ],
48
+ "markers": "python_version >= '3.6'",
49
+ "version": "==21.3.0"
50
+ },
51
+ "argon2-cffi-bindings": {
52
+ "hashes": [
53
+ "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670",
54
+ "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f",
55
+ "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583",
56
+ "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194",
57
+ "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c",
58
+ "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a",
59
+ "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082",
60
+ "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5",
61
+ "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f",
62
+ "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7",
63
+ "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d",
64
+ "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f",
65
+ "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae",
66
+ "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3",
67
+ "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86",
68
+ "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367",
69
+ "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d",
70
+ "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93",
71
+ "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb",
72
+ "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e",
73
+ "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"
74
+ ],
75
+ "markers": "python_version >= '3.6'",
76
+ "version": "==21.2.0"
77
+ },
78
+ "arrow": {
79
+ "hashes": [
80
+ "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1",
81
+ "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2"
82
+ ],
83
+ "markers": "python_version >= '3.6'",
84
+ "version": "==1.2.3"
85
+ },
86
+ "asttokens": {
87
+ "hashes": [
88
+ "sha256:4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3",
89
+ "sha256:6b0ac9e93fb0335014d382b8fa9b3afa7df546984258005da0b9e7095b3deb1c"
90
+ ],
91
+ "version": "==2.2.1"
92
+ },
93
+ "attrs": {
94
+ "hashes": [
95
+ "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836",
96
+ "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"
97
+ ],
98
+ "markers": "python_version >= '3.6'",
99
+ "version": "==22.2.0"
100
+ },
101
+ "babel": {
102
+ "hashes": [
103
+ "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610",
104
+ "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"
105
+ ],
106
+ "markers": "python_version >= '3.7'",
107
+ "version": "==2.12.1"
108
+ },
109
+ "backcall": {
110
+ "hashes": [
111
+ "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e",
112
+ "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"
113
+ ],
114
+ "version": "==0.2.0"
115
+ },
116
+ "beautifulsoup4": {
117
+ "hashes": [
118
+ "sha256:0e79446b10b3ecb499c1556f7e228a53e64a2bfcebd455f370d8927cb5b59e39",
119
+ "sha256:bc4bdda6717de5a2987436fb8d72f45dc90dd856bdfd512a1314ce90349a0106"
120
+ ],
121
+ "markers": "python_full_version >= '3.6.0'",
122
+ "version": "==4.11.2"
123
+ },
124
+ "black": {
125
+ "hashes": [
126
+ "sha256:0052dba51dec07ed029ed61b18183942043e00008ec65d5028814afaab9a22fd",
127
+ "sha256:0680d4380db3719ebcfb2613f34e86c8e6d15ffeabcf8ec59355c5e7b85bb555",
128
+ "sha256:121ca7f10b4a01fd99951234abdbd97728e1240be89fde18480ffac16503d481",
129
+ "sha256:162e37d49e93bd6eb6f1afc3e17a3d23a823042530c37c3c42eeeaf026f38468",
130
+ "sha256:2a951cc83ab535d248c89f300eccbd625e80ab880fbcfb5ac8afb5f01a258ac9",
131
+ "sha256:2bf649fda611c8550ca9d7592b69f0637218c2369b7744694c5e4902873b2f3a",
132
+ "sha256:382998821f58e5c8238d3166c492139573325287820963d2f7de4d518bd76958",
133
+ "sha256:49f7b39e30f326a34b5c9a4213213a6b221d7ae9d58ec70df1c4a307cf2a1580",
134
+ "sha256:57c18c5165c1dbe291d5306e53fb3988122890e57bd9b3dcb75f967f13411a26",
135
+ "sha256:7a0f701d314cfa0896b9001df70a530eb2472babb76086344e688829efd97d32",
136
+ "sha256:8178318cb74f98bc571eef19068f6ab5613b3e59d4f47771582f04e175570ed8",
137
+ "sha256:8b70eb40a78dfac24842458476135f9b99ab952dd3f2dab738c1881a9b38b753",
138
+ "sha256:9880d7d419bb7e709b37e28deb5e68a49227713b623c72b2b931028ea65f619b",
139
+ "sha256:9afd3f493666a0cd8f8df9a0200c6359ac53940cbde049dcb1a7eb6ee2dd7074",
140
+ "sha256:a29650759a6a0944e7cca036674655c2f0f63806ddecc45ed40b7b8aa314b651",
141
+ "sha256:a436e7881d33acaf2536c46a454bb964a50eff59b21b51c6ccf5a40601fbef24",
142
+ "sha256:a59db0a2094d2259c554676403fa2fac3473ccf1354c1c63eccf7ae65aac8ab6",
143
+ "sha256:a8471939da5e824b891b25751955be52ee7f8a30a916d570a5ba8e0f2eb2ecad",
144
+ "sha256:b0bd97bea8903f5a2ba7219257a44e3f1f9d00073d6cc1add68f0beec69692ac",
145
+ "sha256:b6a92a41ee34b883b359998f0c8e6eb8e99803aa8bf3123bf2b2e6fec505a221",
146
+ "sha256:bb460c8561c8c1bec7824ecbc3ce085eb50005883a6203dcfb0122e95797ee06",
147
+ "sha256:bfffba28dc52a58f04492181392ee380e95262af14ee01d4bc7bb1b1c6ca8d27",
148
+ "sha256:c1c476bc7b7d021321e7d93dc2cbd78ce103b84d5a4cf97ed535fbc0d6660648",
149
+ "sha256:c91dfc2c2a4e50df0026f88d2215e166616e0c80e86004d0003ece0488db2739",
150
+ "sha256:e6663f91b6feca5d06f2ccd49a10f254f9298cc1f7f49c46e498a0771b507104"
151
+ ],
152
+ "index": "pypi",
153
+ "version": "==23.1.0"
154
+ },
155
+ "bleach": {
156
+ "hashes": [
157
+ "sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414",
158
+ "sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4"
159
+ ],
160
+ "markers": "python_version >= '3.7'",
161
+ "version": "==6.0.0"
162
+ },
163
+ "certifi": {
164
+ "hashes": [
165
+ "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3",
166
+ "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"
167
+ ],
168
+ "markers": "python_version >= '3.6'",
169
+ "version": "==2022.12.7"
170
+ },
171
+ "cffi": {
172
+ "hashes": [
173
+ "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5",
174
+ "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef",
175
+ "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104",
176
+ "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426",
177
+ "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405",
178
+ "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375",
179
+ "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a",
180
+ "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e",
181
+ "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc",
182
+ "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf",
183
+ "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185",
184
+ "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497",
185
+ "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3",
186
+ "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35",
187
+ "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c",
188
+ "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83",
189
+ "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21",
190
+ "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca",
191
+ "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984",
192
+ "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac",
193
+ "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd",
194
+ "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee",
195
+ "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a",
196
+ "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2",
197
+ "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192",
198
+ "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7",
199
+ "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585",
200
+ "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f",
201
+ "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e",
202
+ "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27",
203
+ "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b",
204
+ "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e",
205
+ "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e",
206
+ "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d",
207
+ "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c",
208
+ "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415",
209
+ "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82",
210
+ "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02",
211
+ "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314",
212
+ "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325",
213
+ "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c",
214
+ "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3",
215
+ "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914",
216
+ "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045",
217
+ "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d",
218
+ "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9",
219
+ "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5",
220
+ "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2",
221
+ "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c",
222
+ "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3",
223
+ "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2",
224
+ "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8",
225
+ "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d",
226
+ "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d",
227
+ "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9",
228
+ "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162",
229
+ "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76",
230
+ "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4",
231
+ "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e",
232
+ "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9",
233
+ "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6",
234
+ "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b",
235
+ "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01",
236
+ "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"
237
+ ],
238
+ "version": "==1.15.1"
239
+ },
240
+ "charset-normalizer": {
241
+ "hashes": [
242
+ "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6",
243
+ "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1",
244
+ "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e",
245
+ "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373",
246
+ "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62",
247
+ "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230",
248
+ "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be",
249
+ "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c",
250
+ "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0",
251
+ "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448",
252
+ "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f",
253
+ "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649",
254
+ "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d",
255
+ "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0",
256
+ "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706",
257
+ "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a",
258
+ "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59",
259
+ "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23",
260
+ "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5",
261
+ "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb",
262
+ "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e",
263
+ "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e",
264
+ "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c",
265
+ "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28",
266
+ "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d",
267
+ "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41",
268
+ "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974",
269
+ "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce",
270
+ "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f",
271
+ "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1",
272
+ "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d",
273
+ "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8",
274
+ "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017",
275
+ "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31",
276
+ "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7",
277
+ "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8",
278
+ "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e",
279
+ "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14",
280
+ "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd",
281
+ "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d",
282
+ "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795",
283
+ "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b",
284
+ "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b",
285
+ "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b",
286
+ "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203",
287
+ "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f",
288
+ "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19",
289
+ "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1",
290
+ "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a",
291
+ "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac",
292
+ "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9",
293
+ "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0",
294
+ "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137",
295
+ "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f",
296
+ "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6",
297
+ "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5",
298
+ "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909",
299
+ "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f",
300
+ "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0",
301
+ "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324",
302
+ "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755",
303
+ "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb",
304
+ "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854",
305
+ "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c",
306
+ "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60",
307
+ "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84",
308
+ "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0",
309
+ "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b",
310
+ "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1",
311
+ "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531",
312
+ "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1",
313
+ "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11",
314
+ "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326",
315
+ "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df",
316
+ "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab"
317
+ ],
318
+ "markers": "python_full_version >= '3.7.0'",
319
+ "version": "==3.1.0"
320
+ },
321
+ "click": {
322
+ "hashes": [
323
+ "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e",
324
+ "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"
325
+ ],
326
+ "markers": "python_version >= '3.7'",
327
+ "version": "==8.1.3"
328
+ },
329
+ "comm": {
330
+ "hashes": [
331
+ "sha256:3e2f5826578e683999b93716285b3b1f344f157bf75fa9ce0a797564e742f062",
332
+ "sha256:9f3abf3515112fa7c55a42a6a5ab358735c9dccc8b5910a9d8e3ef5998130666"
333
+ ],
334
+ "markers": "python_version >= '3.6'",
335
+ "version": "==0.1.2"
336
+ },
337
+ "debugpy": {
338
+ "hashes": [
339
+ "sha256:0ea1011e94416e90fb3598cc3ef5e08b0a4dd6ce6b9b33ccd436c1dffc8cd664",
340
+ "sha256:23363e6d2a04d726bbc1400bd4e9898d54419b36b2cdf7020e3e215e1dcd0f8e",
341
+ "sha256:23c29e40e39ad7d869d408ded414f6d46d82f8a93b5857ac3ac1e915893139ca",
342
+ "sha256:549ae0cb2d34fc09d1675f9b01942499751d174381b6082279cf19cdb3c47cbe",
343
+ "sha256:70ab53918fd907a3ade01909b3ed783287ede362c80c75f41e79596d5ccacd32",
344
+ "sha256:72687b62a54d9d9e3fb85e7a37ea67f0e803aaa31be700e61d2f3742a5683917",
345
+ "sha256:78739f77c58048ec006e2b3eb2e0cd5a06d5f48c915e2fc7911a337354508110",
346
+ "sha256:7aa7e103610e5867d19a7d069e02e72eb2b3045b124d051cfd1538f1d8832d1b",
347
+ "sha256:87755e173fcf2ec45f584bb9d61aa7686bb665d861b81faa366d59808bbd3494",
348
+ "sha256:9b5d1b13d7c7bf5d7cf700e33c0b8ddb7baf030fcf502f76fc061ddd9405d16c",
349
+ "sha256:a771739902b1ae22a120dbbb6bd91b2cae6696c0e318b5007c5348519a4211c6",
350
+ "sha256:b9c2130e1c632540fbf9c2c88341493797ddf58016e7cba02e311de9b0a96b67",
351
+ "sha256:be596b44448aac14eb3614248c91586e2bc1728e020e82ef3197189aae556115",
352
+ "sha256:c05349890804d846eca32ce0623ab66c06f8800db881af7a876dc073ac1c2225",
353
+ "sha256:de4a045fbf388e120bb6ec66501458d3134f4729faed26ff95de52a754abddb1",
354
+ "sha256:dff595686178b0e75580c24d316aa45a8f4d56e2418063865c114eef651a982e",
355
+ "sha256:f6383c29e796203a0bba74a250615ad262c4279d398e89d895a69d3069498305"
356
+ ],
357
+ "markers": "python_version >= '3.7'",
358
+ "version": "==1.6.6"
359
+ },
360
+ "decorator": {
361
+ "hashes": [
362
+ "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330",
363
+ "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"
364
+ ],
365
+ "markers": "python_version >= '3.5'",
366
+ "version": "==5.1.1"
367
+ },
368
+ "defusedxml": {
369
+ "hashes": [
370
+ "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69",
371
+ "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"
372
+ ],
373
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
374
+ "version": "==0.7.1"
375
+ },
376
+ "executing": {
377
+ "hashes": [
378
+ "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc",
379
+ "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107"
380
+ ],
381
+ "version": "==1.2.0"
382
+ },
383
+ "fastjsonschema": {
384
+ "hashes": [
385
+ "sha256:04fbecc94300436f628517b05741b7ea009506ce8f946d40996567c669318490",
386
+ "sha256:4a30d6315a68c253cfa8f963b9697246315aa3db89f98b97235e345dedfb0b8e"
387
+ ],
388
+ "version": "==2.16.3"
389
+ },
390
+ "fqdn": {
391
+ "hashes": [
392
+ "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f",
393
+ "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"
394
+ ],
395
+ "version": "==1.5.1"
396
+ },
397
+ "idna": {
398
+ "hashes": [
399
+ "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4",
400
+ "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
401
+ ],
402
+ "markers": "python_version >= '3.5'",
403
+ "version": "==3.4"
404
+ },
405
+ "ipykernel": {
406
+ "hashes": [
407
+ "sha256:24ebd9715e317c185e37156ab3a87382410185230dde7aeffce389d6c7d4428a",
408
+ "sha256:c8ff581905d70e7299bc1473a2f7c113bec1744fb3746d58e5b4b93bd8ee7001"
409
+ ],
410
+ "markers": "python_version >= '3.8'",
411
+ "version": "==6.21.3"
412
+ },
413
+ "ipython": {
414
+ "hashes": [
415
+ "sha256:5b54478e459155a326bf5f42ee4f29df76258c0279c36f21d71ddb560f88b156",
416
+ "sha256:735cede4099dbc903ee540307b9171fbfef4aa75cfcacc5a273b2cda2f02be04"
417
+ ],
418
+ "index": "pypi",
419
+ "version": "==8.11.0"
420
+ },
421
+ "ipython-genutils": {
422
+ "hashes": [
423
+ "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8",
424
+ "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"
425
+ ],
426
+ "version": "==0.2.0"
427
+ },
428
+ "isoduration": {
429
+ "hashes": [
430
+ "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9",
431
+ "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"
432
+ ],
433
+ "version": "==20.11.0"
434
+ },
435
+ "jedi": {
436
+ "hashes": [
437
+ "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e",
438
+ "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612"
439
+ ],
440
+ "markers": "python_version >= '3.6'",
441
+ "version": "==0.18.2"
442
+ },
443
+ "jinja2": {
444
+ "hashes": [
445
+ "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852",
446
+ "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"
447
+ ],
448
+ "markers": "python_version >= '3.7'",
449
+ "version": "==3.1.2"
450
+ },
451
+ "joblib": {
452
+ "hashes": [
453
+ "sha256:091138ed78f800342968c523bdde947e7a305b8594b910a0fea2ab83c3c6d385",
454
+ "sha256:e1cee4a79e4af22881164f218d4311f60074197fb707e082e803b61f6d137018"
455
+ ],
456
+ "markers": "python_version >= '3.7'",
457
+ "version": "==1.2.0"
458
+ },
459
+ "json5": {
460
+ "hashes": [
461
+ "sha256:1aa54b80b5e507dfe31d12b7743a642e2ffa6f70bf73b8e3d7d1d5fba83d99bd",
462
+ "sha256:4f1e196acc55b83985a51318489f345963c7ba84aa37607e49073066c562e99b"
463
+ ],
464
+ "version": "==0.9.11"
465
+ },
466
+ "jsonpointer": {
467
+ "hashes": [
468
+ "sha256:51801e558539b4e9cd268638c078c6c5746c9ac96bc38152d443400e4f3793e9",
469
+ "sha256:97cba51526c829282218feb99dab1b1e6bdf8efd1c43dc9d57be093c0d69c99a"
470
+ ],
471
+ "version": "==2.3"
472
+ },
473
+ "jsonschema": {
474
+ "hashes": [
475
+ "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d",
476
+ "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"
477
+ ],
478
+ "markers": "python_version >= '3.7'",
479
+ "version": "==4.17.3"
480
+ },
481
+ "jupyter-client": {
482
+ "hashes": [
483
+ "sha256:be48ac6bd659cbbddb7a674cf06b3b8afbf53f228253cf58bde604c03bd487b0",
484
+ "sha256:ed65498bea6d876ef9d8da3e0db3dd33c5d129f5b2645f56ae03993782966bd0"
485
+ ],
486
+ "markers": "python_version >= '3.8'",
487
+ "version": "==8.0.3"
488
+ },
489
+ "jupyter-core": {
490
+ "hashes": [
491
+ "sha256:1407cdb4c79ee467696c04b76633fc1884015fa109323365a6372c8e890cc83f",
492
+ "sha256:4bdc2928c37f6917130c667d8b8708f20aee539d8283c6be72aabd2a4b4c83b0"
493
+ ],
494
+ "markers": "python_version >= '3.8'",
495
+ "version": "==5.2.0"
496
+ },
497
+ "jupyter-events": {
498
+ "hashes": [
499
+ "sha256:57a2749f87ba387cd1bfd9b22a0875b889237dbf2edc2121ebb22bde47036c17",
500
+ "sha256:9a6e9995f75d1b7146b436ea24d696ce3a35bfa8bfe45e0c33c334c79464d0b3"
501
+ ],
502
+ "markers": "python_version >= '3.7'",
503
+ "version": "==0.6.3"
504
+ },
505
+ "jupyter-server": {
506
+ "hashes": [
507
+ "sha256:cc22792281bfb0131a728414f28ae74883b44ad6d009971aa975cae9bcc650de",
508
+ "sha256:f31f0ba2c3c44f07143bfa03fb07dd0253f857eb63f0c26f2fea955f04a49765"
509
+ ],
510
+ "markers": "python_version >= '3.8'",
511
+ "version": "==2.4.0"
512
+ },
513
+ "jupyter-server-fileid": {
514
+ "hashes": [
515
+ "sha256:1e0816d0857f490fadea11348570f0cba03f70f315c9842225aecfa45882b6af",
516
+ "sha256:6092ef114eddccf6cba69c0f0feb612c2f476f2e9467828809edb854c18806bb"
517
+ ],
518
+ "markers": "python_version >= '3.7'",
519
+ "version": "==0.8.0"
520
+ },
521
+ "jupyter-server-terminals": {
522
+ "hashes": [
523
+ "sha256:57ab779797c25a7ba68e97bcfb5d7740f2b5e8a83b5e8102b10438041a7eac5d",
524
+ "sha256:75779164661cec02a8758a5311e18bb8eb70c4e86c6b699403100f1585a12a36"
525
+ ],
526
+ "markers": "python_version >= '3.8'",
527
+ "version": "==0.4.4"
528
+ },
529
+ "jupyter-server-ydoc": {
530
+ "hashes": [
531
+ "sha256:18275ff1ce7e93bbda2301ca066273b3951fc50b0d9c8fc33788374134ad7920",
532
+ "sha256:ab10864708c81fa41ab9f2ed3626b54ff6926eaf14545d1d439714978dad6e9f"
533
+ ],
534
+ "markers": "python_version >= '3.7'",
535
+ "version": "==0.6.1"
536
+ },
537
+ "jupyter-ydoc": {
538
+ "hashes": [
539
+ "sha256:3163bd4745eedd46d4bba6df52ab26be3c5c44c3a8aaf247635062486ea8f84f",
540
+ "sha256:596a9ae5986b59f8776c42430b5ad516405963574078ab801781933c9690be93"
541
+ ],
542
+ "markers": "python_version >= '3.7'",
543
+ "version": "==0.2.2"
544
+ },
545
+ "jupyterlab": {
546
+ "hashes": [
547
+ "sha256:ad6707dd0149b629d0ed5b56916cfcdb816b376c6af3190337faba09e27ea29e",
548
+ "sha256:aee98c174180e98a30470297d10b959e8e64f2288970c0de65f0a6d2b4807034"
549
+ ],
550
+ "index": "pypi",
551
+ "version": "==3.6.1"
552
+ },
553
+ "jupyterlab-pygments": {
554
+ "hashes": [
555
+ "sha256:2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f",
556
+ "sha256:7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d"
557
+ ],
558
+ "markers": "python_version >= '3.7'",
559
+ "version": "==0.2.2"
560
+ },
561
+ "jupyterlab-server": {
562
+ "hashes": [
563
+ "sha256:0203f96913187a9e7a6c8cef3556b499d2be67f014ad4ce9b76c8dcdcadb2367",
564
+ "sha256:75e81a8ef23f561b70f5c9a76de2ab9ebb291358b371d6260f51af7e347da719"
565
+ ],
566
+ "markers": "python_version >= '3.7'",
567
+ "version": "==2.20.0"
568
+ },
569
+ "markupsafe": {
570
+ "hashes": [
571
+ "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed",
572
+ "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc",
573
+ "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2",
574
+ "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460",
575
+ "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7",
576
+ "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0",
577
+ "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1",
578
+ "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa",
579
+ "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03",
580
+ "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323",
581
+ "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65",
582
+ "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013",
583
+ "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036",
584
+ "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f",
585
+ "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4",
586
+ "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419",
587
+ "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2",
588
+ "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619",
589
+ "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a",
590
+ "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a",
591
+ "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd",
592
+ "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7",
593
+ "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666",
594
+ "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65",
595
+ "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859",
596
+ "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625",
597
+ "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff",
598
+ "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156",
599
+ "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd",
600
+ "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba",
601
+ "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f",
602
+ "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1",
603
+ "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094",
604
+ "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a",
605
+ "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513",
606
+ "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed",
607
+ "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d",
608
+ "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3",
609
+ "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147",
610
+ "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c",
611
+ "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603",
612
+ "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601",
613
+ "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a",
614
+ "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1",
615
+ "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d",
616
+ "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3",
617
+ "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54",
618
+ "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2",
619
+ "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6",
620
+ "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"
621
+ ],
622
+ "markers": "python_version >= '3.7'",
623
+ "version": "==2.1.2"
624
+ },
625
+ "matplotlib-inline": {
626
+ "hashes": [
627
+ "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311",
628
+ "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"
629
+ ],
630
+ "markers": "python_version >= '3.5'",
631
+ "version": "==0.1.6"
632
+ },
633
+ "mistune": {
634
+ "hashes": [
635
+ "sha256:0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34",
636
+ "sha256:bad7f5d431886fcbaf5f758118ecff70d31f75231b34024a1341120340a65ce8"
637
+ ],
638
+ "version": "==2.0.5"
639
+ },
640
+ "mypy-extensions": {
641
+ "hashes": [
642
+ "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d",
643
+ "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"
644
+ ],
645
+ "markers": "python_version >= '3.5'",
646
+ "version": "==1.0.0"
647
+ },
648
+ "nbclassic": {
649
+ "hashes": [
650
+ "sha256:889772a7ba524eb781d2901f396540bcad41151e1f7e043f12ebc14a6540d342",
651
+ "sha256:e849277872d9ffd8fe4b39a8038d01ba82d6a1def9ce11b1b3c26c9546ed5131"
652
+ ],
653
+ "markers": "python_version >= '3.7'",
654
+ "version": "==0.5.3"
655
+ },
656
+ "nbclient": {
657
+ "hashes": [
658
+ "sha256:884a3f4a8c4fc24bb9302f263e0af47d97f0d01fe11ba714171b320c8ac09547",
659
+ "sha256:d97ac6257de2794f5397609df754fcbca1a603e94e924eb9b99787c031ae2e7c"
660
+ ],
661
+ "markers": "python_full_version >= '3.7.0'",
662
+ "version": "==0.7.2"
663
+ },
664
+ "nbconvert": {
665
+ "hashes": [
666
+ "sha256:495638c5e06005f4a5ce828d8a81d28e34f95c20f4384d5d7a22254b443836e7",
667
+ "sha256:a42c3ac137c64f70cbe4d763111bf358641ea53b37a01a5c202ed86374af5234"
668
+ ],
669
+ "markers": "python_version >= '3.7'",
670
+ "version": "==7.2.9"
671
+ },
672
+ "nbformat": {
673
+ "hashes": [
674
+ "sha256:22a98a6516ca216002b0a34591af5bcb8072ca6c63910baffc901cfa07fefbf0",
675
+ "sha256:4b021fca24d3a747bf4e626694033d792d594705829e5e35b14ee3369f9f6477"
676
+ ],
677
+ "markers": "python_version >= '3.7'",
678
+ "version": "==5.7.3"
679
+ },
680
+ "nest-asyncio": {
681
+ "hashes": [
682
+ "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8",
683
+ "sha256:d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290"
684
+ ],
685
+ "markers": "python_version >= '3.5'",
686
+ "version": "==1.5.6"
687
+ },
688
+ "notebook": {
689
+ "hashes": [
690
+ "sha256:50a334ad9d60b30cb759405168ef6fc3d60350ab5439fb1631544bb09dcb2cce",
691
+ "sha256:b12bee3292211d85dd7e588a790ddce30cb3e8fbcfa1e803522a207f60819e05"
692
+ ],
693
+ "markers": "python_version >= '3.7'",
694
+ "version": "==6.5.3"
695
+ },
696
+ "notebook-shim": {
697
+ "hashes": [
698
+ "sha256:090e0baf9a5582ff59b607af523ca2db68ff216da0c69956b62cab2ef4fc9c3f",
699
+ "sha256:9c6c30f74c4fbea6fce55c1be58e7fd0409b1c681b075dcedceb005db5026949"
700
+ ],
701
+ "markers": "python_version >= '3.7'",
702
+ "version": "==0.2.2"
703
+ },
704
+ "numpy": {
705
+ "hashes": [
706
+ "sha256:003a9f530e880cb2cd177cba1af7220b9aa42def9c4afc2a2fc3ee6be7eb2b22",
707
+ "sha256:150947adbdfeceec4e5926d956a06865c1c690f2fd902efede4ca6fe2e657c3f",
708
+ "sha256:2620e8592136e073bd12ee4536149380695fbe9ebeae845b81237f986479ffc9",
709
+ "sha256:2eabd64ddb96a1239791da78fa5f4e1693ae2dadc82a76bc76a14cbb2b966e96",
710
+ "sha256:4173bde9fa2a005c2c6e2ea8ac1618e2ed2c1c6ec8a7657237854d42094123a0",
711
+ "sha256:4199e7cfc307a778f72d293372736223e39ec9ac096ff0a2e64853b866a8e18a",
712
+ "sha256:4cecaed30dc14123020f77b03601559fff3e6cd0c048f8b5289f4eeabb0eb281",
713
+ "sha256:557d42778a6869c2162deb40ad82612645e21d79e11c1dc62c6e82a2220ffb04",
714
+ "sha256:63e45511ee4d9d976637d11e6c9864eae50e12dc9598f531c035265991910468",
715
+ "sha256:6524630f71631be2dabe0c541e7675db82651eb998496bbe16bc4f77f0772253",
716
+ "sha256:76807b4063f0002c8532cfeac47a3068a69561e9c8715efdad3c642eb27c0756",
717
+ "sha256:7de8fdde0003f4294655aa5d5f0a89c26b9f22c0a58790c38fae1ed392d44a5a",
718
+ "sha256:889b2cc88b837d86eda1b17008ebeb679d82875022200c6e8e4ce6cf549b7acb",
719
+ "sha256:92011118955724465fb6853def593cf397b4a1367495e0b59a7e69d40c4eb71d",
720
+ "sha256:97cf27e51fa078078c649a51d7ade3c92d9e709ba2bfb97493007103c741f1d0",
721
+ "sha256:9a23f8440561a633204a67fb44617ce2a299beecf3295f0d13c495518908e910",
722
+ "sha256:a51725a815a6188c662fb66fb32077709a9ca38053f0274640293a14fdd22978",
723
+ "sha256:a77d3e1163a7770164404607b7ba3967fb49b24782a6ef85d9b5f54126cc39e5",
724
+ "sha256:adbdce121896fd3a17a77ab0b0b5eedf05a9834a18699db6829a64e1dfccca7f",
725
+ "sha256:c29e6bd0ec49a44d7690ecb623a8eac5ab8a923bce0bea6293953992edf3a76a",
726
+ "sha256:c72a6b2f4af1adfe193f7beb91ddf708ff867a3f977ef2ec53c0ffb8283ab9f5",
727
+ "sha256:d0a2db9d20117bf523dde15858398e7c0858aadca7c0f088ac0d6edd360e9ad2",
728
+ "sha256:e3ab5d32784e843fc0dd3ab6dcafc67ef806e6b6828dc6af2f689be0eb4d781d",
729
+ "sha256:e428c4fbfa085f947b536706a2fc349245d7baa8334f0c5723c56a10595f9b95",
730
+ "sha256:e8d2859428712785e8a8b7d2b3ef0a1d1565892367b32f915c4a4df44d0e64f5",
731
+ "sha256:eef70b4fc1e872ebddc38cddacc87c19a3709c0e3e5d20bf3954c147b1dd941d",
732
+ "sha256:f64bb98ac59b3ea3bf74b02f13836eb2e24e48e0ab0145bbda646295769bd780",
733
+ "sha256:f9006288bcf4895917d02583cf3411f98631275bc67cce355a7f39f8c14338fa"
734
+ ],
735
+ "index": "pypi",
736
+ "version": "==1.24.2"
737
+ },
738
+ "packaging": {
739
+ "hashes": [
740
+ "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2",
741
+ "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"
742
+ ],
743
+ "markers": "python_version >= '3.7'",
744
+ "version": "==23.0"
745
+ },
746
+ "pandas": {
747
+ "hashes": [
748
+ "sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813",
749
+ "sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792",
750
+ "sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406",
751
+ "sha256:41179ce559943d83a9b4bbacb736b04c928b095b5f25dd2b7389eda08f46f373",
752
+ "sha256:478ff646ca42b20376e4ed3fa2e8d7341e8a63105586efe54fa2508ee087f328",
753
+ "sha256:50869a35cbb0f2e0cd5ec04b191e7b12ed688874bd05dd777c19b28cbea90996",
754
+ "sha256:565fa34a5434d38e9d250af3c12ff931abaf88050551d9fbcdfafca50d62babf",
755
+ "sha256:5f2b952406a1588ad4cad5b3f55f520e82e902388a6d5a4a91baa8d38d23c7f6",
756
+ "sha256:5fbcb19d6fceb9e946b3e23258757c7b225ba450990d9ed63ccceeb8cae609f7",
757
+ "sha256:6973549c01ca91ec96199e940495219c887ea815b2083722821f1d7abfa2b4dc",
758
+ "sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1",
759
+ "sha256:7a0a56cef15fd1586726dace5616db75ebcfec9179a3a55e78f72c5639fa2a23",
760
+ "sha256:7cec0bee9f294e5de5bbfc14d0573f65526071029d036b753ee6507d2a21480a",
761
+ "sha256:87bd9c03da1ac870a6d2c8902a0e1fd4267ca00f13bc494c9e5a9020920e1d51",
762
+ "sha256:972d8a45395f2a2d26733eb8d0f629b2f90bebe8e8eddbb8829b180c09639572",
763
+ "sha256:9842b6f4b8479e41968eced654487258ed81df7d1c9b7b870ceea24ed9459b31",
764
+ "sha256:9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5",
765
+ "sha256:a50d9a4336a9621cab7b8eb3fb11adb82de58f9b91d84c2cd526576b881a0c5a",
766
+ "sha256:bc4c368f42b551bf72fac35c5128963a171b40dce866fb066540eeaf46faa003",
767
+ "sha256:c39a8da13cede5adcd3be1182883aea1c925476f4e84b2807a46e2775306305d",
768
+ "sha256:c3ac844a0fe00bfaeb2c9b51ab1424e5c8744f89860b138434a363b1f620f354",
769
+ "sha256:c4c00e0b0597c8e4f59e8d461f797e5d70b4d025880516a8261b2817c47759ee",
770
+ "sha256:c74a62747864ed568f5a82a49a23a8d7fe171d0c69038b38cedf0976831296fa",
771
+ "sha256:dd05f7783b3274aa206a1af06f0ceed3f9b412cf665b7247eacd83be41cf7bf0",
772
+ "sha256:dfd681c5dc216037e0b0a2c821f5ed99ba9f03ebcf119c7dac0e9a7b960b9ec9",
773
+ "sha256:e474390e60ed609cec869b0da796ad94f420bb057d86784191eefc62b65819ae",
774
+ "sha256:f76d097d12c82a535fda9dfe5e8dd4127952b45fea9b0276cb30cca5ea313fbc"
775
+ ],
776
+ "index": "pypi",
777
+ "version": "==1.5.3"
778
+ },
779
+ "pandocfilters": {
780
+ "hashes": [
781
+ "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38",
782
+ "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"
783
+ ],
784
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
785
+ "version": "==1.5.0"
786
+ },
787
+ "parso": {
788
+ "hashes": [
789
+ "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0",
790
+ "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"
791
+ ],
792
+ "markers": "python_version >= '3.6'",
793
+ "version": "==0.8.3"
794
+ },
795
+ "pathspec": {
796
+ "hashes": [
797
+ "sha256:3a66eb970cbac598f9e5ccb5b2cf58930cd8e3ed86d393d541eaf2d8b1705229",
798
+ "sha256:64d338d4e0914e91c1792321e6907b5a593f1ab1851de7fc269557a21b30ebbc"
799
+ ],
800
+ "markers": "python_version >= '3.7'",
801
+ "version": "==0.11.0"
802
+ },
803
+ "pexpect": {
804
+ "hashes": [
805
+ "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937",
806
+ "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"
807
+ ],
808
+ "markers": "sys_platform != 'win32'",
809
+ "version": "==4.8.0"
810
+ },
811
+ "pickleshare": {
812
+ "hashes": [
813
+ "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca",
814
+ "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"
815
+ ],
816
+ "version": "==0.7.5"
817
+ },
818
+ "platformdirs": {
819
+ "hashes": [
820
+ "sha256:13b08a53ed71021350c9e300d4ea8668438fb0046ab3937ac9a29913a1a1350a",
821
+ "sha256:accc3665857288317f32c7bebb5a8e482ba717b474f3fc1d18ca7f9214be0cef"
822
+ ],
823
+ "markers": "python_version >= '3.7'",
824
+ "version": "==3.1.0"
825
+ },
826
+ "prometheus-client": {
827
+ "hashes": [
828
+ "sha256:0836af6eb2c8f4fed712b2f279f6c0a8bbab29f9f4aa15276b91c7cb0d1616ab",
829
+ "sha256:a03e35b359f14dd1630898543e2120addfdeacd1a6069c1367ae90fd93ad3f48"
830
+ ],
831
+ "markers": "python_version >= '3.6'",
832
+ "version": "==0.16.0"
833
+ },
834
+ "prompt-toolkit": {
835
+ "hashes": [
836
+ "sha256:23ac5d50538a9a38c8bde05fecb47d0b403ecd0662857a86f886f798563d5b9b",
837
+ "sha256:45ea77a2f7c60418850331366c81cf6b5b9cf4c7fd34616f733c5427e6abbb1f"
838
+ ],
839
+ "markers": "python_full_version >= '3.7.0'",
840
+ "version": "==3.0.38"
841
+ },
842
+ "psutil": {
843
+ "hashes": [
844
+ "sha256:149555f59a69b33f056ba1c4eb22bb7bf24332ce631c44a319cec09f876aaeff",
845
+ "sha256:16653106f3b59386ffe10e0bad3bb6299e169d5327d3f187614b1cb8f24cf2e1",
846
+ "sha256:3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62",
847
+ "sha256:3ff89f9b835100a825b14c2808a106b6fdcc4b15483141482a12c725e7f78549",
848
+ "sha256:54c0d3d8e0078b7666984e11b12b88af2db11d11249a8ac8920dd5ef68a66e08",
849
+ "sha256:54d5b184728298f2ca8567bf83c422b706200bcbbfafdc06718264f9393cfeb7",
850
+ "sha256:6001c809253a29599bc0dfd5179d9f8a5779f9dffea1da0f13c53ee568115e1e",
851
+ "sha256:68908971daf802203f3d37e78d3f8831b6d1014864d7a85937941bb35f09aefe",
852
+ "sha256:6b92c532979bafc2df23ddc785ed116fced1f492ad90a6830cf24f4d1ea27d24",
853
+ "sha256:852dd5d9f8a47169fe62fd4a971aa07859476c2ba22c2254d4a1baa4e10b95ad",
854
+ "sha256:9120cd39dca5c5e1c54b59a41d205023d436799b1c8c4d3ff71af18535728e94",
855
+ "sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8",
856
+ "sha256:efeae04f9516907be44904cc7ce08defb6b665128992a56957abc9b61dca94b7",
857
+ "sha256:fd8522436a6ada7b4aad6638662966de0d61d241cb821239b2ae7013d41a43d4"
858
+ ],
859
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
860
+ "version": "==5.9.4"
861
+ },
862
+ "ptyprocess": {
863
+ "hashes": [
864
+ "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35",
865
+ "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"
866
+ ],
867
+ "version": "==0.7.0"
868
+ },
869
+ "pure-eval": {
870
+ "hashes": [
871
+ "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350",
872
+ "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"
873
+ ],
874
+ "version": "==0.2.2"
875
+ },
876
+ "pycparser": {
877
+ "hashes": [
878
+ "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9",
879
+ "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"
880
+ ],
881
+ "version": "==2.21"
882
+ },
883
+ "pygments": {
884
+ "hashes": [
885
+ "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297",
886
+ "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"
887
+ ],
888
+ "markers": "python_version >= '3.6'",
889
+ "version": "==2.14.0"
890
+ },
891
+ "pyrsistent": {
892
+ "hashes": [
893
+ "sha256:016ad1afadf318eb7911baa24b049909f7f3bb2c5b1ed7b6a8f21db21ea3faa8",
894
+ "sha256:1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440",
895
+ "sha256:20460ac0ea439a3e79caa1dbd560344b64ed75e85d8703943e0b66c2a6150e4a",
896
+ "sha256:3311cb4237a341aa52ab8448c27e3a9931e2ee09561ad150ba94e4cfd3fc888c",
897
+ "sha256:3a8cb235fa6d3fd7aae6a4f1429bbb1fec1577d978098da1252f0489937786f3",
898
+ "sha256:3ab2204234c0ecd8b9368dbd6a53e83c3d4f3cab10ecaf6d0e772f456c442393",
899
+ "sha256:42ac0b2f44607eb92ae88609eda931a4f0dfa03038c44c772e07f43e738bcac9",
900
+ "sha256:49c32f216c17148695ca0e02a5c521e28a4ee6c5089f97e34fe24163113722da",
901
+ "sha256:4b774f9288dda8d425adb6544e5903f1fb6c273ab3128a355c6b972b7df39dcf",
902
+ "sha256:4c18264cb84b5e68e7085a43723f9e4c1fd1d935ab240ce02c0324a8e01ccb64",
903
+ "sha256:5a474fb80f5e0d6c9394d8db0fc19e90fa540b82ee52dba7d246a7791712f74a",
904
+ "sha256:64220c429e42a7150f4bfd280f6f4bb2850f95956bde93c6fda1b70507af6ef3",
905
+ "sha256:878433581fc23e906d947a6814336eee031a00e6defba224234169ae3d3d6a98",
906
+ "sha256:99abb85579e2165bd8522f0c0138864da97847875ecbd45f3e7e2af569bfc6f2",
907
+ "sha256:a2471f3f8693101975b1ff85ffd19bb7ca7dd7c38f8a81701f67d6b4f97b87d8",
908
+ "sha256:aeda827381f5e5d65cced3024126529ddc4289d944f75e090572c77ceb19adbf",
909
+ "sha256:b735e538f74ec31378f5a1e3886a26d2ca6351106b4dfde376a26fc32a044edc",
910
+ "sha256:c147257a92374fde8498491f53ffa8f4822cd70c0d85037e09028e478cababb7",
911
+ "sha256:c4db1bd596fefd66b296a3d5d943c94f4fac5bcd13e99bffe2ba6a759d959a28",
912
+ "sha256:c74bed51f9b41c48366a286395c67f4e894374306b197e62810e0fdaf2364da2",
913
+ "sha256:c9bb60a40a0ab9aba40a59f68214eed5a29c6274c83b2cc206a359c4a89fa41b",
914
+ "sha256:cc5d149f31706762c1f8bda2e8c4f8fead6e80312e3692619a75301d3dbb819a",
915
+ "sha256:ccf0d6bd208f8111179f0c26fdf84ed7c3891982f2edaeae7422575f47e66b64",
916
+ "sha256:e42296a09e83028b3476f7073fcb69ffebac0e66dbbfd1bd847d61f74db30f19",
917
+ "sha256:e8f2b814a3dc6225964fa03d8582c6e0b6650d68a232df41e3cc1b66a5d2f8d1",
918
+ "sha256:f0774bf48631f3a20471dd7c5989657b639fd2d285b861237ea9e82c36a415a9",
919
+ "sha256:f0e7c4b2f77593871e918be000b96c8107da48444d57005b6a6bc61fb4331b2c"
920
+ ],
921
+ "markers": "python_version >= '3.7'",
922
+ "version": "==0.19.3"
923
+ },
924
+ "python-dateutil": {
925
+ "hashes": [
926
+ "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86",
927
+ "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"
928
+ ],
929
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
930
+ "version": "==2.8.2"
931
+ },
932
+ "python-json-logger": {
933
+ "hashes": [
934
+ "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c",
935
+ "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"
936
+ ],
937
+ "markers": "python_version >= '3.6'",
938
+ "version": "==2.0.7"
939
+ },
940
+ "pytz": {
941
+ "hashes": [
942
+ "sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0",
943
+ "sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a"
944
+ ],
945
+ "version": "==2022.7.1"
946
+ },
947
+ "pyyaml": {
948
+ "hashes": [
949
+ "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf",
950
+ "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293",
951
+ "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b",
952
+ "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57",
953
+ "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b",
954
+ "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4",
955
+ "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07",
956
+ "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba",
957
+ "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9",
958
+ "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287",
959
+ "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513",
960
+ "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0",
961
+ "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782",
962
+ "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0",
963
+ "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92",
964
+ "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f",
965
+ "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2",
966
+ "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc",
967
+ "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1",
968
+ "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c",
969
+ "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86",
970
+ "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4",
971
+ "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c",
972
+ "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34",
973
+ "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b",
974
+ "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d",
975
+ "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c",
976
+ "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb",
977
+ "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7",
978
+ "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737",
979
+ "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3",
980
+ "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d",
981
+ "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358",
982
+ "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53",
983
+ "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78",
984
+ "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803",
985
+ "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a",
986
+ "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f",
987
+ "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174",
988
+ "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"
989
+ ],
990
+ "markers": "python_version >= '3.6'",
991
+ "version": "==6.0"
992
+ },
993
+ "pyzmq": {
994
+ "hashes": [
995
+ "sha256:00c94fd4c9dd3c95aace0c629a7fa713627a5c80c1819326b642adf6c4b8e2a2",
996
+ "sha256:01d53958c787cfea34091fcb8ef36003dbb7913b8e9f8f62a0715234ebc98b70",
997
+ "sha256:0282bba9aee6e0346aa27d6c69b5f7df72b5a964c91958fc9e0c62dcae5fdcdc",
998
+ "sha256:02f5cb60a7da1edd5591a15efa654ffe2303297a41e1b40c3c8942f8f11fc17c",
999
+ "sha256:0645b5a2d2a06fd8eb738018490c514907f7488bf9359c6ee9d92f62e844b76f",
1000
+ "sha256:0a154ef810d44f9d28868be04641f837374a64e7449df98d9208e76c260c7ef1",
1001
+ "sha256:0a90b2480a26aef7c13cff18703ba8d68e181facb40f78873df79e6d42c1facc",
1002
+ "sha256:0e8d00228db627ddd1b418c7afd81820b38575f237128c9650365f2dd6ac3443",
1003
+ "sha256:17e1cb97d573ea84d7cd97188b42ca6f611ab3ee600f6a75041294ede58e3d20",
1004
+ "sha256:183e18742be3621acf8908903f689ec520aee3f08449bfd29f583010ca33022b",
1005
+ "sha256:1f6116991568aac48b94d6d8aaed6157d407942ea385335a6ed313692777fb9d",
1006
+ "sha256:20638121b0bdc80777ce0ec8c1f14f1ffec0697a1f88f0b564fa4a23078791c4",
1007
+ "sha256:2754fa68da08a854f4816e05160137fa938a2347276471103d31e04bcee5365c",
1008
+ "sha256:28bcb2e66224a7ac2843eb632e4109d6b161479e7a2baf24e37210461485b4f1",
1009
+ "sha256:293a7c2128690f496057f1f1eb6074f8746058d13588389981089ec45d8fdc77",
1010
+ "sha256:2a73af6504e0d2805e926abf136ebf536735a13c22f709be7113c2ec65b4bec3",
1011
+ "sha256:2d05d904f03ddf1e0d83d97341354dfe52244a619b5a1440a5f47a5b3451e84e",
1012
+ "sha256:2e7b87638ee30ab13230e37ce5331b3e730b1e0dda30120b9eeec3540ed292c8",
1013
+ "sha256:3100dddcada66ec5940ed6391ebf9d003cc3ede3d320748b2737553019f58230",
1014
+ "sha256:31e523d067ce44a04e876bed3ff9ea1ff8d1b6636d16e5fcace9d22f8c564369",
1015
+ "sha256:3594c0ff604e685d7e907860b61d0e10e46c74a9ffca168f6e9e50ea934ee440",
1016
+ "sha256:3670e8c5644768f214a3b598fe46378a4a6f096d5fb82a67dfd3440028460565",
1017
+ "sha256:4046d03100aca266e70d54a35694cb35d6654cfbef633e848b3c4a8d64b9d187",
1018
+ "sha256:4725412e27612f0d7d7c2f794d89807ad0227c2fc01dd6146b39ada49c748ef9",
1019
+ "sha256:484c2c4ee02c1edc07039f42130bd16e804b1fe81c4f428e0042e03967f40c20",
1020
+ "sha256:487305c2a011fdcf3db1f24e8814bb76d23bc4d2f46e145bc80316a59a9aa07d",
1021
+ "sha256:4a1bc30f0c18444d51e9b0d0dd39e3a4e7c53ee74190bebef238cd58de577ea9",
1022
+ "sha256:4c25c95416133942280faaf068d0fddfd642b927fb28aaf4ab201a738e597c1e",
1023
+ "sha256:4cbb885f347eba7ab7681c450dee5b14aed9f153eec224ec0c3f299273d9241f",
1024
+ "sha256:4d3d604fe0a67afd1aff906e54da557a5203368a99dcc50a70eef374f1d2abef",
1025
+ "sha256:4e295f7928a31ae0f657e848c5045ba6d693fe8921205f408ca3804b1b236968",
1026
+ "sha256:5049e75cc99db65754a3da5f079230fb8889230cf09462ec972d884d1704a3ed",
1027
+ "sha256:5050f5c50b58a6e38ccaf9263a356f74ef1040f5ca4030225d1cb1a858c5b7b6",
1028
+ "sha256:526f884a27e8bba62fe1f4e07c62be2cfe492b6d432a8fdc4210397f8cf15331",
1029
+ "sha256:531866c491aee5a1e967c286cfa470dffac1e2a203b1afda52d62b58782651e9",
1030
+ "sha256:5605621f2181f20b71f13f698944deb26a0a71af4aaf435b34dd90146092d530",
1031
+ "sha256:58fc3ad5e1cfd2e6d24741fbb1e216b388115d31b0ca6670f894187f280b6ba6",
1032
+ "sha256:60ecbfe7669d3808ffa8a7dd1487d6eb8a4015b07235e3b723d4b2a2d4de7203",
1033
+ "sha256:610d2d112acd4e5501fac31010064a6c6efd716ceb968e443cae0059eb7b86de",
1034
+ "sha256:6136bfb0e5a9cf8c60c6ac763eb21f82940a77e6758ea53516c8c7074f4ff948",
1035
+ "sha256:62b9e80890c0d2408eb42d5d7e1fc62a5ce71be3288684788f74cf3e59ffd6e2",
1036
+ "sha256:656281d496aaf9ca4fd4cea84e6d893e3361057c4707bd38618f7e811759103c",
1037
+ "sha256:66509c48f7446b640eeae24b60c9c1461799a27b1b0754e438582e36b5af3315",
1038
+ "sha256:6bf3842af37af43fa953e96074ebbb5315f6a297198f805d019d788a1021dbc8",
1039
+ "sha256:731b208bc9412deeb553c9519dca47136b5a01ca66667cafd8733211941b17e4",
1040
+ "sha256:75243e422e85a62f0ab7953dc315452a56b2c6a7e7d1a3c3109ac3cc57ed6b47",
1041
+ "sha256:7877264aa851c19404b1bb9dbe6eed21ea0c13698be1eda3784aab3036d1c861",
1042
+ "sha256:81f99fb1224d36eb91557afec8cdc2264e856f3464500b55749020ce4c848ef2",
1043
+ "sha256:8539216173135e9e89f6b1cc392e74e6b935b91e8c76106cf50e7a02ab02efe5",
1044
+ "sha256:85456f0d8f3268eecd63dede3b99d5bd8d3b306310c37d4c15141111d22baeaf",
1045
+ "sha256:866eabf7c1315ef2e93e34230db7cbf672e0d7c626b37c11f7e870c8612c3dcc",
1046
+ "sha256:926236ca003aec70574754f39703528947211a406f5c6c8b3e50eca04a9e87fc",
1047
+ "sha256:930e6ad4f2eaac31a3d0c2130619d25db754b267487ebc186c6ad18af2a74018",
1048
+ "sha256:94f0a7289d0f5c80807c37ebb404205e7deb737e8763eb176f4770839ee2a287",
1049
+ "sha256:9a2d5e419bd39a1edb6cdd326d831f0120ddb9b1ff397e7d73541bf393294973",
1050
+ "sha256:9ca6db34b26c4d3e9b0728841ec9aa39484eee272caa97972ec8c8e231b20c7e",
1051
+ "sha256:9f72ea279b2941a5203e935a4588b9ba8a48aeb9a926d9dfa1986278bd362cb8",
1052
+ "sha256:a0e7ef9ac807db50b4eb6f534c5dcc22f998f5dae920cc28873d2c1d080a4fc9",
1053
+ "sha256:a1cd4a95f176cdc0ee0a82d49d5830f13ae6015d89decbf834c273bc33eeb3d3",
1054
+ "sha256:a9c464cc508177c09a5a6122b67f978f20e2954a21362bf095a0da4647e3e908",
1055
+ "sha256:ac97e7d647d5519bcef48dd8d3d331f72975afa5c4496c95f6e854686f45e2d9",
1056
+ "sha256:af1fbfb7ad6ac0009ccee33c90a1d303431c7fb594335eb97760988727a37577",
1057
+ "sha256:b055a1cddf8035966ad13aa51edae5dc8f1bba0b5d5e06f7a843d8b83dc9b66b",
1058
+ "sha256:b6f75b4b8574f3a8a0d6b4b52606fc75b82cb4391471be48ab0b8677c82f9ed4",
1059
+ "sha256:b90bb8dfbbd138558f1f284fecfe328f7653616ff9a972433a00711d9475d1a9",
1060
+ "sha256:be05504af0619d1cffa500af1e0ede69fb683f301003851f5993b5247cc2c576",
1061
+ "sha256:c21a5f4e54a807df5afdef52b6d24ec1580153a6bcf0607f70a6e1d9fa74c5c3",
1062
+ "sha256:c48f257da280b3be6c94e05bd575eddb1373419dbb1a72c3ce64e88f29d1cd6d",
1063
+ "sha256:cac602e02341eaaf4edfd3e29bd3fdef672e61d4e6dfe5c1d065172aee00acee",
1064
+ "sha256:ccb3e1a863222afdbda42b7ca8ac8569959593d7abd44f5a709177d6fa27d266",
1065
+ "sha256:e1081d7030a1229c8ff90120346fb7599b54f552e98fcea5170544e7c6725aab",
1066
+ "sha256:e14df47c1265356715d3d66e90282a645ebc077b70b3806cf47efcb7d1d630cb",
1067
+ "sha256:e4bba04ea779a3d7ef25a821bb63fd0939142c88e7813e5bd9c6265a20c523a2",
1068
+ "sha256:e99629a976809fe102ef73e856cf4b2660acd82a412a51e80ba2215e523dfd0a",
1069
+ "sha256:f330a1a2c7f89fd4b0aa4dcb7bf50243bf1c8da9a2f1efc31daf57a2046b31f2",
1070
+ "sha256:f3f96d452e9580cb961ece2e5a788e64abaecb1232a80e61deffb28e105ff84a",
1071
+ "sha256:fc7c1421c5b1c916acf3128bf3cc7ea7f5018b58c69a6866d70c14190e600ce9"
1072
+ ],
1073
+ "markers": "python_version >= '3.6'",
1074
+ "version": "==25.0.0"
1075
+ },
1076
+ "requests": {
1077
+ "hashes": [
1078
+ "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa",
1079
+ "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf"
1080
+ ],
1081
+ "markers": "python_version >= '3.7' and python_version < '4'",
1082
+ "version": "==2.28.2"
1083
+ },
1084
+ "rfc3339-validator": {
1085
+ "hashes": [
1086
+ "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b",
1087
+ "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"
1088
+ ],
1089
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
1090
+ "version": "==0.1.4"
1091
+ },
1092
+ "rfc3986-validator": {
1093
+ "hashes": [
1094
+ "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9",
1095
+ "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"
1096
+ ],
1097
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
1098
+ "version": "==0.1.1"
1099
+ },
1100
+ "scikit-learn": {
1101
+ "hashes": [
1102
+ "sha256:065e9673e24e0dc5113e2dd2b4ca30c9d8aa2fa90f4c0597241c93b63130d233",
1103
+ "sha256:2dd3ffd3950e3d6c0c0ef9033a9b9b32d910c61bd06cb8206303fb4514b88a49",
1104
+ "sha256:2e2642baa0ad1e8f8188917423dd73994bf25429f8893ddbe115be3ca3183584",
1105
+ "sha256:44b47a305190c28dd8dd73fc9445f802b6ea716669cfc22ab1eb97b335d238b1",
1106
+ "sha256:6477eed40dbce190f9f9e9d0d37e020815825b300121307942ec2110302b66a3",
1107
+ "sha256:6fe83b676f407f00afa388dd1fdd49e5c6612e551ed84f3b1b182858f09e987d",
1108
+ "sha256:7d5312d9674bed14f73773d2acf15a3272639b981e60b72c9b190a0cffed5bad",
1109
+ "sha256:7f69313884e8eb311460cc2f28676d5e400bd929841a2c8eb8742ae78ebf7c20",
1110
+ "sha256:8156db41e1c39c69aa2d8599ab7577af53e9e5e7a57b0504e116cc73c39138dd",
1111
+ "sha256:8429aea30ec24e7a8c7ed8a3fa6213adf3814a6efbea09e16e0a0c71e1a1a3d7",
1112
+ "sha256:8b0670d4224a3c2d596fd572fb4fa673b2a0ccfb07152688ebd2ea0b8c61025c",
1113
+ "sha256:953236889928d104c2ef14027539f5f2609a47ebf716b8cbe4437e85dce42744",
1114
+ "sha256:99cc01184e347de485bf253d19fcb3b1a3fb0ee4cea5ee3c43ec0cc429b6d29f",
1115
+ "sha256:9c710ff9f9936ba8a3b74a455ccf0dcf59b230caa1e9ba0223773c490cab1e51",
1116
+ "sha256:ad66c3848c0a1ec13464b2a95d0a484fd5b02ce74268eaa7e0c697b904f31d6c",
1117
+ "sha256:bf036ea7ef66115e0d49655f16febfa547886deba20149555a41d28f56fd6d3c",
1118
+ "sha256:dfeaf8be72117eb61a164ea6fc8afb6dfe08c6f90365bde2dc16456e4bc8e45f",
1119
+ "sha256:e6e574db9914afcb4e11ade84fab084536a895ca60aadea3041e85b8ac963edb",
1120
+ "sha256:ea061bf0283bf9a9f36ea3c5d3231ba2176221bbd430abd2603b1c3b2ed85c89",
1121
+ "sha256:fe0aa1a7029ed3e1dcbf4a5bc675aa3b1bc468d9012ecf6c6f081251ca47f590",
1122
+ "sha256:fe175ee1dab589d2e1033657c5b6bec92a8a3b69103e3dd361b58014729975c3"
1123
+ ],
1124
+ "index": "pypi",
1125
+ "version": "==1.2.2"
1126
+ },
1127
+ "scipy": {
1128
+ "hashes": [
1129
+ "sha256:049a8bbf0ad95277ffba9b3b7d23e5369cc39e66406d60422c8cfef40ccc8415",
1130
+ "sha256:07c3457ce0b3ad5124f98a86533106b643dd811dd61b548e78cf4c8786652f6f",
1131
+ "sha256:0f1564ea217e82c1bbe75ddf7285ba0709ecd503f048cb1236ae9995f64217bd",
1132
+ "sha256:1553b5dcddd64ba9a0d95355e63fe6c3fc303a8fd77c7bc91e77d61363f7433f",
1133
+ "sha256:15a35c4242ec5f292c3dd364a7c71a61be87a3d4ddcc693372813c0b73c9af1d",
1134
+ "sha256:1b4735d6c28aad3cdcf52117e0e91d6b39acd4272f3f5cd9907c24ee931ad601",
1135
+ "sha256:2cf9dfb80a7b4589ba4c40ce7588986d6d5cebc5457cad2c2880f6bc2d42f3a5",
1136
+ "sha256:39becb03541f9e58243f4197584286e339029e8908c46f7221abeea4b749fa88",
1137
+ "sha256:43b8e0bcb877faf0abfb613d51026cd5cc78918e9530e375727bf0625c82788f",
1138
+ "sha256:4b3f429188c66603a1a5c549fb414e4d3bdc2a24792e061ffbd607d3d75fd84e",
1139
+ "sha256:4c0ff64b06b10e35215abce517252b375e580a6125fd5fdf6421b98efbefb2d2",
1140
+ "sha256:51af417a000d2dbe1ec6c372dfe688e041a7084da4fdd350aeb139bd3fb55353",
1141
+ "sha256:5678f88c68ea866ed9ebe3a989091088553ba12c6090244fdae3e467b1139c35",
1142
+ "sha256:79c8e5a6c6ffaf3a2262ef1be1e108a035cf4f05c14df56057b64acc5bebffb6",
1143
+ "sha256:7ff7f37b1bf4417baca958d254e8e2875d0cc23aaadbe65b3d5b3077b0eb23ea",
1144
+ "sha256:aaea0a6be54462ec027de54fca511540980d1e9eea68b2d5c1dbfe084797be35",
1145
+ "sha256:bce5869c8d68cf383ce240e44c1d9ae7c06078a9396df68ce88a1230f93a30c1",
1146
+ "sha256:cd9f1027ff30d90618914a64ca9b1a77a431159df0e2a195d8a9e8a04c78abf9",
1147
+ "sha256:d925fa1c81b772882aa55bcc10bf88324dadb66ff85d548c71515f6689c6dac5",
1148
+ "sha256:e7354fd7527a4b0377ce55f286805b34e8c54b91be865bac273f527e1b839019",
1149
+ "sha256:fae8a7b898c42dffe3f7361c40d5952b6bf32d10c4569098d276b4c547905ee1"
1150
+ ],
1151
+ "markers": "python_version < '3.12' and python_version >= '3.8'",
1152
+ "version": "==1.10.1"
1153
+ },
1154
+ "send2trash": {
1155
+ "hashes": [
1156
+ "sha256:d2c24762fd3759860a0aff155e45871447ea58d2be6bdd39b5c8f966a0c99c2d",
1157
+ "sha256:f20eaadfdb517eaca5ce077640cb261c7d2698385a6a0f072a4a5447fd49fa08"
1158
+ ],
1159
+ "version": "==1.8.0"
1160
+ },
1161
+ "six": {
1162
+ "hashes": [
1163
+ "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
1164
+ "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
1165
+ ],
1166
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
1167
+ "version": "==1.16.0"
1168
+ },
1169
+ "sniffio": {
1170
+ "hashes": [
1171
+ "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101",
1172
+ "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"
1173
+ ],
1174
+ "markers": "python_version >= '3.7'",
1175
+ "version": "==1.3.0"
1176
+ },
1177
+ "soupsieve": {
1178
+ "hashes": [
1179
+ "sha256:49e5368c2cda80ee7e84da9dbe3e110b70a4575f196efb74e51b94549d921955",
1180
+ "sha256:e28dba9ca6c7c00173e34e4ba57448f0688bb681b7c5e8bf4971daafc093d69a"
1181
+ ],
1182
+ "markers": "python_version >= '3.7'",
1183
+ "version": "==2.4"
1184
+ },
1185
+ "stack-data": {
1186
+ "hashes": [
1187
+ "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815",
1188
+ "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8"
1189
+ ],
1190
+ "version": "==0.6.2"
1191
+ },
1192
+ "terminado": {
1193
+ "hashes": [
1194
+ "sha256:6ccbbcd3a4f8a25a5ec04991f39a0b8db52dfcd487ea0e578d977e6752380333",
1195
+ "sha256:8650d44334eba354dd591129ca3124a6ba42c3d5b70df5051b6921d506fdaeae"
1196
+ ],
1197
+ "markers": "python_version >= '3.7'",
1198
+ "version": "==0.17.1"
1199
+ },
1200
+ "threadpoolctl": {
1201
+ "hashes": [
1202
+ "sha256:8b99adda265feb6773280df41eece7b2e6561b772d21ffd52e372f999024907b",
1203
+ "sha256:a335baacfaa4400ae1f0d8e3a58d6674d2f8828e3716bb2802c44955ad391380"
1204
+ ],
1205
+ "markers": "python_version >= '3.6'",
1206
+ "version": "==3.1.0"
1207
+ },
1208
+ "tinycss2": {
1209
+ "hashes": [
1210
+ "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847",
1211
+ "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"
1212
+ ],
1213
+ "markers": "python_version >= '3.7'",
1214
+ "version": "==1.2.1"
1215
+ },
1216
+ "tomli": {
1217
+ "hashes": [
1218
+ "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
1219
+ "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
1220
+ ],
1221
+ "markers": "python_version < '3.11'",
1222
+ "version": "==2.0.1"
1223
+ },
1224
+ "tornado": {
1225
+ "hashes": [
1226
+ "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca",
1227
+ "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72",
1228
+ "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23",
1229
+ "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8",
1230
+ "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b",
1231
+ "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9",
1232
+ "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13",
1233
+ "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75",
1234
+ "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac",
1235
+ "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e",
1236
+ "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"
1237
+ ],
1238
+ "markers": "python_version >= '3.7'",
1239
+ "version": "==6.2"
1240
+ },
1241
+ "traitlets": {
1242
+ "hashes": [
1243
+ "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8",
1244
+ "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9"
1245
+ ],
1246
+ "markers": "python_version >= '3.7'",
1247
+ "version": "==5.9.0"
1248
+ },
1249
+ "uri-template": {
1250
+ "hashes": [
1251
+ "sha256:934e4d09d108b70eb8a24410af8615294d09d279ce0e7cbcdaef1bd21f932b06",
1252
+ "sha256:f1699c77b73b925cf4937eae31ab282a86dc885c333f2e942513f08f691fc7db"
1253
+ ],
1254
+ "version": "==1.2.0"
1255
+ },
1256
+ "urllib3": {
1257
+ "hashes": [
1258
+ "sha256:076907bf8fd355cde77728471316625a4d2f7e713c125f51953bb5b3eecf4f72",
1259
+ "sha256:75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1"
1260
+ ],
1261
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
1262
+ "version": "==1.26.14"
1263
+ },
1264
+ "wcwidth": {
1265
+ "hashes": [
1266
+ "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e",
1267
+ "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0"
1268
+ ],
1269
+ "version": "==0.2.6"
1270
+ },
1271
+ "webcolors": {
1272
+ "hashes": [
1273
+ "sha256:16d043d3a08fd6a1b1b7e3e9e62640d09790dce80d2bdd4792a175b35fe794a9",
1274
+ "sha256:d98743d81d498a2d3eaf165196e65481f0d2ea85281463d856b1e51b09f62dce"
1275
+ ],
1276
+ "version": "==1.12"
1277
+ },
1278
+ "webencodings": {
1279
+ "hashes": [
1280
+ "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78",
1281
+ "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"
1282
+ ],
1283
+ "version": "==0.5.1"
1284
+ },
1285
+ "websocket-client": {
1286
+ "hashes": [
1287
+ "sha256:3f09e6d8230892547132177f575a4e3e73cfdf06526e20cc02aa1c3b47184d40",
1288
+ "sha256:cdf5877568b7e83aa7cf2244ab56a3213de587bbe0ce9d8b9600fc77b455d89e"
1289
+ ],
1290
+ "markers": "python_version >= '3.7'",
1291
+ "version": "==1.5.1"
1292
+ },
1293
+ "y-py": {
1294
+ "hashes": [
1295
+ "sha256:05f805b58422d5d7c8e7e8e2141d1c3cac4daaa4557ae6a9b84b141fe8d6289e",
1296
+ "sha256:065f90501cf008375d70be6ce72dd41745e09d088f0b545f5f914d2c3f04f7ae",
1297
+ "sha256:0c0e333c20b0a6ce4a5851203d45898ab93f16426c342420b931e190c5b71d3d",
1298
+ "sha256:13b9d2959d9a26536b6ad118fb026ff19bd79da52e4addf6f3a562e7c01d516e",
1299
+ "sha256:1906f13e8d5ebfbd9c7948f57bc6f6f53b451b19c99350f42a0f648147a8acfe",
1300
+ "sha256:1f54625b9ed4e787872c45d3044dcfd04c0da4258d9914f3d32308830b35246c",
1301
+ "sha256:202b2a3e42e0a1eaedee26f8a3bc73cd9f994c4c2b15511ea56b9838178eb380",
1302
+ "sha256:2532ea5aefb223fd688c93860199d348a7601d814aac9e8784d816314588ddeb",
1303
+ "sha256:25637e3d011ca6f877a24f3083ff2549d1d619406d7e8a1455c445527205046c",
1304
+ "sha256:2692c808bf28f797f8d693f45dc86563ac3b1626579f67ce9546dca69644d687",
1305
+ "sha256:27c1e9a866146d250e9e16d99fe22a40c82f5b592ab85da97e5679fc3841c7ce",
1306
+ "sha256:2ffebe5e62cbfee6e24593927dedba77dc13ac4cfb9c822074ab566b1fb63d59",
1307
+ "sha256:50cfa0532bcee27edb8c64743b49570e28bb76a00cd384ead1d84b6f052d9368",
1308
+ "sha256:55098440e32339c2dc3d652fb36bb77a4927dee5fd4ab0cb1fe12fdd163fd4f5",
1309
+ "sha256:5dbd8d177ec7b9fef4a7b6d22eb2f8d5606fd5aac31cf2eab0dc18f0b3504c7c",
1310
+ "sha256:63ef8e5b76cd54578a7fd5f72d8c698d9ccd7c555c7900ebfd38a24d397c3b15",
1311
+ "sha256:73200c59bb253b880825466717941ac57267f2f685b053e183183cb6fe82874d",
1312
+ "sha256:7353af0e9c1f42fbf0ab340e253eeb333d58c890fa91d3eadb1b9adaf9336732",
1313
+ "sha256:742c486d5b792c4ad76e09426161302edddca85efe826fa01dcee50907326cd7",
1314
+ "sha256:753aaae817d658a1e9d271663439d8e83d9d8effa45590ecdcadc600c7cf77e3",
1315
+ "sha256:76b3480e7037ac9390c450e2aff9e46e2c9e61520c0d88afe228110ec728adc5",
1316
+ "sha256:800e73d2110b97a74c52db2c8ce03a78e96f0d66a7e0c87d8254170a67c2db0e",
1317
+ "sha256:85585e669d7679126e4a04e4bc0a063a641175a74eecfe47539e8da3e5b1da6e",
1318
+ "sha256:8d4dfc276f988175baaa4ab321c3321a16ce33db3356c9bc5f4dea0db3de55aa",
1319
+ "sha256:91be189fae8ba242528333e266e38d65cae3d9a09fe45867fab8578a3ddf2ea2",
1320
+ "sha256:9484a3fc33f812234e58a5ee834b42bb0a628054d61b5c06c323aa56c12e557d",
1321
+ "sha256:9513ae81fcc805671ae134c4c7421ca322acf92ce8b33817e1775ea8c0176973",
1322
+ "sha256:95d13b38c9055d607565b77cbae12e2bf0c1671c5cb8f2ee2e1230d41d2d6d34",
1323
+ "sha256:9983e99e3a61452b39ffce98206c7e4c6d260f4e917c8fe53fb54aaf25df89a3",
1324
+ "sha256:9a59603cf42c20d02ee5add2e3d0ce48e89c480a2a02f642fb77f142c4f37958",
1325
+ "sha256:a57d81260e048caacf43a2f851766687f53e8a8356df6947fb0eee7336a7e2de",
1326
+ "sha256:a7977eeaceaeb0dfffcc5643c985c337ebc33a0b1d792ae0a9b1331cdd97366f",
1327
+ "sha256:add793f5f5c7c7a3eb1b09ffc771bdaae10a0bd482a370bf696b83f8dee8d1b4",
1328
+ "sha256:ae82a6d9cbaff8cb7505e81b5b7f9cd7756bb7e7110aef7914375fe56b012a90",
1329
+ "sha256:af6df5ec1d66ee2d962026635d60e84ad35fc01b2a1e36b993360c0ce60ae349",
1330
+ "sha256:afa9a11aa2880dd8689894f3269b653e6d3bd1956963d5329be9a5bf021dab62",
1331
+ "sha256:b0ed760e6aa5316227a0ba2d5d29634a4ef2d72c8bc55169ac01664e17e4b536",
1332
+ "sha256:b44473bb32217c78e18db66f497f6c8be33e339bab5f52398bb2468c904d5140",
1333
+ "sha256:b67dad339f9b6701f74ff7a6e901c7909eca4eea02cf955b28d87a42650bd1be",
1334
+ "sha256:bc9052a814e8b7ec756371a191f38de68b956437e0bb429c2dd503e658f298f9",
1335
+ "sha256:c1f5f287cc7ae127ed6a2fb1546e631b316a41d087d7d2db9caa3e5f59906dcf",
1336
+ "sha256:c3ae6d22b7cc599220a26b06da6ead9fd582eea5fdb6273b06fa3f060d0a26a7",
1337
+ "sha256:c42f3a6cd20153925b00c49af855a3277989d411bb8ea849095be943ee160821",
1338
+ "sha256:c7ca64a2a97f708569dcabd55865915943e30267bf6d26c4d212d005951efe62",
1339
+ "sha256:caf9b1feb69379d424a1d3d7c899b8e0389a3fb3131d39c3c03dcc3d4a93dbdc",
1340
+ "sha256:cb68445414940efe547291340e91604c7b8379b60822678ef29f4fc2a0e11c62",
1341
+ "sha256:cc8e5f38842a4b043c9592bfa9a740147ddb8fac2d7a5b7bf6d52466c090ec23",
1342
+ "sha256:cd6f373dbf592ad83aaf95c16abebc8678928e49bd509ebd593259e1908345ae",
1343
+ "sha256:d2da2a9e28dceab4832945a745cad507579f52b4d0c9e2f54ae156eb56875861",
1344
+ "sha256:d373c6bb8e21d5f7ec0833b76fa1ab480086ada602ef5bbf4724a25a21a00b6a",
1345
+ "sha256:d722d6a27230c1f395535da5cee6a9a16497c6343afd262c846090075c083009",
1346
+ "sha256:db1ac7f2d1862eb4c448cf76183399d555a63dbe2452bafecb1c2f691e36d687",
1347
+ "sha256:df78a0409dca11554a4b6442d7a8e61f762c3cfc78d55d98352392869a6b9ae0",
1348
+ "sha256:e30fe2491d095c6d695a2c96257967fd3e2497f0f777030c8492d03c18d46e2a",
1349
+ "sha256:e370ce076781adea161b04d2f666e8b4f89bc7e8927ef842fbb0283d3bfa73e0",
1350
+ "sha256:ecd3cb0d13ac92e7b9235d1024dba9af0788161246f12dcf1f635d634ccb206a",
1351
+ "sha256:ed0fd5265905cc7e23709479bc152d69f4972dec32fa322d20cb77f749707e78",
1352
+ "sha256:f6d87d0c2e87990bc00c049742d36a5dbbb1510949459af17198728890ee748a",
1353
+ "sha256:f7434c77cd23592973ed63341b8d337e6aebaba5ed40d7f22e2d43dfd0c3a56e",
1354
+ "sha256:f8b67ae37af8aac6160fda66c0f73bcdf65c06da9022eb76192c3fc45cfab994",
1355
+ "sha256:f8f238144a302f17eb26b122cad9382fcff5ec6653b8a562130b9a5e44010098",
1356
+ "sha256:fa685f7e43ce490dfb1e392ac48f584b75cd21f05dc526c160d15308236ce8a0",
1357
+ "sha256:fce5feb57f6231376eb10d1fb68c60da106ffa0b520b3129471c466eff0304cc",
1358
+ "sha256:fdafb93bfd5532b13a53c4090675bcd31724160017ecc73e492dc1211bc0377a",
1359
+ "sha256:fe70d0134fe2115c08866f0cac0eb5c0788093872b5026eb438a74e1ebafd659",
1360
+ "sha256:ff3ddedaa95284f4f22a92b362f658f3d92f272d8c0fa009051bd5490c4d5a04"
1361
+ ],
1362
+ "version": "==0.5.9"
1363
+ },
1364
+ "ypy-websocket": {
1365
+ "hashes": [
1366
+ "sha256:491b2cc4271df4dde9be83017c15f4532b597dc43148472eb20c5aeb838a5b46",
1367
+ "sha256:9049d5a7d61c26c2b5a39757c9ffcbe2274bf3553adeea8de7fe1c04671d4145"
1368
+ ],
1369
+ "markers": "python_version >= '3.7'",
1370
+ "version": "==0.8.2"
1371
+ }
1372
+ },
1373
+ "develop": {}
1374
+ }
midterm/README.md ADDED
File without changes
midterm/data/01_raw/CBC_data.csv ADDED
The diff for this file is too large to render. See raw diff
 
midterm/midterm/__init__.py ADDED
File without changes
midterm/midterm/take_at_home_(1).ipynb ADDED
@@ -0,0 +1,1258 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {
6
+ "id": "oZ6_2B0E1DAh"
7
+ },
8
+ "source": [
9
+ "# Midterm - Spring 2023\n",
10
+ "\n",
11
+ "## Problem 1: Take-at-home (45 points total)\n",
12
+ "\n",
13
+ "You are applying for a position at the data science team of USDA and you are given data associated with determining appropriate parasite treatment of canines. The suggested treatment options are determined based on a **logistic regression** model that predicts if the canine is infected with a parasite. \n",
14
+ "\n",
15
+ "The data is given in the site: https://data.world/ehales/grls-parasite-study/workspace/file?filename=CBC_data.csv and more specifically in the CBC_data.csv file. Login using you University Google account to access the data and the description that includes a paper on the study (**you dont need to read the paper to solve this problem**). Your target variable $y$ column is titled `parasite_status`. \n",
16
+ "\n",
17
+ "\n"
18
+ ]
19
+ },
20
+ {
21
+ "cell_type": "markdown",
22
+ "metadata": {
23
+ "id": "Aq8bln4u1DAo"
24
+ },
25
+ "source": [
26
+ "### Question 1 - Feature Engineering (5 points)\n",
27
+ "\n",
28
+ "Write the posterior probability expressions for logistic regression for the problem you are given to solve."
29
+ ]
30
+ },
31
+ {
32
+ "cell_type": "markdown",
33
+ "metadata": {
34
+ "id": "_kd85pkA1DA3"
35
+ },
36
+ "source": [
37
+ "$$p(y=1| \\mathbf{x}, \\mathbf w)= \\frac{p(\\mathbf{x}| y=1)p(y=1)}{p(\\mathbf{x}|y=1)p(y=1)+p(\\mathbf{x}|y=0)}=\\frac{1}{1+\\exp(-\\alpha)}=\\sigma(\\alpha)$$\n",
38
+ "\n",
39
+ "$$p(y=0| \\mathbf{x}, \\mathbf w)=1-p(y=1|\\mathbf{x}^{T}\\mathbf{w})=1-\\sigma(\\alpha)=\\sigma(-\\alpha)$$"
40
+ ]
41
+ },
42
+ {
43
+ "cell_type": "markdown",
44
+ "metadata": {
45
+ "id": "Gh6Fi5hz1DA6"
46
+ },
47
+ "source": [
48
+ "\n",
49
+ "\n",
50
+ "### Question 2 - Decision Boundary (5 points)\n",
51
+ "\n",
52
+ "Write the expression for the decision boundary assuming that $p(y=1)=p(y=0)$. The decision boundary is the line that separates the two classes.\n",
53
+ "\n",
54
+ "\n",
55
+ "\n"
56
+ ]
57
+ },
58
+ {
59
+ "cell_type": "markdown",
60
+ "metadata": {
61
+ "id": "HMr2tF_J1DA-"
62
+ },
63
+ "source": [
64
+ "$$p(y=1)=p(y=0)→\\sigma(\\alpha)=-\\sigma(\\alpha)→2\\sigma(\\alpha)=1→\\sigma(\\alpha)=0.5≡\\sigma(\\mathbf{w}^T\\mathbf{x})=0.5$$"
65
+ ]
66
+ },
67
+ {
68
+ "cell_type": "markdown",
69
+ "metadata": {
70
+ "id": "750Hn0iC1DBA"
71
+ },
72
+ "source": [
73
+ "\n",
74
+ "\n",
75
+ "### Question 3 - Loss function (5 points)\n",
76
+ "\n",
77
+ "Write the expression of the loss as a function of $\\mathbf w$ that makes sense for you to use in this problem. \n",
78
+ "\n",
79
+ "NOTE: The loss will be a function that will include this function: \n",
80
+ "\n",
81
+ "$$\\sigma(a) = \\frac{1}{1+e^{-a}}$$\n",
82
+ "\n"
83
+ ]
84
+ },
85
+ {
86
+ "cell_type": "markdown",
87
+ "metadata": {
88
+ "id": "jxiR0jEh1DBD"
89
+ },
90
+ "source": [
91
+ "$$\n",
92
+ "\\begin{align}\n",
93
+ "L_{CE} = -[\\sum_{i=1}^m \\{y_i\\ln \\hat{y}_i + (1-y_i)\\ln(1-\\hat{y}_i)\\}]\\\\\n",
94
+ "= -[\\sum_{i=1}^m\\{y_i\\ln\\frac{1}{1+\\exp(-\\mathbf{w}^T\\mathbf{x})}+(1-y_i)\\ln(1-\\frac{1}{1+\\exp(-\\mathbf{w}^T\\mathbf{x})})\\}] \\\\\n",
95
+ "= -[\\sum_{i=1}^m\\{y_i[\\ln\\frac{1}{1+\\exp(-\\alpha)}-\\ln(1-\\frac{1}{1+\\exp(-\\alpha)})]+\\ln(1-\\frac{1}{1+\\exp(-\\alpha)})\\}] \\\\\n",
96
+ "= -[\\sum_{i=1}^m\\{y_i\\mathbf{w}^T\\mathbf{x}-\\ln(1+\\exp(\\mathbf{w}^T\\mathbf{x}))\\}]\n",
97
+ "\\end{align}\n",
98
+ "$$\n"
99
+ ]
100
+ },
101
+ {
102
+ "cell_type": "markdown",
103
+ "metadata": {
104
+ "id": "AW4xA4221DBF"
105
+ },
106
+ "source": [
107
+ "\n",
108
+ "### Question 4 - Gradient (5 points)\n",
109
+ "\n",
110
+ "Write the expression of the gradient of the loss with respect to the parameters - show all your work.\n",
111
+ "\n"
112
+ ]
113
+ },
114
+ {
115
+ "cell_type": "markdown",
116
+ "metadata": {
117
+ "id": "bo0YDA0i1DBJ"
118
+ },
119
+ "source": [
120
+ "$$\n",
121
+ "\\begin{align}\n",
122
+ "\\nabla_\\mathbf w L_{CE} = \\nabla_\\mathbf{w}-[\\sum_{i=1}^m\\{y_i\\mathbf{w}^T\\mathbf{x}-ln(1+\\exp(\\mathbf{w}^T\\mathbf{x})\\}] \\\\\n",
123
+ "= [-\\sum_{i=1}^my_ix_i] + [\\sum_{i=1}^m\\frac{1}{1+\\exp(\\mathbf{w}^T\\mathbf{x})}\\exp(\\mathbf{w}^T\\mathbf{x})*x_i] \\\\\n",
124
+ "= [-\\sum_{i=1}^my_ix_i] + [\\sum_{i=1}^m(\\sigma(\\mathbf{w}^T\\mathbf{x}))*x_i] \\\\\n",
125
+ "= \\sum_{i=1}^m (\\sigma(\\mathbf{w}^T\\mathbf{x})-y_i)x_i= \\sum_{i=1}^m(\\hat{y}_i-y_i)x_i\n",
126
+ "\\end{align}\n",
127
+ "$$"
128
+ ]
129
+ },
130
+ {
131
+ "cell_type": "markdown",
132
+ "metadata": {
133
+ "id": "BpUryvTT1DBM"
134
+ },
135
+ "source": [
136
+ "### Question 5 - Imbalanced dataset (10 points)\n",
137
+ "\n",
138
+ "You are now told that in the dataset \n",
139
+ "\n",
140
+ "$$p(y=0) >> p(y=1)$$\n",
141
+ "\n",
142
+ "Can you comment if the accuracy of Logistic Regression will be affected by such imbalance?\n",
143
+ "\n"
144
+ ]
145
+ },
146
+ {
147
+ "cell_type": "markdown",
148
+ "metadata": {
149
+ "id": "TqdImYQf1DBP"
150
+ },
151
+ "source": [
152
+ "We know that the loss function heavily penalizes confident wrong decisions. We expect then, that the model will be strongly incentivized to predict 0 more frequently than 1, regardless of the true outcome, as this minimizes loss. This will cause more false negatives, and will need to be considered with regards to our ROC curve. The accuracy will be affected, as there are so few positive examples that the model cannot accurately learn them."
153
+ ]
154
+ },
155
+ {
156
+ "cell_type": "markdown",
157
+ "metadata": {
158
+ "id": "FK1Su76R1DBS"
159
+ },
160
+ "source": [
161
+ "\n",
162
+ "### Question 6 - SGD (15 points)\n",
163
+ "\n",
164
+ "The interviewer was impressed with your answers and wants to test your programming skills. \n",
165
+ "\n",
166
+ "1. Use the dataset to train a logistic regressor that will predict the target variable $y$. \n",
167
+ "\n",
168
+ " 2. Report the harmonic mean of precision (p) and recall (r) i.e the [metric called $F_1$ score](https://en.wikipedia.org/wiki/F-score) that is calculated as shown below using a test dataset that is 20% of each group. Plot the $F_1$ score vs the iteration number $t$. \n",
169
+ "\n",
170
+ "$$F_1 = \\frac{2}{r^{-1} + p^{-1}}$$\n",
171
+ "\n",
172
+ "Your code includes hyperparameter optimization of the learning rate and mini batch size. Please learn about cross validation which is a splitting strategy for tuning models [here](https://scikit-learn.org/stable/modules/cross_validation.html).\n",
173
+ "\n",
174
+ "You are allowed to use any library you want to code this problem.\n",
175
+ "\n"
176
+ ]
177
+ },
178
+ {
179
+ "cell_type": "code",
180
+ "execution_count": 1,
181
+ "metadata": {
182
+ "id": "cnxqYSvL1DBV"
183
+ },
184
+ "outputs": [],
185
+ "source": [
186
+ "# write your code here"
187
+ ]
188
+ },
189
+ {
190
+ "cell_type": "code",
191
+ "execution_count": 2,
192
+ "metadata": {
193
+ "tags": []
194
+ },
195
+ "outputs": [
196
+ {
197
+ "data": {
198
+ "text/html": [
199
+ "<div>\n",
200
+ "<style scoped>\n",
201
+ " .dataframe tbody tr th:only-of-type {\n",
202
+ " vertical-align: middle;\n",
203
+ " }\n",
204
+ "\n",
205
+ " .dataframe tbody tr th {\n",
206
+ " vertical-align: top;\n",
207
+ " }\n",
208
+ "\n",
209
+ " .dataframe thead th {\n",
210
+ " text-align: right;\n",
211
+ " }\n",
212
+ "</style>\n",
213
+ "<table border=\"1\" class=\"dataframe\">\n",
214
+ " <thead>\n",
215
+ " <tr style=\"text-align: right;\">\n",
216
+ " <th></th>\n",
217
+ " <th>ID</th>\n",
218
+ " <th>SEX</th>\n",
219
+ " <th>TYPEAREA</th>\n",
220
+ " <th>SEX.REPRO</th>\n",
221
+ " <th>REPRO.STATUS</th>\n",
222
+ " <th>AGE</th>\n",
223
+ " <th>PARASITE_STATUS</th>\n",
224
+ " <th>RBC</th>\n",
225
+ " <th>HGB</th>\n",
226
+ " <th>WBC</th>\n",
227
+ " <th>EOS.CNT</th>\n",
228
+ " <th>MONO.CNT</th>\n",
229
+ " <th>NUT.CNT</th>\n",
230
+ " <th>PL.CNT</th>\n",
231
+ " <th>LYMP.CNT</th>\n",
232
+ " </tr>\n",
233
+ " </thead>\n",
234
+ " <tbody>\n",
235
+ " <tr>\n",
236
+ " <th>0</th>\n",
237
+ " <td>grls5ZUT2BYY</td>\n",
238
+ " <td>Male</td>\n",
239
+ " <td>Suburban</td>\n",
240
+ " <td>IntactMale</td>\n",
241
+ " <td>Intact</td>\n",
242
+ " <td>9</td>\n",
243
+ " <td>Negative</td>\n",
244
+ " <td>6.4</td>\n",
245
+ " <td>16.6</td>\n",
246
+ " <td>14.2</td>\n",
247
+ " <td>142.0</td>\n",
248
+ " <td>852.0</td>\n",
249
+ " <td>6390.0</td>\n",
250
+ " <td>210.0</td>\n",
251
+ " <td>6816.0</td>\n",
252
+ " </tr>\n",
253
+ " <tr>\n",
254
+ " <th>1</th>\n",
255
+ " <td>grls8DCONYUU</td>\n",
256
+ " <td>Female</td>\n",
257
+ " <td>Rural</td>\n",
258
+ " <td>NeuteredFemale</td>\n",
259
+ " <td>Neutered</td>\n",
260
+ " <td>6</td>\n",
261
+ " <td>Negative</td>\n",
262
+ " <td>4.8</td>\n",
263
+ " <td>12.5</td>\n",
264
+ " <td>10.0</td>\n",
265
+ " <td>400.0</td>\n",
266
+ " <td>300.0</td>\n",
267
+ " <td>4800.0</td>\n",
268
+ " <td>209.0</td>\n",
269
+ " <td>4500.0</td>\n",
270
+ " </tr>\n",
271
+ " <tr>\n",
272
+ " <th>2</th>\n",
273
+ " <td>grlsUC5R4PTT</td>\n",
274
+ " <td>Male</td>\n",
275
+ " <td>Suburban</td>\n",
276
+ " <td>IntactMale</td>\n",
277
+ " <td>Intact</td>\n",
278
+ " <td>14</td>\n",
279
+ " <td>Negative</td>\n",
280
+ " <td>6.2</td>\n",
281
+ " <td>17.3</td>\n",
282
+ " <td>9.5</td>\n",
283
+ " <td>190.0</td>\n",
284
+ " <td>475.0</td>\n",
285
+ " <td>7315.0</td>\n",
286
+ " <td>164.0</td>\n",
287
+ " <td>1520.0</td>\n",
288
+ " </tr>\n",
289
+ " <tr>\n",
290
+ " <th>3</th>\n",
291
+ " <td>grlsXUR2PY88</td>\n",
292
+ " <td>Male</td>\n",
293
+ " <td>Rural</td>\n",
294
+ " <td>IntactMale</td>\n",
295
+ " <td>Intact</td>\n",
296
+ " <td>6</td>\n",
297
+ " <td>Negative</td>\n",
298
+ " <td>5.4</td>\n",
299
+ " <td>13.8</td>\n",
300
+ " <td>14.1</td>\n",
301
+ " <td>1692.0</td>\n",
302
+ " <td>423.0</td>\n",
303
+ " <td>7755.0</td>\n",
304
+ " <td>254.0</td>\n",
305
+ " <td>4230.0</td>\n",
306
+ " </tr>\n",
307
+ " <tr>\n",
308
+ " <th>4</th>\n",
309
+ " <td>grlsTBZUF3GG</td>\n",
310
+ " <td>Female</td>\n",
311
+ " <td>Rural</td>\n",
312
+ " <td>IntactFemale</td>\n",
313
+ " <td>Intact</td>\n",
314
+ " <td>18</td>\n",
315
+ " <td>Negative</td>\n",
316
+ " <td>5.9</td>\n",
317
+ " <td>14.4</td>\n",
318
+ " <td>6.5</td>\n",
319
+ " <td>390.0</td>\n",
320
+ " <td>130.0</td>\n",
321
+ " <td>2795.0</td>\n",
322
+ " <td>213.0</td>\n",
323
+ " <td>3185.0</td>\n",
324
+ " </tr>\n",
325
+ " </tbody>\n",
326
+ "</table>\n",
327
+ "</div>"
328
+ ],
329
+ "text/plain": [
330
+ " ID SEX TYPEAREA SEX.REPRO REPRO.STATUS AGE \\\n",
331
+ "0 grls5ZUT2BYY Male Suburban IntactMale Intact 9 \n",
332
+ "1 grls8DCONYUU Female Rural NeuteredFemale Neutered 6 \n",
333
+ "2 grlsUC5R4PTT Male Suburban IntactMale Intact 14 \n",
334
+ "3 grlsXUR2PY88 Male Rural IntactMale Intact 6 \n",
335
+ "4 grlsTBZUF3GG Female Rural IntactFemale Intact 18 \n",
336
+ "\n",
337
+ " PARASITE_STATUS RBC HGB WBC EOS.CNT MONO.CNT NUT.CNT PL.CNT \\\n",
338
+ "0 Negative 6.4 16.6 14.2 142.0 852.0 6390.0 210.0 \n",
339
+ "1 Negative 4.8 12.5 10.0 400.0 300.0 4800.0 209.0 \n",
340
+ "2 Negative 6.2 17.3 9.5 190.0 475.0 7315.0 164.0 \n",
341
+ "3 Negative 5.4 13.8 14.1 1692.0 423.0 7755.0 254.0 \n",
342
+ "4 Negative 5.9 14.4 6.5 390.0 130.0 2795.0 213.0 \n",
343
+ "\n",
344
+ " LYMP.CNT \n",
345
+ "0 6816.0 \n",
346
+ "1 4500.0 \n",
347
+ "2 1520.0 \n",
348
+ "3 4230.0 \n",
349
+ "4 3185.0 "
350
+ ]
351
+ },
352
+ "execution_count": 2,
353
+ "metadata": {},
354
+ "output_type": "execute_result"
355
+ }
356
+ ],
357
+ "source": [
358
+ "import pandas as pd\n",
359
+ "\n",
360
+ "df = pd.read_csv('../data/01_raw/CBC_data.csv')\n",
361
+ "df.head()"
362
+ ]
363
+ },
364
+ {
365
+ "cell_type": "code",
366
+ "execution_count": 3,
367
+ "metadata": {
368
+ "tags": []
369
+ },
370
+ "outputs": [
371
+ {
372
+ "name": "stderr",
373
+ "output_type": "stream",
374
+ "text": [
375
+ "/tmp/ipykernel_34276/1867621695.py:5: SettingWithCopyWarning: \n",
376
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
377
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
378
+ "\n",
379
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
380
+ " df2[x] = LabelEncoder().fit_transform(df2[x])\n",
381
+ "/tmp/ipykernel_34276/1867621695.py:5: SettingWithCopyWarning: \n",
382
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
383
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
384
+ "\n",
385
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
386
+ " df2[x] = LabelEncoder().fit_transform(df2[x])\n",
387
+ "/tmp/ipykernel_34276/1867621695.py:5: SettingWithCopyWarning: \n",
388
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
389
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
390
+ "\n",
391
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
392
+ " df2[x] = LabelEncoder().fit_transform(df2[x])\n"
393
+ ]
394
+ },
395
+ {
396
+ "data": {
397
+ "text/html": [
398
+ "<div>\n",
399
+ "<style scoped>\n",
400
+ " .dataframe tbody tr th:only-of-type {\n",
401
+ " vertical-align: middle;\n",
402
+ " }\n",
403
+ "\n",
404
+ " .dataframe tbody tr th {\n",
405
+ " vertical-align: top;\n",
406
+ " }\n",
407
+ "\n",
408
+ " .dataframe thead th {\n",
409
+ " text-align: right;\n",
410
+ " }\n",
411
+ "</style>\n",
412
+ "<table border=\"1\" class=\"dataframe\">\n",
413
+ " <thead>\n",
414
+ " <tr style=\"text-align: right;\">\n",
415
+ " <th></th>\n",
416
+ " <th>SEX</th>\n",
417
+ " <th>TYPEAREA</th>\n",
418
+ " <th>SEX.REPRO</th>\n",
419
+ " <th>REPRO.STATUS</th>\n",
420
+ " <th>AGE</th>\n",
421
+ " <th>PARASITE_STATUS</th>\n",
422
+ " <th>RBC</th>\n",
423
+ " <th>HGB</th>\n",
424
+ " <th>WBC</th>\n",
425
+ " <th>EOS.CNT</th>\n",
426
+ " <th>MONO.CNT</th>\n",
427
+ " <th>NUT.CNT</th>\n",
428
+ " <th>PL.CNT</th>\n",
429
+ " <th>LYMP.CNT</th>\n",
430
+ " </tr>\n",
431
+ " </thead>\n",
432
+ " <tbody>\n",
433
+ " <tr>\n",
434
+ " <th>0</th>\n",
435
+ " <td>1</td>\n",
436
+ " <td>Suburban</td>\n",
437
+ " <td>IntactMale</td>\n",
438
+ " <td>0</td>\n",
439
+ " <td>9</td>\n",
440
+ " <td>0</td>\n",
441
+ " <td>6.4</td>\n",
442
+ " <td>16.6</td>\n",
443
+ " <td>14.2</td>\n",
444
+ " <td>142.0</td>\n",
445
+ " <td>852.0</td>\n",
446
+ " <td>6390.0</td>\n",
447
+ " <td>210.0</td>\n",
448
+ " <td>6816.0</td>\n",
449
+ " </tr>\n",
450
+ " <tr>\n",
451
+ " <th>1</th>\n",
452
+ " <td>0</td>\n",
453
+ " <td>Rural</td>\n",
454
+ " <td>NeuteredFemale</td>\n",
455
+ " <td>1</td>\n",
456
+ " <td>6</td>\n",
457
+ " <td>0</td>\n",
458
+ " <td>4.8</td>\n",
459
+ " <td>12.5</td>\n",
460
+ " <td>10.0</td>\n",
461
+ " <td>400.0</td>\n",
462
+ " <td>300.0</td>\n",
463
+ " <td>4800.0</td>\n",
464
+ " <td>209.0</td>\n",
465
+ " <td>4500.0</td>\n",
466
+ " </tr>\n",
467
+ " <tr>\n",
468
+ " <th>2</th>\n",
469
+ " <td>1</td>\n",
470
+ " <td>Suburban</td>\n",
471
+ " <td>IntactMale</td>\n",
472
+ " <td>0</td>\n",
473
+ " <td>14</td>\n",
474
+ " <td>0</td>\n",
475
+ " <td>6.2</td>\n",
476
+ " <td>17.3</td>\n",
477
+ " <td>9.5</td>\n",
478
+ " <td>190.0</td>\n",
479
+ " <td>475.0</td>\n",
480
+ " <td>7315.0</td>\n",
481
+ " <td>164.0</td>\n",
482
+ " <td>1520.0</td>\n",
483
+ " </tr>\n",
484
+ " <tr>\n",
485
+ " <th>3</th>\n",
486
+ " <td>1</td>\n",
487
+ " <td>Rural</td>\n",
488
+ " <td>IntactMale</td>\n",
489
+ " <td>0</td>\n",
490
+ " <td>6</td>\n",
491
+ " <td>0</td>\n",
492
+ " <td>5.4</td>\n",
493
+ " <td>13.8</td>\n",
494
+ " <td>14.1</td>\n",
495
+ " <td>1692.0</td>\n",
496
+ " <td>423.0</td>\n",
497
+ " <td>7755.0</td>\n",
498
+ " <td>254.0</td>\n",
499
+ " <td>4230.0</td>\n",
500
+ " </tr>\n",
501
+ " <tr>\n",
502
+ " <th>4</th>\n",
503
+ " <td>0</td>\n",
504
+ " <td>Rural</td>\n",
505
+ " <td>IntactFemale</td>\n",
506
+ " <td>0</td>\n",
507
+ " <td>18</td>\n",
508
+ " <td>0</td>\n",
509
+ " <td>5.9</td>\n",
510
+ " <td>14.4</td>\n",
511
+ " <td>6.5</td>\n",
512
+ " <td>390.0</td>\n",
513
+ " <td>130.0</td>\n",
514
+ " <td>2795.0</td>\n",
515
+ " <td>213.0</td>\n",
516
+ " <td>3185.0</td>\n",
517
+ " </tr>\n",
518
+ " </tbody>\n",
519
+ "</table>\n",
520
+ "</div>"
521
+ ],
522
+ "text/plain": [
523
+ " SEX TYPEAREA SEX.REPRO REPRO.STATUS AGE PARASITE_STATUS RBC \\\n",
524
+ "0 1 Suburban IntactMale 0 9 0 6.4 \n",
525
+ "1 0 Rural NeuteredFemale 1 6 0 4.8 \n",
526
+ "2 1 Suburban IntactMale 0 14 0 6.2 \n",
527
+ "3 1 Rural IntactMale 0 6 0 5.4 \n",
528
+ "4 0 Rural IntactFemale 0 18 0 5.9 \n",
529
+ "\n",
530
+ " HGB WBC EOS.CNT MONO.CNT NUT.CNT PL.CNT LYMP.CNT \n",
531
+ "0 16.6 14.2 142.0 852.0 6390.0 210.0 6816.0 \n",
532
+ "1 12.5 10.0 400.0 300.0 4800.0 209.0 4500.0 \n",
533
+ "2 17.3 9.5 190.0 475.0 7315.0 164.0 1520.0 \n",
534
+ "3 13.8 14.1 1692.0 423.0 7755.0 254.0 4230.0 \n",
535
+ "4 14.4 6.5 390.0 130.0 2795.0 213.0 3185.0 "
536
+ ]
537
+ },
538
+ "execution_count": 3,
539
+ "metadata": {},
540
+ "output_type": "execute_result"
541
+ }
542
+ ],
543
+ "source": [
544
+ "from sklearn.preprocessing import LabelEncoder\n",
545
+ "le = LabelEncoder()\n",
546
+ "df2 = df.loc[:, df.columns != 'ID']\n",
547
+ "for x in ['SEX', 'REPRO.STATUS', 'PARASITE_STATUS']:\n",
548
+ " df2[x] = LabelEncoder().fit_transform(df2[x])\n",
549
+ "df2.head()"
550
+ ]
551
+ },
552
+ {
553
+ "cell_type": "code",
554
+ "execution_count": 4,
555
+ "metadata": {
556
+ "tags": []
557
+ },
558
+ "outputs": [
559
+ {
560
+ "data": {
561
+ "text/plain": [
562
+ "Index(['SEX', 'REPRO.STATUS', 'AGE', 'PARASITE_STATUS', 'TYPEAREA_Rural',\n",
563
+ " 'TYPEAREA_Suburban', 'TYPEAREA_Urban', 'SEX.REPRO_IntactFemale',\n",
564
+ " 'SEX.REPRO_IntactMale', 'SEX.REPRO_NeuteredFemale',\n",
565
+ " 'SEX.REPRO_NeuteredMale'],\n",
566
+ " dtype='object')"
567
+ ]
568
+ },
569
+ "execution_count": 4,
570
+ "metadata": {},
571
+ "output_type": "execute_result"
572
+ }
573
+ ],
574
+ "source": [
575
+ "df3 = pd.get_dummies(df2).dropna(how='any', axis=1)\n",
576
+ "df3.columns"
577
+ ]
578
+ },
579
+ {
580
+ "cell_type": "code",
581
+ "execution_count": 5,
582
+ "metadata": {
583
+ "tags": []
584
+ },
585
+ "outputs": [
586
+ {
587
+ "data": {
588
+ "text/html": [
589
+ "<div>\n",
590
+ "<style scoped>\n",
591
+ " .dataframe tbody tr th:only-of-type {\n",
592
+ " vertical-align: middle;\n",
593
+ " }\n",
594
+ "\n",
595
+ " .dataframe tbody tr th {\n",
596
+ " vertical-align: top;\n",
597
+ " }\n",
598
+ "\n",
599
+ " .dataframe thead th {\n",
600
+ " text-align: right;\n",
601
+ " }\n",
602
+ "</style>\n",
603
+ "<table border=\"1\" class=\"dataframe\">\n",
604
+ " <thead>\n",
605
+ " <tr style=\"text-align: right;\">\n",
606
+ " <th></th>\n",
607
+ " <th>SEX</th>\n",
608
+ " <th>REPRO.STATUS</th>\n",
609
+ " <th>AGE</th>\n",
610
+ " <th>PARASITE_STATUS</th>\n",
611
+ " <th>TYPEAREA_Rural</th>\n",
612
+ " <th>TYPEAREA_Suburban</th>\n",
613
+ " <th>TYPEAREA_Urban</th>\n",
614
+ " <th>SEX.REPRO_IntactFemale</th>\n",
615
+ " <th>SEX.REPRO_IntactMale</th>\n",
616
+ " <th>SEX.REPRO_NeuteredFemale</th>\n",
617
+ " <th>SEX.REPRO_NeuteredMale</th>\n",
618
+ " </tr>\n",
619
+ " </thead>\n",
620
+ " <tbody>\n",
621
+ " <tr>\n",
622
+ " <th>0</th>\n",
623
+ " <td>1</td>\n",
624
+ " <td>0</td>\n",
625
+ " <td>9</td>\n",
626
+ " <td>0</td>\n",
627
+ " <td>0</td>\n",
628
+ " <td>1</td>\n",
629
+ " <td>0</td>\n",
630
+ " <td>0</td>\n",
631
+ " <td>1</td>\n",
632
+ " <td>0</td>\n",
633
+ " <td>0</td>\n",
634
+ " </tr>\n",
635
+ " <tr>\n",
636
+ " <th>1</th>\n",
637
+ " <td>0</td>\n",
638
+ " <td>1</td>\n",
639
+ " <td>6</td>\n",
640
+ " <td>0</td>\n",
641
+ " <td>1</td>\n",
642
+ " <td>0</td>\n",
643
+ " <td>0</td>\n",
644
+ " <td>0</td>\n",
645
+ " <td>0</td>\n",
646
+ " <td>1</td>\n",
647
+ " <td>0</td>\n",
648
+ " </tr>\n",
649
+ " <tr>\n",
650
+ " <th>2</th>\n",
651
+ " <td>1</td>\n",
652
+ " <td>0</td>\n",
653
+ " <td>14</td>\n",
654
+ " <td>0</td>\n",
655
+ " <td>0</td>\n",
656
+ " <td>1</td>\n",
657
+ " <td>0</td>\n",
658
+ " <td>0</td>\n",
659
+ " <td>1</td>\n",
660
+ " <td>0</td>\n",
661
+ " <td>0</td>\n",
662
+ " </tr>\n",
663
+ " <tr>\n",
664
+ " <th>3</th>\n",
665
+ " <td>1</td>\n",
666
+ " <td>0</td>\n",
667
+ " <td>6</td>\n",
668
+ " <td>0</td>\n",
669
+ " <td>1</td>\n",
670
+ " <td>0</td>\n",
671
+ " <td>0</td>\n",
672
+ " <td>0</td>\n",
673
+ " <td>1</td>\n",
674
+ " <td>0</td>\n",
675
+ " <td>0</td>\n",
676
+ " </tr>\n",
677
+ " <tr>\n",
678
+ " <th>4</th>\n",
679
+ " <td>0</td>\n",
680
+ " <td>0</td>\n",
681
+ " <td>18</td>\n",
682
+ " <td>0</td>\n",
683
+ " <td>1</td>\n",
684
+ " <td>0</td>\n",
685
+ " <td>0</td>\n",
686
+ " <td>1</td>\n",
687
+ " <td>0</td>\n",
688
+ " <td>0</td>\n",
689
+ " <td>0</td>\n",
690
+ " </tr>\n",
691
+ " </tbody>\n",
692
+ "</table>\n",
693
+ "</div>"
694
+ ],
695
+ "text/plain": [
696
+ " SEX REPRO.STATUS AGE PARASITE_STATUS TYPEAREA_Rural TYPEAREA_Suburban \\\n",
697
+ "0 1 0 9 0 0 1 \n",
698
+ "1 0 1 6 0 1 0 \n",
699
+ "2 1 0 14 0 0 1 \n",
700
+ "3 1 0 6 0 1 0 \n",
701
+ "4 0 0 18 0 1 0 \n",
702
+ "\n",
703
+ " TYPEAREA_Urban SEX.REPRO_IntactFemale SEX.REPRO_IntactMale \\\n",
704
+ "0 0 0 1 \n",
705
+ "1 0 0 0 \n",
706
+ "2 0 0 1 \n",
707
+ "3 0 0 1 \n",
708
+ "4 0 1 0 \n",
709
+ "\n",
710
+ " SEX.REPRO_NeuteredFemale SEX.REPRO_NeuteredMale \n",
711
+ "0 0 0 \n",
712
+ "1 1 0 \n",
713
+ "2 0 0 \n",
714
+ "3 0 0 \n",
715
+ "4 0 0 "
716
+ ]
717
+ },
718
+ "execution_count": 5,
719
+ "metadata": {},
720
+ "output_type": "execute_result"
721
+ }
722
+ ],
723
+ "source": [
724
+ "df3.head()"
725
+ ]
726
+ },
727
+ {
728
+ "cell_type": "code",
729
+ "execution_count": 6,
730
+ "metadata": {
731
+ "tags": []
732
+ },
733
+ "outputs": [],
734
+ "source": [
735
+ "from sklearn.linear_model import LogisticRegression\n",
736
+ "from sklearn.model_selection import train_test_split\n",
737
+ "X = df3.drop(['PARASITE_STATUS'], axis=1)\n",
738
+ "y = df3['PARASITE_STATUS']\n",
739
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)"
740
+ ]
741
+ },
742
+ {
743
+ "cell_type": "code",
744
+ "execution_count": 19,
745
+ "metadata": {
746
+ "tags": []
747
+ },
748
+ "outputs": [
749
+ {
750
+ "data": {
751
+ "text/html": [
752
+ "<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-2 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-2 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[(&#x27;preprocessor&#x27;, StandardScaler()),\n",
753
+ " (&#x27;classifier&#x27;,\n",
754
+ " LogisticRegression(class_weight=&#x27;balanced&#x27;, max_iter=20000))])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" ><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Pipeline</label><div class=\"sk-toggleable__content\"><pre>Pipeline(steps=[(&#x27;preprocessor&#x27;, StandardScaler()),\n",
755
+ " (&#x27;classifier&#x27;,\n",
756
+ " LogisticRegression(class_weight=&#x27;balanced&#x27;, max_iter=20000))])</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-5\" type=\"checkbox\" ><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">StandardScaler</label><div class=\"sk-toggleable__content\"><pre>StandardScaler()</pre></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LogisticRegression</label><div class=\"sk-toggleable__content\"><pre>LogisticRegression(class_weight=&#x27;balanced&#x27;, max_iter=20000)</pre></div></div></div></div></div></div></div>"
757
+ ],
758
+ "text/plain": [
759
+ "Pipeline(steps=[('preprocessor', StandardScaler()),\n",
760
+ " ('classifier',\n",
761
+ " LogisticRegression(class_weight='balanced', max_iter=20000))])"
762
+ ]
763
+ },
764
+ "execution_count": 19,
765
+ "metadata": {},
766
+ "output_type": "execute_result"
767
+ }
768
+ ],
769
+ "source": [
770
+ "from sklearn.pipeline import Pipeline #make_pipeline\n",
771
+ "from sklearn import preprocessing\n",
772
+ "\n",
773
+ "i = 20000\n",
774
+ "\n",
775
+ "pipe = Pipeline([\n",
776
+ " ('preprocessor', preprocessing.StandardScaler()),\n",
777
+ " ('classifier', LogisticRegression(max_iter=i, class_weight='balanced')),\n",
778
+ "])\n",
779
+ "\n",
780
+ "#model = LogisticRegression(penalty='l1', solver='saga', max_iter=i)\n",
781
+ "pipe.fit(X_train, y_train)"
782
+ ]
783
+ },
784
+ {
785
+ "cell_type": "code",
786
+ "execution_count": 32,
787
+ "metadata": {
788
+ "scrolled": true,
789
+ "tags": []
790
+ },
791
+ "outputs": [
792
+ {
793
+ "name": "stderr",
794
+ "output_type": "stream",
795
+ "text": [
796
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
797
+ " warnings.warn(\n",
798
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
799
+ " warnings.warn(\n",
800
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
801
+ " warnings.warn(\n",
802
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
803
+ " warnings.warn(\n",
804
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
805
+ " warnings.warn(\n",
806
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
807
+ " warnings.warn(\n",
808
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
809
+ " warnings.warn(\n",
810
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
811
+ " warnings.warn(\n",
812
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
813
+ " warnings.warn(\n",
814
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
815
+ " warnings.warn(\n",
816
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
817
+ " warnings.warn(\n",
818
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
819
+ " warnings.warn(\n",
820
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
821
+ " warnings.warn(\n",
822
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
823
+ " warnings.warn(\n",
824
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
825
+ " warnings.warn(\n",
826
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
827
+ " warnings.warn(\n",
828
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
829
+ " warnings.warn(\n",
830
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
831
+ " warnings.warn(\n",
832
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
833
+ " warnings.warn(\n",
834
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
835
+ " warnings.warn(\n",
836
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
837
+ " warnings.warn(\n",
838
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
839
+ " warnings.warn(\n",
840
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
841
+ " warnings.warn(\n",
842
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
843
+ " warnings.warn(\n",
844
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
845
+ " warnings.warn(\n",
846
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
847
+ " warnings.warn(\n",
848
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
849
+ " warnings.warn(\n",
850
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
851
+ " warnings.warn(\n",
852
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
853
+ " warnings.warn(\n",
854
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
855
+ " warnings.warn(\n",
856
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
857
+ " warnings.warn(\n",
858
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
859
+ " warnings.warn(\n",
860
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
861
+ " warnings.warn(\n",
862
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
863
+ " warnings.warn(\n",
864
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
865
+ " warnings.warn(\n",
866
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
867
+ " warnings.warn(\n",
868
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
869
+ " warnings.warn(\n",
870
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
871
+ " warnings.warn(\n",
872
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
873
+ " warnings.warn(\n",
874
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
875
+ " warnings.warn(\n",
876
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
877
+ " warnings.warn(\n",
878
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
879
+ " warnings.warn(\n",
880
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
881
+ " warnings.warn(\n",
882
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
883
+ " warnings.warn(\n",
884
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
885
+ " warnings.warn(\n",
886
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
887
+ " warnings.warn(\n",
888
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
889
+ " warnings.warn(\n",
890
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
891
+ " warnings.warn(\n",
892
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
893
+ " warnings.warn(\n",
894
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
895
+ " warnings.warn(\n",
896
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
897
+ " warnings.warn(\n",
898
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
899
+ " warnings.warn(\n",
900
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
901
+ " warnings.warn(\n",
902
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
903
+ " warnings.warn(\n",
904
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n",
905
+ " warnings.warn(\n",
906
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/model_selection/_validation.py:378: FitFailedWarning: \n",
907
+ "360 fits failed out of a total of 720.\n",
908
+ "The score on these train-test partitions for these parameters will be set to nan.\n",
909
+ "If these failures are not expected, you can try to debug them by setting error_score='raise'.\n",
910
+ "\n",
911
+ "Below are more details about the failures:\n",
912
+ "--------------------------------------------------------------------------------\n",
913
+ "360 fits failed with the following error:\n",
914
+ "Traceback (most recent call last):\n",
915
+ " File \"/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/model_selection/_validation.py\", line 686, in _fit_and_score\n",
916
+ " estimator.fit(X_train, y_train, **fit_params)\n",
917
+ " File \"/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/pipeline.py\", line 405, in fit\n",
918
+ " self._final_estimator.fit(Xt, y, **fit_params_last_step)\n",
919
+ " File \"/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py\", line 1162, in fit\n",
920
+ " solver = _check_solver(self.solver, self.penalty, self.dual)\n",
921
+ " File \"/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py\", line 54, in _check_solver\n",
922
+ " raise ValueError(\n",
923
+ "ValueError: Solver sag supports only 'l2' or 'none' penalties, got l1 penalty.\n",
924
+ "\n",
925
+ " warnings.warn(some_fits_failed_message, FitFailedWarning)\n",
926
+ "/home/vagrant/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/model_selection/_search.py:952: UserWarning: One or more of the test scores are non-finite: [ nan 0. nan 0.1590493 nan 0.\n",
927
+ " nan 0. nan 0. nan 0.\n",
928
+ " nan 0. nan 0. nan 0.\n",
929
+ " nan 0.13518741 nan 0.13518741 nan 0.13518741\n",
930
+ " nan 0. nan 0.16160635 nan 0.\n",
931
+ " nan 0. nan 0. nan 0.\n",
932
+ " nan 0. nan 0. nan 0.18677466\n",
933
+ " nan 0.13518741 nan 0.13518741 nan 0.13518741\n",
934
+ " nan 0. nan 0.16000688 nan 0.\n",
935
+ " nan 0. nan 0. nan 0.\n",
936
+ " nan 0. nan 0. nan 0.1923046\n",
937
+ " nan 0.13081038 nan 0.13518741 nan 0.13518741\n",
938
+ " nan 0. nan 0.15892573 nan 0.\n",
939
+ " nan 0. nan 0. nan 0.\n",
940
+ " nan 0. nan 0. nan 0.1887408\n",
941
+ " nan 0.13485348 nan 0.13518741 nan 0.13518741\n",
942
+ " nan 0. nan 0.12777313 nan 0.\n",
943
+ " nan 0. nan 0. nan 0.\n",
944
+ " nan 0. nan 0. nan 0.15035704\n",
945
+ " nan 0.13619257 nan 0.13642988 nan 0.13518741\n",
946
+ " nan 0. nan 0.12412204 nan 0.\n",
947
+ " nan 0. nan 0. nan 0.\n",
948
+ " nan 0. nan 0. nan 0.11476747\n",
949
+ " nan 0.14715202 nan 0.13721419 nan 0.13550537]\n",
950
+ " warnings.warn(\n"
951
+ ]
952
+ },
953
+ {
954
+ "data": {
955
+ "text/plain": [
956
+ "{'classifier__C': 0.01,\n",
957
+ " 'classifier__class_weight': {0: 1, 1: 10},\n",
958
+ " 'classifier__penalty': 'l2',\n",
959
+ " 'classifier__solver': 'sag'}"
960
+ ]
961
+ },
962
+ "execution_count": 32,
963
+ "metadata": {},
964
+ "output_type": "execute_result"
965
+ }
966
+ ],
967
+ "source": [
968
+ "from sklearn.model_selection import GridSearchCV\n",
969
+ "import numpy as np\n",
970
+ "\n",
971
+ "\n",
972
+ "param_grid = {\n",
973
+ " 'classifier__penalty': ['l1', 'l2'],\n",
974
+ " 'classifier__C': [1e-4, 1e-3, 1e-2, 0.1, 1, 10],\n",
975
+ " 'classifier__solver': ['sag'],\n",
976
+ " 'classifier__class_weight': [None, 'balanced', *[{0: 1, 1:10**x} for x in range(-5, 5)]],\n",
977
+ " #'classifier__eta0': [10**x for x in range(-5, 5)],\n",
978
+ " #'classifier__batch_size': np.linspace(1, X_train.shape[0], 10, dtype=int),\n",
979
+ "}\n",
980
+ "\n",
981
+ "#grid_search = GridSearchCV(pipe, param_grid, cv=5, scoring='roc_auc')\n",
982
+ "grid_search = GridSearchCV(pipe, param_grid, cv=5, scoring='f1', n_jobs=-1)\n",
983
+ "\n",
984
+ "grid_search.fit(X_train, y_train)\n",
985
+ "grid_search.best_params_"
986
+ ]
987
+ },
988
+ {
989
+ "cell_type": "code",
990
+ "execution_count": 35,
991
+ "metadata": {
992
+ "tags": []
993
+ },
994
+ "outputs": [
995
+ {
996
+ "data": {
997
+ "text/plain": [
998
+ "0.05732484076433121"
999
+ ]
1000
+ },
1001
+ "execution_count": 35,
1002
+ "metadata": {},
1003
+ "output_type": "execute_result"
1004
+ }
1005
+ ],
1006
+ "source": [
1007
+ "from sklearn.metrics import precision_score, recall_score, f1_score\n",
1008
+ "from sklearn.metrics import confusion_matrix\n",
1009
+ "\n",
1010
+ "y_pred = grid_search.predict(X_test)\n",
1011
+ "precision = precision_score(y_test, y_pred)\n",
1012
+ "precision"
1013
+ ]
1014
+ },
1015
+ {
1016
+ "cell_type": "code",
1017
+ "execution_count": 36,
1018
+ "metadata": {
1019
+ "tags": []
1020
+ },
1021
+ "outputs": [
1022
+ {
1023
+ "data": {
1024
+ "text/plain": [
1025
+ "array([[ 27, 148],\n",
1026
+ " [420, 9]])"
1027
+ ]
1028
+ },
1029
+ "execution_count": 36,
1030
+ "metadata": {},
1031
+ "output_type": "execute_result"
1032
+ }
1033
+ ],
1034
+ "source": [
1035
+ "confusion_matrix(y_pred == y_test, y_pred)"
1036
+ ]
1037
+ },
1038
+ {
1039
+ "cell_type": "code",
1040
+ "execution_count": 11,
1041
+ "metadata": {
1042
+ "tags": []
1043
+ },
1044
+ "outputs": [
1045
+ {
1046
+ "data": {
1047
+ "text/plain": [
1048
+ "\u001b[0;31mSignature:\u001b[0m\n",
1049
+ "\u001b[0mconfusion_matrix\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n",
1050
+ "\u001b[0;34m\u001b[0m \u001b[0my_true\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
1051
+ "\u001b[0;34m\u001b[0m \u001b[0my_pred\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
1052
+ "\u001b[0;34m\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
1053
+ "\u001b[0;34m\u001b[0m \u001b[0mlabels\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
1054
+ "\u001b[0;34m\u001b[0m \u001b[0msample_weight\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
1055
+ "\u001b[0;34m\u001b[0m \u001b[0mnormalize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
1056
+ "\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
1057
+ "\u001b[0;31mDocstring:\u001b[0m\n",
1058
+ "Compute confusion matrix to evaluate the accuracy of a classification.\n",
1059
+ "\n",
1060
+ "By definition a confusion matrix :math:`C` is such that :math:`C_{i, j}`\n",
1061
+ "is equal to the number of observations known to be in group :math:`i` and\n",
1062
+ "predicted to be in group :math:`j`.\n",
1063
+ "\n",
1064
+ "Thus in binary classification, the count of true negatives is\n",
1065
+ ":math:`C_{0,0}`, false negatives is :math:`C_{1,0}`, true positives is\n",
1066
+ ":math:`C_{1,1}` and false positives is :math:`C_{0,1}`.\n",
1067
+ "\n",
1068
+ "Read more in the :ref:`User Guide <confusion_matrix>`.\n",
1069
+ "\n",
1070
+ "Parameters\n",
1071
+ "----------\n",
1072
+ "y_true : array-like of shape (n_samples,)\n",
1073
+ " Ground truth (correct) target values.\n",
1074
+ "\n",
1075
+ "y_pred : array-like of shape (n_samples,)\n",
1076
+ " Estimated targets as returned by a classifier.\n",
1077
+ "\n",
1078
+ "labels : array-like of shape (n_classes), default=None\n",
1079
+ " List of labels to index the matrix. This may be used to reorder\n",
1080
+ " or select a subset of labels.\n",
1081
+ " If ``None`` is given, those that appear at least once\n",
1082
+ " in ``y_true`` or ``y_pred`` are used in sorted order.\n",
1083
+ "\n",
1084
+ "sample_weight : array-like of shape (n_samples,), default=None\n",
1085
+ " Sample weights.\n",
1086
+ "\n",
1087
+ " .. versionadded:: 0.18\n",
1088
+ "\n",
1089
+ "normalize : {'true', 'pred', 'all'}, default=None\n",
1090
+ " Normalizes confusion matrix over the true (rows), predicted (columns)\n",
1091
+ " conditions or all the population. If None, confusion matrix will not be\n",
1092
+ " normalized.\n",
1093
+ "\n",
1094
+ "Returns\n",
1095
+ "-------\n",
1096
+ "C : ndarray of shape (n_classes, n_classes)\n",
1097
+ " Confusion matrix whose i-th row and j-th\n",
1098
+ " column entry indicates the number of\n",
1099
+ " samples with true label being i-th class\n",
1100
+ " and predicted label being j-th class.\n",
1101
+ "\n",
1102
+ "See Also\n",
1103
+ "--------\n",
1104
+ "ConfusionMatrixDisplay.from_estimator : Plot the confusion matrix\n",
1105
+ " given an estimator, the data, and the label.\n",
1106
+ "ConfusionMatrixDisplay.from_predictions : Plot the confusion matrix\n",
1107
+ " given the true and predicted labels.\n",
1108
+ "ConfusionMatrixDisplay : Confusion Matrix visualization.\n",
1109
+ "\n",
1110
+ "References\n",
1111
+ "----------\n",
1112
+ ".. [1] `Wikipedia entry for the Confusion matrix\n",
1113
+ " <https://en.wikipedia.org/wiki/Confusion_matrix>`_\n",
1114
+ " (Wikipedia and other references may use a different\n",
1115
+ " convention for axes).\n",
1116
+ "\n",
1117
+ "Examples\n",
1118
+ "--------\n",
1119
+ ">>> from sklearn.metrics import confusion_matrix\n",
1120
+ ">>> y_true = [2, 0, 2, 2, 0, 1]\n",
1121
+ ">>> y_pred = [0, 0, 2, 2, 0, 2]\n",
1122
+ ">>> confusion_matrix(y_true, y_pred)\n",
1123
+ "array([[2, 0, 0],\n",
1124
+ " [0, 0, 1],\n",
1125
+ " [1, 0, 2]])\n",
1126
+ "\n",
1127
+ ">>> y_true = [\"cat\", \"ant\", \"cat\", \"cat\", \"ant\", \"bird\"]\n",
1128
+ ">>> y_pred = [\"ant\", \"ant\", \"cat\", \"cat\", \"ant\", \"cat\"]\n",
1129
+ ">>> confusion_matrix(y_true, y_pred, labels=[\"ant\", \"bird\", \"cat\"])\n",
1130
+ "array([[2, 0, 0],\n",
1131
+ " [0, 0, 1],\n",
1132
+ " [1, 0, 2]])\n",
1133
+ "\n",
1134
+ "In the binary case, we can extract true positives, etc as follows:\n",
1135
+ "\n",
1136
+ ">>> tn, fp, fn, tp = confusion_matrix([0, 1, 0, 1], [1, 1, 1, 0]).ravel()\n",
1137
+ ">>> (tn, fp, fn, tp)\n",
1138
+ "(0, 2, 1, 1)\n",
1139
+ "\u001b[0;31mFile:\u001b[0m ~/.local/share/virtualenvs/midterm-5qaZhyTt/lib/python3.10/site-packages/sklearn/metrics/_classification.py\n",
1140
+ "\u001b[0;31mType:\u001b[0m function"
1141
+ ]
1142
+ },
1143
+ "metadata": {},
1144
+ "output_type": "display_data"
1145
+ }
1146
+ ],
1147
+ "source": [
1148
+ "confusion_matrix?"
1149
+ ]
1150
+ },
1151
+ {
1152
+ "cell_type": "code",
1153
+ "execution_count": 56,
1154
+ "metadata": {
1155
+ "tags": []
1156
+ },
1157
+ "outputs": [
1158
+ {
1159
+ "data": {
1160
+ "text/plain": [
1161
+ "array([0.93046358, 0.93046358, 0.92880795, 0.93034826, 0.93034826])"
1162
+ ]
1163
+ },
1164
+ "execution_count": 56,
1165
+ "metadata": {},
1166
+ "output_type": "execute_result"
1167
+ }
1168
+ ],
1169
+ "source": [
1170
+ "from sklearn.model_selection import cross_val_score\n",
1171
+ "\n",
1172
+ "scores = cross_val_score(pipe, X, y, cv=5)\n",
1173
+ "scores"
1174
+ ]
1175
+ },
1176
+ {
1177
+ "cell_type": "code",
1178
+ "execution_count": 12,
1179
+ "metadata": {
1180
+ "tags": []
1181
+ },
1182
+ "outputs": [
1183
+ {
1184
+ "data": {
1185
+ "text/plain": [
1186
+ "{'memory': None,\n",
1187
+ " 'steps': [('preprocessor', StandardScaler()),\n",
1188
+ " ('classifier', LogisticRegression(class_weight='balanced', max_iter=200))],\n",
1189
+ " 'verbose': False,\n",
1190
+ " 'preprocessor': StandardScaler(),\n",
1191
+ " 'classifier': LogisticRegression(class_weight='balanced', max_iter=200),\n",
1192
+ " 'preprocessor__copy': True,\n",
1193
+ " 'preprocessor__with_mean': True,\n",
1194
+ " 'preprocessor__with_std': True,\n",
1195
+ " 'classifier__C': 1.0,\n",
1196
+ " 'classifier__class_weight': 'balanced',\n",
1197
+ " 'classifier__dual': False,\n",
1198
+ " 'classifier__fit_intercept': True,\n",
1199
+ " 'classifier__intercept_scaling': 1,\n",
1200
+ " 'classifier__l1_ratio': None,\n",
1201
+ " 'classifier__max_iter': 200,\n",
1202
+ " 'classifier__multi_class': 'auto',\n",
1203
+ " 'classifier__n_jobs': None,\n",
1204
+ " 'classifier__penalty': 'l2',\n",
1205
+ " 'classifier__random_state': None,\n",
1206
+ " 'classifier__solver': 'lbfgs',\n",
1207
+ " 'classifier__tol': 0.0001,\n",
1208
+ " 'classifier__verbose': 0,\n",
1209
+ " 'classifier__warm_start': False}"
1210
+ ]
1211
+ },
1212
+ "execution_count": 12,
1213
+ "metadata": {},
1214
+ "output_type": "execute_result"
1215
+ }
1216
+ ],
1217
+ "source": [
1218
+ "pipe.get_params()"
1219
+ ]
1220
+ },
1221
+ {
1222
+ "cell_type": "code",
1223
+ "execution_count": null,
1224
+ "metadata": {},
1225
+ "outputs": [],
1226
+ "source": []
1227
+ }
1228
+ ],
1229
+ "metadata": {
1230
+ "colab": {
1231
+ "provenance": []
1232
+ },
1233
+ "kernelspec": {
1234
+ "display_name": "Python 3 (ipykernel)",
1235
+ "language": "python",
1236
+ "name": "python3"
1237
+ },
1238
+ "language_info": {
1239
+ "codemirror_mode": {
1240
+ "name": "ipython",
1241
+ "version": 3
1242
+ },
1243
+ "file_extension": ".py",
1244
+ "mimetype": "text/x-python",
1245
+ "name": "python",
1246
+ "nbconvert_exporter": "python",
1247
+ "pygments_lexer": "ipython3",
1248
+ "version": "3.10.4"
1249
+ },
1250
+ "vscode": {
1251
+ "interpreter": {
1252
+ "hash": "62556f7a043365a66e0918c892755cfafede529a87e97207556f006a109bade4"
1253
+ }
1254
+ }
1255
+ },
1256
+ "nbformat": 4,
1257
+ "nbformat_minor": 4
1258
+ }
midterm/pyproject.toml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [tool.poetry]
2
+ name = "midterm"
3
+ version = "0.1.0"
4
+ description = ""
5
+ authors = ["Your Name <you@example.com>"]
6
+ readme = "README.md"
7
+
8
+ [tool.poetry.dependencies]
9
+ python = "^3.10"
10
+ black = "^23.1.0"
11
+ jupyterlab = "^3.6.1"
12
+ ipython = "^8.10.0"
13
+ numpy = "^1.24.2"
14
+ pandas = "^1.5.3"
15
+ jax = "^0.4.4"
16
+ seaborn = "^0.12.2"
17
+ matplotlib = "^3.7.0"
18
+
19
+
20
+ [build-system]
21
+ requires = ["poetry-core"]
22
+ build-backend = "poetry.core.masonry.api"
midterm/tests/__init__.py ADDED
File without changes