Some los
This commit is contained in:
parent
b4d0fa5b0d
commit
a9defbbc5a
@ -1,2 +1,6 @@
|
||||
# mieszkania5
|
||||
Mieszkania5 challenge
|
||||
=====================
|
||||
|
||||
Guess the price of a flat/house.
|
||||
|
||||
The metric is absolute mean error.
|
||||
|
1
config.txt
Normal file
1
config.txt
Normal file
@ -0,0 +1 @@
|
||||
--metric MAE --precision 1
|
462
dev-0/expected.tsv
Normal file
462
dev-0/expected.tsv
Normal file
@ -0,0 +1,462 @@
|
||||
373000
|
||||
299000
|
||||
365000
|
||||
369000
|
||||
483791
|
||||
430000
|
||||
312000
|
||||
397000
|
||||
302672
|
||||
325000
|
||||
302800
|
||||
300495
|
||||
375038
|
||||
437131
|
||||
373761
|
||||
337567
|
||||
359320
|
||||
326407
|
||||
294819
|
||||
266000
|
||||
355720.5
|
||||
288000
|
||||
239000
|
||||
385000
|
||||
349000
|
||||
804500
|
||||
520000
|
||||
315441
|
||||
339000
|
||||
429000
|
||||
325000
|
||||
269000
|
||||
420000
|
||||
400000
|
||||
420000
|
||||
385000
|
||||
617232
|
||||
399000
|
||||
328338
|
||||
596232
|
||||
339000
|
||||
293000
|
||||
289000
|
||||
330000
|
||||
499000
|
||||
419000
|
||||
219598
|
||||
341670
|
||||
351259
|
||||
319000
|
||||
211426
|
||||
309000
|
||||
299000
|
||||
349000
|
||||
508000
|
||||
270000
|
||||
333750
|
||||
724120
|
||||
485000
|
||||
274000
|
||||
242775
|
||||
415125
|
||||
269000
|
||||
535000
|
||||
497000
|
||||
357124
|
||||
830000
|
||||
675000
|
||||
399000
|
||||
550000
|
||||
245000
|
||||
219598
|
||||
365000
|
||||
435000
|
||||
254231
|
||||
359000
|
||||
485000
|
||||
469758
|
||||
382740
|
||||
499000
|
||||
279000
|
||||
283080
|
||||
298200
|
||||
339000
|
||||
239900
|
||||
341145
|
||||
310000
|
||||
369000
|
||||
327000
|
||||
259000
|
||||
1308456
|
||||
434358
|
||||
449000
|
||||
293000
|
||||
203000
|
||||
273000
|
||||
175000
|
||||
368938
|
||||
299000
|
||||
415000
|
||||
333000
|
||||
345000
|
||||
350000
|
||||
297987
|
||||
290696.04
|
||||
293571
|
||||
459000
|
||||
355000
|
||||
269000
|
||||
345000
|
||||
300000
|
||||
1156756
|
||||
242943.1
|
||||
486600
|
||||
305370
|
||||
318240
|
||||
340000
|
||||
316000
|
||||
300500
|
||||
335000
|
||||
227000
|
||||
399000
|
||||
1100000
|
||||
389000
|
||||
370000
|
||||
659000
|
||||
249000
|
||||
555000
|
||||
315205
|
||||
349000
|
||||
385000
|
||||
397005
|
||||
469000
|
||||
490000
|
||||
316900
|
||||
254500
|
||||
280000
|
||||
294588
|
||||
275000
|
||||
369000
|
||||
857514
|
||||
560000
|
||||
310000
|
||||
596232
|
||||
459000
|
||||
238000
|
||||
440000
|
||||
499000
|
||||
327104
|
||||
650000
|
||||
235000
|
||||
338200
|
||||
412000
|
||||
329000
|
||||
609631
|
||||
309000
|
||||
250000
|
||||
469000
|
||||
311122
|
||||
450000
|
||||
299000
|
||||
499000
|
||||
330400
|
||||
295000
|
||||
315500
|
||||
254500
|
||||
467700
|
||||
393750
|
||||
530000
|
||||
270000
|
||||
297987
|
||||
360400
|
||||
337567
|
||||
380000
|
||||
568600
|
||||
322010
|
||||
490824
|
||||
269548
|
||||
361745
|
||||
359371
|
||||
579900
|
||||
340000
|
||||
199000
|
||||
255000
|
||||
255000
|
||||
245000
|
||||
303204
|
||||
290000
|
||||
349000
|
||||
360000
|
||||
350000
|
||||
469064
|
||||
280000
|
||||
417000
|
||||
318032
|
||||
579000
|
||||
320000
|
||||
382060
|
||||
379000
|
||||
420000
|
||||
250000
|
||||
211500
|
||||
254280
|
||||
383000
|
||||
355696
|
||||
249000
|
||||
359000
|
||||
429000
|
||||
605000
|
||||
325949
|
||||
340000
|
||||
420000
|
||||
579215
|
||||
304900
|
||||
380000
|
||||
229000
|
||||
325000
|
||||
675000
|
||||
409000
|
||||
355000
|
||||
388447.5
|
||||
345015
|
||||
199000
|
||||
320292
|
||||
300841
|
||||
313000
|
||||
566999
|
||||
275000
|
||||
359371
|
||||
253000
|
||||
262000
|
||||
230000
|
||||
299000
|
||||
399000
|
||||
453040
|
||||
479000
|
||||
312000
|
||||
1100000
|
||||
308196
|
||||
355000
|
||||
336842
|
||||
248100
|
||||
352894
|
||||
242000
|
||||
330000
|
||||
315000
|
||||
299900
|
||||
454000
|
||||
325000
|
||||
499900
|
||||
369000
|
||||
429000
|
||||
244500
|
||||
661650
|
||||
357475
|
||||
321165
|
||||
330000
|
||||
404900
|
||||
1240000
|
||||
696000
|
||||
295000
|
||||
295000
|
||||
417000
|
||||
242300
|
||||
285000
|
||||
980000
|
||||
229000
|
||||
259786
|
||||
447496.2
|
||||
239617.2
|
||||
260000
|
||||
387000
|
||||
799000
|
||||
238638
|
||||
354944
|
||||
521683
|
||||
506600
|
||||
506363
|
||||
299000
|
||||
844990
|
||||
213000
|
||||
324900
|
||||
261000
|
||||
349000
|
||||
480000
|
||||
283000
|
||||
430000
|
||||
259786
|
||||
339000
|
||||
299000
|
||||
530000
|
||||
396683
|
||||
329000
|
||||
420863
|
||||
299000
|
||||
276458
|
||||
350286
|
||||
515000
|
||||
341670
|
||||
369000
|
||||
322000
|
||||
761976.07
|
||||
389000
|
||||
459999
|
||||
429000
|
||||
425000
|
||||
286000
|
||||
270000
|
||||
561636.5
|
||||
550625
|
||||
324836
|
||||
221976
|
||||
699000
|
||||
579000
|
||||
514000
|
||||
282000
|
||||
345000
|
||||
534508
|
||||
299000
|
||||
545000
|
||||
250000
|
||||
379000
|
||||
269000
|
||||
299000
|
||||
329000
|
||||
249976
|
||||
430000
|
||||
303086
|
||||
303000
|
||||
238400
|
||||
339000
|
||||
241500
|
||||
1100000
|
||||
399000
|
||||
530000
|
||||
972000
|
||||
359000
|
||||
250000
|
||||
329460
|
||||
239000
|
||||
490110
|
||||
468120
|
||||
378157
|
||||
285000
|
||||
235850
|
||||
499000
|
||||
235850
|
||||
365428
|
||||
670000
|
||||
320000
|
||||
279000
|
||||
388000
|
||||
324990
|
||||
570000
|
||||
348796
|
||||
287144
|
||||
272000
|
||||
267877
|
||||
255062
|
||||
650000
|
||||
364000
|
||||
530000
|
||||
570000
|
||||
284000
|
||||
339000
|
||||
435000
|
||||
280000
|
||||
1300000
|
||||
365428
|
||||
295000
|
||||
360000
|
||||
205000
|
||||
319000
|
||||
736450
|
||||
453040
|
||||
280500
|
||||
299000
|
||||
330000
|
||||
337110
|
||||
520000
|
||||
395000
|
||||
595000
|
||||
375000
|
||||
358575
|
||||
588000
|
||||
1025455
|
||||
245000
|
||||
238500
|
||||
1167400
|
||||
249000
|
||||
441000
|
||||
239000
|
||||
455000
|
||||
640000
|
||||
344250
|
||||
400000
|
||||
485000
|
||||
543617
|
||||
276000
|
||||
428400
|
||||
360315
|
||||
595000
|
||||
595000
|
||||
535000
|
||||
534600
|
||||
330000
|
||||
627810
|
||||
439000
|
||||
304945
|
||||
699000
|
||||
712164
|
||||
250000
|
||||
449000
|
||||
284859
|
||||
595350
|
||||
259000
|
||||
590000
|
||||
355000
|
||||
389000
|
||||
429000
|
||||
649000
|
||||
297987
|
||||
159761
|
||||
505505
|
||||
336676
|
||||
272764
|
||||
343876
|
||||
336290.5
|
||||
308035
|
||||
335226.5
|
||||
532317
|
||||
525937.5
|
||||
397720
|
||||
702150
|
||||
592020
|
||||
671488
|
||||
593000
|
||||
399000
|
||||
1800000
|
||||
288728
|
||||
393211
|
||||
789325
|
||||
453040
|
||||
345015
|
||||
519745
|
||||
400920
|
||||
2318580
|
||||
469728
|
||||
247154
|
||||
328828.5
|
||||
260927.5
|
||||
482729
|
||||
257328.5
|
||||
305923.5
|
||||
529623
|
||||
641395.58
|
||||
669606.91
|
||||
655544.02
|
||||
471397.97
|
||||
309958
|
||||
699000
|
||||
850000
|
|
462
dev-0/in.tsv
Normal file
462
dev-0/in.tsv
Normal file
File diff suppressed because one or more lines are too long
462
dev-0/out.tsv
Normal file
462
dev-0/out.tsv
Normal file
@ -0,0 +1,462 @@
|
||||
34.04683
|
||||
21.822857
|
||||
36.79288
|
||||
28.77488
|
||||
37.8241
|
||||
55.4243
|
||||
27.616209
|
||||
30.512884
|
||||
25.038166
|
||||
28.195543
|
||||
22.112524
|
||||
25.038166
|
||||
34.852108
|
||||
33.66447
|
||||
33.90779
|
||||
28.780672
|
||||
25.513222
|
||||
23.166914
|
||||
27.900084
|
||||
21.822857
|
||||
29.892996
|
||||
22.86566
|
||||
29.470081
|
||||
40.21675
|
||||
33.9889
|
||||
43.258263
|
||||
48.00881
|
||||
28.815434
|
||||
33.40956
|
||||
39.069668
|
||||
25.298868
|
||||
26.457539
|
||||
36.711773
|
||||
29.12248
|
||||
36.711773
|
||||
25.009201
|
||||
46.247635
|
||||
36.480038
|
||||
23.108982
|
||||
47.782867
|
||||
25.432116
|
||||
36.13244
|
||||
18.92618
|
||||
29.290487
|
||||
44.561768
|
||||
36.271477
|
||||
21.370975
|
||||
28.085472
|
||||
24.73112
|
||||
21.24352
|
||||
19.887877
|
||||
21.822857
|
||||
21.70699
|
||||
32.250893
|
||||
41.867855
|
||||
25.878202
|
||||
25.588535
|
||||
48.588142
|
||||
42.678925
|
||||
18.92618
|
||||
18.5612
|
||||
38.287563
|
||||
17.767511
|
||||
78.01837
|
||||
50.78962
|
||||
32.389935
|
||||
65.273
|
||||
43.420475
|
||||
33.75137
|
||||
40.94092
|
||||
17.883377
|
||||
21.370975
|
||||
29.354216
|
||||
28.485212
|
||||
24.771673
|
||||
50.78962
|
||||
37.754578
|
||||
45.93479
|
||||
26.202631
|
||||
36.711773
|
||||
20.37452
|
||||
23.236435
|
||||
24.140198
|
||||
24.719534
|
||||
21.822857
|
||||
29.08772
|
||||
21.24352
|
||||
34.568233
|
||||
20.084852
|
||||
21.822857
|
||||
79.00904
|
||||
42.458782
|
||||
42.09959
|
||||
36.13244
|
||||
17.188175
|
||||
25.878202
|
||||
15.102569
|
||||
34.562443
|
||||
28.832811
|
||||
26.28374
|
||||
39.202915
|
||||
27.036875
|
||||
29.12248
|
||||
24.122818
|
||||
19.059427
|
||||
18.781347
|
||||
39.78225
|
||||
24.232891
|
||||
24.273445
|
||||
27.326542
|
||||
26.921007
|
||||
72.22502
|
||||
20.415071
|
||||
33.641296
|
||||
24.209717
|
||||
26.921007
|
||||
28.079678
|
||||
28.890747
|
||||
22.86566
|
||||
33.9889
|
||||
19.215849
|
||||
35.147568
|
||||
81.940475
|
||||
58.263046
|
||||
31.09222
|
||||
47.498997
|
||||
21.880789
|
||||
34.568233
|
||||
25.710196
|
||||
35.726906
|
||||
27.616209
|
||||
21.712784
|
||||
68.51148
|
||||
29.643883
|
||||
27.790009
|
||||
17.153416
|
||||
20.084852
|
||||
20.125404
|
||||
21.822857
|
||||
30.049417
|
||||
56.467106
|
||||
45.575603
|
||||
37.40698
|
||||
47.203533
|
||||
38.044243
|
||||
22.460125
|
||||
32.830227
|
||||
41.10893
|
||||
29.417942
|
||||
46.154938
|
||||
20.988615
|
||||
28.618458
|
||||
53.39663
|
||||
28.195543
|
||||
44.799297
|
||||
21.822857
|
||||
24.516766
|
||||
37.40698
|
||||
25.194588
|
||||
34.568233
|
||||
27.911669
|
||||
38.62358
|
||||
28.166578
|
||||
26.457539
|
||||
28.815434
|
||||
18.682861
|
||||
48.657665
|
||||
18.057178
|
||||
37.46491
|
||||
17.767511
|
||||
24.122818
|
||||
27.80739
|
||||
28.780672
|
||||
33.9889
|
||||
48.976303
|
||||
28.508387
|
||||
39.3014
|
||||
19.575035
|
||||
29.325249
|
||||
26.162079
|
||||
46.3635
|
||||
26.457539
|
||||
14.870834
|
||||
20.617838
|
||||
16.272825
|
||||
22.402193
|
||||
29.08772
|
||||
17.518396
|
||||
37.349045
|
||||
30.512884
|
||||
20.084852
|
||||
39.770664
|
||||
25.298868
|
||||
42.620995
|
||||
25.576948
|
||||
40.361588
|
||||
27.036875
|
||||
31.428236
|
||||
36.13244
|
||||
42.09959
|
||||
25.298868
|
||||
15.073602
|
||||
18.694447
|
||||
33.9889
|
||||
23.224848
|
||||
24.140198
|
||||
30.512884
|
||||
24.140198
|
||||
34.18587
|
||||
23.983776
|
||||
34.568233
|
||||
42.678925
|
||||
70.452255
|
||||
21.822857
|
||||
37.46491
|
||||
29.076134
|
||||
30.74462
|
||||
44.185196
|
||||
29.475874
|
||||
27.036875
|
||||
29.614916
|
||||
25.94193
|
||||
11.394823
|
||||
29.26152
|
||||
26.416985
|
||||
27.616209
|
||||
40.35579
|
||||
21.822857
|
||||
26.162079
|
||||
18.57858
|
||||
23.236435
|
||||
18.810314
|
||||
24.140198
|
||||
22.981527
|
||||
37.302696
|
||||
38.542473
|
||||
27.616209
|
||||
64.693665
|
||||
23.908463
|
||||
24.719534
|
||||
23.07422
|
||||
18.972528
|
||||
24.510971
|
||||
17.767511
|
||||
28.60108
|
||||
27.210674
|
||||
27.384474
|
||||
26.573406
|
||||
28.716948
|
||||
35.2055
|
||||
30.860485
|
||||
23.862118
|
||||
18.694447
|
||||
50.917072
|
||||
26.023037
|
||||
27.372889
|
||||
29.354216
|
||||
58.593266
|
||||
46.154938
|
||||
34.568233
|
||||
19.644558
|
||||
19.91105
|
||||
42.215458
|
||||
17.240316
|
||||
28.079678
|
||||
51.948288
|
||||
17.912344
|
||||
17.36777
|
||||
69.32835
|
||||
19.667728
|
||||
18.346846
|
||||
28.427279
|
||||
68.16968
|
||||
14.673861
|
||||
31.938047
|
||||
34.655136
|
||||
39.20871
|
||||
36.885574
|
||||
28.195543
|
||||
53.28076
|
||||
26.167871
|
||||
37.96314
|
||||
17.767511
|
||||
32.233513
|
||||
41.520256
|
||||
21.822857
|
||||
26.822521
|
||||
17.36777
|
||||
36.885574
|
||||
22.286325
|
||||
57.68371
|
||||
32.685394
|
||||
27.616209
|
||||
28.751705
|
||||
24.777466
|
||||
16.151165
|
||||
25.495842
|
||||
29.643883
|
||||
28.085472
|
||||
25.298868
|
||||
29.93355
|
||||
47.446857
|
||||
42.678925
|
||||
51.519585
|
||||
21.822857
|
||||
28.369345
|
||||
28.154991
|
||||
17.188175
|
||||
34.921627
|
||||
25.327835
|
||||
27.482962
|
||||
17.669024
|
||||
49.109547
|
||||
84.9704
|
||||
33.9889
|
||||
21.822857
|
||||
30.802553
|
||||
40.55277
|
||||
18.480093
|
||||
39.202915
|
||||
23.334923
|
||||
47.892944
|
||||
37.46491
|
||||
21.24352
|
||||
25.298868
|
||||
20.681566
|
||||
25.298868
|
||||
24.928095
|
||||
25.298868
|
||||
17.072308
|
||||
27.036875
|
||||
17.495224
|
||||
72.22502
|
||||
36.65384
|
||||
43.779663
|
||||
93.66042
|
||||
33.9889
|
||||
27.616209
|
||||
27.876911
|
||||
19.123156
|
||||
40.813465
|
||||
38.548267
|
||||
29.614916
|
||||
25.878202
|
||||
15.1605015
|
||||
44.474865
|
||||
15.1605015
|
||||
33.954136
|
||||
0.38745427
|
||||
27.106394
|
||||
25.61171
|
||||
29.064547
|
||||
21.405735
|
||||
92.501755
|
||||
16.817402
|
||||
23.07422
|
||||
21.82865
|
||||
18.619133
|
||||
20.05009
|
||||
30.512884
|
||||
36.537975
|
||||
43.779663
|
||||
67.59034
|
||||
24.140198
|
||||
34.04683
|
||||
30.512884
|
||||
31.613623
|
||||
105.531006
|
||||
33.954136
|
||||
27.610416
|
||||
29.354216
|
||||
18.955147
|
||||
24.429865
|
||||
65.4468
|
||||
37.291107
|
||||
23.705696
|
||||
22.402193
|
||||
24.140198
|
||||
24.90492
|
||||
33.40956
|
||||
24.232891
|
||||
58.03131
|
||||
49.38763
|
||||
27.506136
|
||||
56.58297
|
||||
51.46744
|
||||
29.875618
|
||||
17.269281
|
||||
60.80053
|
||||
17.33301
|
||||
23.891083
|
||||
23.526102
|
||||
40.361588
|
||||
35.379303
|
||||
29.354216
|
||||
56.58297
|
||||
38.62358
|
||||
35.454617
|
||||
20.142784
|
||||
32.899746
|
||||
30.733032
|
||||
58.320976
|
||||
59.88518
|
||||
45.459736
|
||||
34.220634
|
||||
49.63095
|
||||
51.82663
|
||||
32.830227
|
||||
24.690567
|
||||
31.671556
|
||||
52.492867
|
||||
17.483637
|
||||
37.540222
|
||||
24.736912
|
||||
49.08058
|
||||
43.559513
|
||||
84.39106
|
||||
30.91842
|
||||
37.528637
|
||||
41.247967
|
||||
51.368954
|
||||
24.122818
|
||||
11.412204
|
||||
37.841476
|
||||
26.527058
|
||||
25.936136
|
||||
29.1051
|
||||
29.1051
|
||||
27.262814
|
||||
29.012407
|
||||
48.814083
|
||||
48.55918
|
||||
28.079678
|
||||
43.547928
|
||||
34.452366
|
||||
45.55243
|
||||
53.222824
|
||||
49.97855
|
||||
93.08109
|
||||
28.20713
|
||||
30.385431
|
||||
54.572678
|
||||
37.302696
|
||||
25.936136
|
||||
31.503548
|
||||
38.525093
|
||||
135.48842
|
||||
37.60395
|
||||
20.733706
|
||||
26.451746
|
||||
20.658394
|
||||
39.19712
|
||||
20.658394
|
||||
27.285988
|
||||
35.23447
|
||||
41.972137
|
||||
43.18874
|
||||
41.972137
|
||||
29.487461
|
||||
31.184914
|
||||
52.00622
|
||||
41.462322
|
|
162
src/predict.py
Normal file
162
src/predict.py
Normal file
@ -0,0 +1,162 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import numpy as np
|
||||
import torch
|
||||
import pandas as pd
|
||||
import sys
|
||||
import argparse
|
||||
from Network import Network
|
||||
import random
|
||||
|
||||
#torch.set_printoptions(precision=10)
|
||||
|
||||
|
||||
dict_column_1 = {"":4, "do remontu":1, "do wykończenia":2, "do zamieszkania":3}
|
||||
dict_column_3 = {"":5, "pełna własność":1, "spółdzielcze wł. z KW":2, "spółdzielcze własnościowe":3, "udział":4}
|
||||
dict_column_9 = {"pierwotny":0, "wtórny":1}
|
||||
dict_column_11 = {"":8, "apartamentowiec":1, "blok":2, "dom wolnostojący":3, "kamienica":4, "loft":5, "plomba":6, "szeregowiec":7}
|
||||
dict_column_17 = {"":7, "elektryczne":1, "gazowe":2, "inne":3, "kotłownia":4, "miejskie":5, "piece kaflowe":6}
|
||||
dict_column_18 = {"":4, "aluminiowe":1, "drewniane":2, "plastikowe":3}
|
||||
dict_column_23 = {"":9, "beton":1, "beton komórkowy":2, "cegła":3, "inne":4, "pustak":5, "silikat":6, "wielka płyta":7, "żelbet":8}
|
||||
|
||||
def read_data(in_file):
|
||||
print("Reading in")
|
||||
all_data = pd.read_csv(in_file, sep='\t', keep_default_na=False, header = 1)
|
||||
expected = all_data.iloc[:,0]
|
||||
data = all_data.iloc[:,1:]
|
||||
|
||||
print("Data read")
|
||||
return expected, data
|
||||
|
||||
def clean_df(data_):
|
||||
print("Cleaning data")
|
||||
data_.iloc[:,0] = data_.iloc[:,0].map(dict_column_1)
|
||||
data_.iloc[:,2] = data_.iloc[:,2].map(dict_column_3)
|
||||
data_.iloc[:,8] = data_.iloc[:,8].map(dict_column_9)
|
||||
data_.iloc[:,10] = data_.iloc[:,10].map(dict_column_11)
|
||||
data_.iloc[:,16] = data_.iloc[:,16].map(dict_column_17)
|
||||
data_.iloc[:,17] = data_.iloc[:,17].map(dict_column_18)
|
||||
data_.iloc[:,21] = data_.iloc[:,21].map(dict_column_23)
|
||||
|
||||
for i, col in enumerate(data_.iloc[:,14]):
|
||||
#import ipdb; ipdb.set_trace()
|
||||
if col == 'parter':
|
||||
data_.iloc[i,14] = 22
|
||||
|
||||
# clear money
|
||||
for i, col in enumerate(data_.iloc[:,1]):
|
||||
try:
|
||||
if col == "":
|
||||
data_.iloc[i,1] = 1.0
|
||||
else:
|
||||
data_.iloc[i,1] = float(col.replace("zł", "").replace(" ", ""))
|
||||
except ValueError:
|
||||
import ipdb; ipdb.set_trace()
|
||||
|
||||
# deleting columns
|
||||
deleted_columns = [4,13,18,20,22,24]
|
||||
data_.drop(data_.columns[deleted_columns], axis = 1, inplace=True)
|
||||
for i, col in enumerate(data_.iloc[:,12]):
|
||||
if col == '> 10':
|
||||
data_.iloc[i,12] = 14
|
||||
elif col == "parter":
|
||||
data_.iloc[i,12] = 11
|
||||
elif col == "poddasze":
|
||||
data_.iloc[i,12] = 12
|
||||
elif col == "suterena":
|
||||
data_.iloc[i,12] = 13
|
||||
|
||||
for i, col in enumerate(data_.iloc[:,4]):
|
||||
if col == 'więcej niż 10':
|
||||
data_.iloc[i,4] = 1
|
||||
|
||||
for i, col in enumerate(data_.iloc[:,6]):
|
||||
data_.iloc[i,6] = col.replace(' ', '')
|
||||
print("Data cleaned")
|
||||
return data_
|
||||
|
||||
def clear(data_):
|
||||
for i, col in enumerate(data_.iloc[:,2]):
|
||||
try:
|
||||
if col == "":
|
||||
data_.iloc[i,2] = 1.0
|
||||
else:
|
||||
data_.iloc[i,2] = float(col.replace("zł", "").replace(" ", ""))
|
||||
except AttributeError:
|
||||
data_.iloc[i,2] = float(data_.iloc[i,2])
|
||||
#import ipdb; ipdb.set_trace()
|
||||
return data_
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--in_file", help="In tsv")
|
||||
parser.add_argument("--checkpoint")
|
||||
parser.add_argument("--out")
|
||||
args = parser.parse_args()
|
||||
|
||||
expected, data = read_data(args.in_file)
|
||||
clean_data = clear(data)
|
||||
clean_data = clean_data.iloc[:,2]
|
||||
|
||||
import ipdb; ipdb.set_trace()
|
||||
#model = Network(len(clean_data.columns))
|
||||
model = Network(1)
|
||||
if args.checkpoint:
|
||||
print(f"Loading model : {args.checkpoint}")
|
||||
model.load_state_dict(torch.load(args.checkpoint))
|
||||
with open(args.out, 'w+') as f:
|
||||
for i in clean_data:
|
||||
tensor = torch.tensor([i])
|
||||
y = model(tensor.float())
|
||||
try:
|
||||
f.write(str(y.item()) + '\n')
|
||||
except:
|
||||
import ipdb; ipdb.set_trace()
|
||||
return
|
||||
lr = 10
|
||||
optimizer = torch.optim.Adam(model.parameters(), lr=lr)
|
||||
criterion = torch.nn.MSELoss()
|
||||
|
||||
model.train()
|
||||
random_number = random.randint(0, 50)
|
||||
|
||||
print("Starting training")
|
||||
counter = 0
|
||||
l = [i for i in range(len(clean_data.index))]
|
||||
#import ipdb; ipdb.set_trace()
|
||||
for j in range(100):
|
||||
random.shuffle(l)
|
||||
for i in l:
|
||||
data_arr = [clean_data[i]]
|
||||
#data_arr = clean_data.loc[i].to_numpy()
|
||||
#data_arr[data_arr == ""] = 0
|
||||
#try:
|
||||
# data_arr = pd.to_numeric(data_arr)
|
||||
#except ValueError:
|
||||
# import ipdb; ipdb.set_trace()
|
||||
#import ipdb; ipdb.set_trace()
|
||||
expected_arr = float(expected.loc[i])
|
||||
|
||||
#tensor = torch.from_numpy(data_arr)
|
||||
tensor = torch.tensor(data_arr)
|
||||
y = torch.tensor([expected_arr])
|
||||
|
||||
optimizer.zero_grad()
|
||||
y_predcited = model(tensor.float())
|
||||
loss = criterion(y_predcited, y.float())
|
||||
loss.backward()
|
||||
optimizer.step()
|
||||
|
||||
if counter % 10000 == 0:
|
||||
print(f"{counter} : {loss}")
|
||||
print(f"{y} : {y_predcited}")
|
||||
if counter % 50000 == 0:
|
||||
print(f"Saving checkpoint model-{counter}-{lr}-{random_number}.ckpt")
|
||||
torch.save(model.state_dict(), f"model-{counter}-{lr}-{random_number}.ckpt")
|
||||
counter += 1
|
||||
|
||||
print(f"Saving last model model-final-{lr}-{random_number}")
|
||||
torch.save(model.state_dict(), f"model-{counter}-{lr}-{random_number}.ckpt")
|
||||
|
||||
|
||||
main()
|
140
src/train.py
Normal file
140
src/train.py
Normal file
@ -0,0 +1,140 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import numpy as np
|
||||
import torch
|
||||
import pandas as pd
|
||||
import sys
|
||||
import argparse
|
||||
from Network import Network
|
||||
import random
|
||||
|
||||
#torch.set_printoptions(precision=10)
|
||||
|
||||
|
||||
dict_column_1 = {"":4, "do remontu":1, "do wykończenia":2, "do zamieszkania":3}
|
||||
dict_column_3 = {"":5, "pełna własność":1, "spółdzielcze wł. z KW":2, "spółdzielcze własnościowe":3, "udział":4}
|
||||
dict_column_9 = {"pierwotny":0, "wtórny":1}
|
||||
dict_column_11 = {"":8, "apartamentowiec":1, "blok":2, "dom wolnostojący":3, "kamienica":4, "loft":5, "plomba":6, "szeregowiec":7}
|
||||
dict_column_17 = {"":7, "elektryczne":1, "gazowe":2, "inne":3, "kotłownia":4, "miejskie":5, "piece kaflowe":6}
|
||||
dict_column_18 = {"":4, "aluminiowe":1, "drewniane":2, "plastikowe":3}
|
||||
dict_column_23 = {"":9, "beton":1, "beton komórkowy":2, "cegła":3, "inne":4, "pustak":5, "silikat":6, "wielka płyta":7, "żelbet":8}
|
||||
|
||||
def read_data(in_file):
|
||||
print("Reading in")
|
||||
all_data = pd.read_csv(in_file, sep='\t', keep_default_na=False, header = 1)
|
||||
expected = all_data.iloc[:,0]
|
||||
data = all_data.iloc[:,1:]
|
||||
|
||||
print("Data read")
|
||||
return expected, data
|
||||
|
||||
def clean_df(data_):
|
||||
print("Cleaning data")
|
||||
data_.iloc[:,0] = data_.iloc[:,0].map(dict_column_1)
|
||||
data_.iloc[:,2] = data_.iloc[:,2].map(dict_column_3)
|
||||
data_.iloc[:,8] = data_.iloc[:,8].map(dict_column_9)
|
||||
data_.iloc[:,10] = data_.iloc[:,10].map(dict_column_11)
|
||||
data_.iloc[:,16] = data_.iloc[:,16].map(dict_column_17)
|
||||
data_.iloc[:,17] = data_.iloc[:,17].map(dict_column_18)
|
||||
data_.iloc[:,21] = data_.iloc[:,21].map(dict_column_23)
|
||||
|
||||
for i, col in enumerate(data_.iloc[:,14]):
|
||||
#import ipdb; ipdb.set_trace()
|
||||
if col == 'parter':
|
||||
data_.iloc[i,14] = 22
|
||||
|
||||
# clear money
|
||||
for i, col in enumerate(data_.iloc[:,1]):
|
||||
try:
|
||||
if col == "":
|
||||
data_.iloc[i,1] = 1.0
|
||||
else:
|
||||
data_.iloc[i,1] = float(col.replace("zł", "").replace(" ", ""))
|
||||
except ValueError:
|
||||
import ipdb; ipdb.set_trace()
|
||||
|
||||
# deleting columns
|
||||
deleted_columns = [4,13,18,20,22,24]
|
||||
data_.drop(data_.columns[deleted_columns], axis = 1, inplace=True)
|
||||
for i, col in enumerate(data_.iloc[:,12]):
|
||||
if col == '> 10':
|
||||
data_.iloc[i,12] = 14
|
||||
elif col == "parter":
|
||||
data_.iloc[i,12] = 11
|
||||
elif col == "poddasze":
|
||||
data_.iloc[i,12] = 12
|
||||
elif col == "suterena":
|
||||
data_.iloc[i,12] = 13
|
||||
|
||||
for i, col in enumerate(data_.iloc[:,4]):
|
||||
if col == 'więcej niż 10':
|
||||
data_.iloc[i,4] = 1
|
||||
|
||||
for i, col in enumerate(data_.iloc[:,6]):
|
||||
data_.iloc[i,6] = col.replace(' ', '')
|
||||
print("Data cleaned")
|
||||
return data_
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--in_file", help="In tsv")
|
||||
parser.add_argument("--checkpoint")
|
||||
args = parser.parse_args()
|
||||
|
||||
expected, data = read_data(args.in_file)
|
||||
clean_data = clean_df(data)
|
||||
clean_data = clean_data.iloc[:,1]
|
||||
|
||||
import ipdb; ipdb.set_trace()
|
||||
#model = Network(len(clean_data.columns))
|
||||
model = Network(1)
|
||||
if args.checkpoint:
|
||||
print(f"Loading model : {args.checkpoint}")
|
||||
model.load_state_dict(torch.load(args.checkpoint))
|
||||
lr = 10
|
||||
optimizer = torch.optim.Adam(model.parameters(), lr=lr)
|
||||
criterion = torch.nn.MSELoss()
|
||||
|
||||
model.train()
|
||||
random_number = random.randint(0, 50)
|
||||
|
||||
print("Starting training")
|
||||
counter = 0
|
||||
l = [i for i in range(len(clean_data.index))]
|
||||
#import ipdb; ipdb.set_trace()
|
||||
for j in range(100):
|
||||
random.shuffle(l)
|
||||
for i in l:
|
||||
data_arr = [clean_data[i]]
|
||||
#data_arr = clean_data.loc[i].to_numpy()
|
||||
#data_arr[data_arr == ""] = 0
|
||||
#try:
|
||||
# data_arr = pd.to_numeric(data_arr)
|
||||
#except ValueError:
|
||||
# import ipdb; ipdb.set_trace()
|
||||
#import ipdb; ipdb.set_trace()
|
||||
expected_arr = float(expected.loc[i])
|
||||
|
||||
#tensor = torch.from_numpy(data_arr)
|
||||
tensor = torch.tensor(data_arr)
|
||||
y = torch.tensor([expected_arr])
|
||||
|
||||
optimizer.zero_grad()
|
||||
y_predcited = model(tensor.float())
|
||||
loss = criterion(y_predcited, y.float())
|
||||
loss.backward()
|
||||
optimizer.step()
|
||||
|
||||
if counter % 10000 == 0:
|
||||
print(f"{counter} : {loss}")
|
||||
print(f"{y} : {y_predcited}")
|
||||
if counter % 50000 == 0:
|
||||
print(f"Saving checkpoint model-{counter}-{lr}-{random_number}.ckpt")
|
||||
torch.save(model.state_dict(), f"model-{counter}-{lr}-{random_number}.ckpt")
|
||||
counter += 1
|
||||
|
||||
print(f"Saving last model model-final-{lr}-{random_number}")
|
||||
torch.save(model.state_dict(), f"model-{counter}-{lr}-{random_number}.ckpt")
|
||||
|
||||
|
||||
main()
|
418
test-A/in.tsv
Normal file
418
test-A/in.tsv
Normal file
File diff suppressed because one or more lines are too long
416
test-A/out.tsv
Normal file
416
test-A/out.tsv
Normal file
@ -0,0 +1,416 @@
|
||||
-495323.9375
|
||||
-950439.375
|
||||
-643593.0
|
||||
-499419.0
|
||||
-515375.5625
|
||||
-348890.5625
|
||||
-377979.5625
|
||||
-594170.0
|
||||
-580049.125
|
||||
-424013.5625
|
||||
-586827.125
|
||||
-507609.0625
|
||||
-588945.25
|
||||
-690333.125
|
||||
-865996.625
|
||||
-130440.78125
|
||||
-850746.125
|
||||
-943237.75
|
||||
-456915.1875
|
||||
-761078.625
|
||||
-813043.375
|
||||
-839873.0
|
||||
-755006.625
|
||||
-615351.3125
|
||||
-904405.375
|
||||
-652771.5625
|
||||
-1003675.125
|
||||
-523848.0625
|
||||
-224203.3125
|
||||
-415682.25
|
||||
-99657.3125
|
||||
-1266040.75
|
||||
-682707.875
|
||||
-614927.6875
|
||||
-457480.0
|
||||
-509162.375
|
||||
-740179.75
|
||||
-604619.4375
|
||||
-569034.875
|
||||
-503514.0625
|
||||
-861054.375
|
||||
-427120.1875
|
||||
-844391.75
|
||||
-474142.625
|
||||
-320225.1875
|
||||
-553219.5
|
||||
-755147.875
|
||||
-430085.5625
|
||||
-615351.3125
|
||||
-1034034.875
|
||||
-1147849.125
|
||||
-424296.0
|
||||
-550677.75
|
||||
-658419.9375
|
||||
-615351.3125
|
||||
-1064536.0
|
||||
-510856.875
|
||||
-704454.0
|
||||
-184100.0625
|
||||
-656019.375
|
||||
-690333.125
|
||||
-804429.625
|
||||
-581320.0
|
||||
-882094.375
|
||||
-572847.5
|
||||
-594170.0
|
||||
-671269.9375
|
||||
-754441.75
|
||||
-561409.5625
|
||||
-480920.6875
|
||||
-530626.125
|
||||
-474142.625
|
||||
-909206.5
|
||||
-709113.875
|
||||
-697393.5
|
||||
-650653.4375
|
||||
-615351.3125
|
||||
-640062.8125
|
||||
-644581.5
|
||||
-631307.875
|
||||
-603489.75
|
||||
-491934.9375
|
||||
-730153.875
|
||||
-923892.25
|
||||
-629472.125
|
||||
-175627.5625
|
||||
-629330.9375
|
||||
-589368.875
|
||||
-615351.3125
|
||||
-601230.4375
|
||||
-506620.625
|
||||
-388852.625
|
||||
-498148.125
|
||||
-239877.5
|
||||
-591204.625
|
||||
-286758.75
|
||||
-683131.5
|
||||
-558867.8125
|
||||
-556749.6875
|
||||
-615351.3125
|
||||
-465952.5625
|
||||
-392806.4375
|
||||
-524836.5625
|
||||
-653054.0
|
||||
-366541.625
|
||||
-756560.0
|
||||
-715750.625
|
||||
-510292.0625
|
||||
-332934.0
|
||||
-530626.125
|
||||
-708831.375
|
||||
-1035447.0
|
||||
-583720.5625
|
||||
-982635.0
|
||||
-502384.375
|
||||
-604478.25
|
||||
-502384.375
|
||||
-600524.375
|
||||
-1014548.125
|
||||
-631307.875
|
||||
-792003.25
|
||||
-700076.5
|
||||
-550395.3125
|
||||
-756560.0
|
||||
-1338480.75
|
||||
-580049.125
|
||||
-523565.6875
|
||||
-427120.1875
|
||||
-1105768.875
|
||||
-476119.5625
|
||||
-611679.875
|
||||
-637097.4375
|
||||
-474566.25
|
||||
-897768.625
|
||||
-486427.8125
|
||||
-474142.625
|
||||
-876022.5
|
||||
-953687.25
|
||||
-517352.5
|
||||
-752606.125
|
||||
-465670.125
|
||||
-460163.0
|
||||
-649382.5625
|
||||
-843262.0
|
||||
-418788.875
|
||||
-397183.9375
|
||||
-743145.125
|
||||
-522577.1875
|
||||
-784660.5
|
||||
-700782.5
|
||||
-710384.75
|
||||
-425708.0625
|
||||
-676353.375
|
||||
-468070.6875
|
||||
-770680.75
|
||||
-742439.125
|
||||
-545029.375
|
||||
-608573.25
|
||||
-383486.6875
|
||||
-657713.875
|
||||
-950721.875
|
||||
-728318.25
|
||||
-421895.4375
|
||||
-683837.5
|
||||
-580049.125
|
||||
-597417.8125
|
||||
-479508.5625
|
||||
-537827.75
|
||||
-596146.9375
|
||||
-498289.3125
|
||||
-580190.3125
|
||||
-709537.5
|
||||
-687932.5
|
||||
-488969.5625
|
||||
-615351.3125
|
||||
-991672.375
|
||||
-976704.25
|
||||
-693016.0
|
||||
-607867.25
|
||||
-493629.4375
|
||||
-523706.875
|
||||
-500125.0625
|
||||
-675929.75
|
||||
-645569.9375
|
||||
-493488.25
|
||||
-1139800.25
|
||||
-530061.25
|
||||
-488122.3125
|
||||
-526107.4375
|
||||
-608290.875
|
||||
-597700.1875
|
||||
-547853.5625
|
||||
-828858.75
|
||||
-389135.0625
|
||||
-546865.125
|
||||
-756560.0
|
||||
-707136.875
|
||||
-427967.4375
|
||||
-728318.25
|
||||
-701488.625
|
||||
-584426.625
|
||||
-489675.5625
|
||||
-870797.75
|
||||
-389417.4375
|
||||
-799063.75
|
||||
-298620.3125
|
||||
-537262.9375
|
||||
-544746.9375
|
||||
-474142.625
|
||||
-750770.375
|
||||
-1625416.75
|
||||
-454514.625
|
||||
-647123.25
|
||||
-219967.0625
|
||||
-237476.9375
|
||||
-798922.5
|
||||
-728318.25
|
||||
-210364.875
|
||||
-549124.4375
|
||||
-756560.0
|
||||
-766585.75
|
||||
-707136.875
|
||||
-1355990.625
|
||||
-527801.9375
|
||||
-768845.125
|
||||
-356515.8125
|
||||
-718010.0
|
||||
-798216.5
|
||||
-635544.125
|
||||
-613939.1875
|
||||
-692592.375
|
||||
-937165.75
|
||||
-493488.25
|
||||
-645993.5625
|
||||
-460021.75
|
||||
-182546.8125
|
||||
-837190.125
|
||||
-654042.4375
|
||||
-527378.3125
|
||||
-383486.6875
|
||||
-488545.9375
|
||||
-582449.6875
|
||||
-365976.8125
|
||||
-692451.25
|
||||
-1745020.5
|
||||
-589368.875
|
||||
-615351.3125
|
||||
-523706.875
|
||||
-328697.75
|
||||
-856818.125
|
||||
-502666.8125
|
||||
-651359.5
|
||||
-483744.8125
|
||||
-1116077.125
|
||||
-824340.125
|
||||
-369365.8125
|
||||
-724223.125
|
||||
-791862.125
|
||||
-769974.75
|
||||
-841285.125
|
||||
-654183.6875
|
||||
-498571.75
|
||||
-495182.75
|
||||
-841285.125
|
||||
-498854.125
|
||||
-427826.1875
|
||||
-927563.625
|
||||
-580049.125
|
||||
-701771.0
|
||||
-629472.125
|
||||
-427543.8125
|
||||
-500689.875
|
||||
-448442.6875
|
||||
-746816.5
|
||||
-758960.5
|
||||
-646558.375
|
||||
-507185.4375
|
||||
-950721.875
|
||||
-558867.8125
|
||||
-820527.5
|
||||
-394924.5625
|
||||
-516505.25
|
||||
-798922.5
|
||||
-768562.625
|
||||
-603348.5625
|
||||
-364423.5
|
||||
-656584.1875
|
||||
-678612.75
|
||||
-609702.9375
|
||||
-572847.5
|
||||
-463693.1875
|
||||
-401279.0
|
||||
-475837.125
|
||||
-645146.3125
|
||||
-404385.5625
|
||||
-663644.625
|
||||
-682990.25
|
||||
-714197.375
|
||||
-473295.375
|
||||
-500407.4375
|
||||
-1003675.125
|
||||
-815867.625
|
||||
-785931.375
|
||||
-923751.0
|
||||
-781412.625
|
||||
-868256.0
|
||||
-756560.0
|
||||
-646982.0
|
||||
-554631.5625
|
||||
-931799.875
|
||||
-441523.4375
|
||||
-615351.3125
|
||||
-580049.125
|
||||
-458327.25
|
||||
-1180185.875
|
||||
-286617.5625
|
||||
-580049.125
|
||||
-6459.59375
|
||||
-755147.875
|
||||
-601230.4375
|
||||
-672964.4375
|
||||
-540651.9375
|
||||
-728318.25
|
||||
-678895.125
|
||||
-1358673.625
|
||||
-364564.75
|
||||
-421613.0
|
||||
-1029657.5
|
||||
-672540.8125
|
||||
-577224.9375
|
||||
-378685.625
|
||||
-684402.375
|
||||
-577931.0
|
||||
-833236.25
|
||||
-697675.875
|
||||
-601230.4375
|
||||
-656725.4375
|
||||
-911889.5
|
||||
-685955.625
|
||||
-492358.5625
|
||||
-717021.5
|
||||
-562680.4375
|
||||
-544746.9375
|
||||
-289865.375
|
||||
-498854.125
|
||||
-493488.25
|
||||
-661385.3125
|
||||
-1250790.25
|
||||
-628766.125
|
||||
-424296.0
|
||||
-784801.625
|
||||
-403538.3125
|
||||
-1102521.125
|
||||
-467082.1875
|
||||
-302291.6875
|
||||
-722669.875
|
||||
-567199.125
|
||||
-473154.1875
|
||||
-551807.375
|
||||
-615351.3125
|
||||
-558867.8125
|
||||
-516505.25
|
||||
-678612.75
|
||||
-510856.875
|
||||
-613656.8125
|
||||
-243972.5625
|
||||
-332934.0
|
||||
-587109.5625
|
||||
-800758.25
|
||||
-251597.8125
|
||||
-735519.875
|
||||
-963289.375
|
||||
-700076.5
|
||||
-788755.5
|
||||
-428955.875
|
||||
-734672.625
|
||||
-589933.75
|
||||
-502384.375
|
||||
-930529.0
|
||||
-792144.5
|
||||
-481909.125
|
||||
-1391998.875
|
||||
-565928.25
|
||||
-401843.8125
|
||||
-445900.9375
|
||||
-561692.0
|
||||
-594170.0
|
||||
-594170.0
|
||||
-608290.875
|
||||
-551525.0
|
||||
-608290.875
|
||||
-580049.125
|
||||
-629472.125
|
||||
-544746.9375
|
||||
-563527.6875
|
||||
-332086.75
|
||||
-629472.125
|
||||
-940131.125
|
||||
-629472.125
|
||||
-601230.4375
|
||||
-587109.5625
|
||||
-587109.5625
|
||||
-161365.5
|
||||
-636532.5625
|
||||
-728318.25
|
||||
-724929.25
|
||||
-388005.375
|
||||
-615351.3125
|
||||
-629472.125
|
||||
-516646.4375
|
||||
-664774.3125
|
||||
-636532.5625
|
||||
-544605.75
|
||||
-961453.75
|
||||
-943237.75
|
||||
-544746.9375
|
|
BIN
train/.train.tsv.swp
Normal file
BIN
train/.train.tsv.swp
Normal file
Binary file not shown.
2547
train/train.tsv
Normal file
2547
train/train.tsv
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user