선형 회귀분석 구현(Sklearn,Numpy) (1)
요구사항
(1) 전처리와 시각화”의 데이터로 선형회귀에 필요한 EDA 및 전처리 및 인코딩
범주형 변수 인코딩 3개 이상, EDA 3개 이상
1주차 과제 적극적으로 활용 가능 및 자신이 만든 Feature 역시 사용 가능
(2) 그 데이터를 다양한 방식으로 선형회귀분석 하기
(3) 데이터의 행렬을 통해 구하여 위의 값과 비교
Sklearn 없이 행렬 연산으로만 구하시오
우수과제 선정이유
회귀분석을 진행하는데 필요한 모든 고려사항들을 고려하셨다는 점에서 선정하게되었습니다.
각각의 Plot을 통해 이상치들을 확인하고 제거하신 점, 왼쪽으로 치우친 분포를 고려하여 변환작업을 수행한 점, 연속형변수에 대해 스케일을 통해 정규화를 시켜줬다는 점에서 회귀분석을 정확히 이해하시고 과제를 진행하였다는 점에서 완벽한 과제를 해주신 것 같습니다!
import pandas as pd#데이터 불러오기 및 첫 데이터 모든 column 보기
data = pd.read_csv('C:/Temp/Auction_master_train.csv')
df=data.copy() #혹시 몰라서 원데이터는 data란 변수에 남겨놓았다.
pd.set_option('display.max_columns', 500) #데이터 column을 500개 display하라는 함수(모든 column을 보기 위해 임의로 500개로 지정한 것이다.)1. Scatter plot EDA

Output : [1521]
보아하니 area와 price 간에 상관관계가 있음을 알 수 있다.(영역이 크면 당연히 값이 늘어나긴한다..) outlier처럼 보이는 값이 존재하는데 이는 1521번째 값임을 알 수 있다. 서울 관악구에 지어진 건물이라는데 값이 너무 큰 것으로 보아 측정에 오류가 있던 것으로 추정된다. 이를 제거하고 출력해본다.

이제 조금 그래프다운 형태를 띠나 여전히 outlier 의심점이 보인다. 이를 또 찾아보도록 하자.
Output : [1212]
이는 서울 강북구 번동의 아파트, Total building area는 약 1200평방미터로 나온다. outlier인지 아닌지 판단하기 위하여 주소 '시'의 평균을 보기로 한다.
Auction_key
Claim_price
Auction_count
Auction_miscarriage_count
Total_land_gross_area
Total_land_real_area
Total_land_auction_area
Total_building_area
Total_building_auction_area
Total_appraisal_price
Minimum_sales_price
addr_bunji1
addr_bunji2
Total_floor
Current_floor
road_bunji1
road_bunji2
point.y
point.x
Hammer_price
addr_si
강남구
201.333333
8.315065e+08
1.794118
0.745098
41692.277059
58.097059
54.699020
129.649902
122.521176
1.448500e+09
1.210360e+09
436.911765
9.840909
17.303922
10.401961
129.617647
5.000000
37.503128
127.051402
1.399296e+09
강동구
523.512821
3.554551e+08
1.717949
0.717949
34967.487179
49.724872
49.059487
100.024359
98.572308
5.614872e+08
4.830585e+08
328.743590
6.294118
15.820513
8.358974
295.717949
10.000000
37.545619
127.143863
5.481503e+08
강북구
1496.714286
2.010612e+08
1.904762
0.857143
57663.609524
68.720952
67.734762
136.174762
134.985714
6.005476e+08
4.152057e+08
684.904762
39.000000
17.333333
9.571429
130.400000
3.000000
37.630671
127.024243
4.914191e+08
강서구
1299.871795
5.570787e+08
1.717949
0.679487
25424.229487
40.545769
39.831410
76.207821
74.926667
3.466603e+08
2.997796e+08
1172.051282
19.357143
12.794872
7.487179
89.610390
7.000000
37.077213
127.239927
3.400114e+08
관악구
194.857143
2.063611e+08
2.238095
1.095238
34628.861667
37.690476
36.850238
87.553095
85.854048
4.074048e+08
3.333106e+08
1332.642857
32.263158
15.547619
6.619048
150.428571
12.500000
37.477864
126.938094
3.820510e+08
광진구
518.521739
3.073419e+08
1.956522
0.956522
15470.369565
48.255217
48.255217
99.774348
99.774348
6.286522e+08
5.062035e+08
468.130435
54.000000
14.478261
7.086957
151.363636
2.500000
37.542878
127.090860
5.896738e+08
구로구
1092.596491
2.181164e+08
1.894737
0.877193
21730.326316
34.275789
32.581053
83.836316
80.343684
3.572682e+08
2.989674e+08
533.357143
53.655172
16.000000
9.035088
88.854545
9.666667
37.496498
126.871492
3.407228e+08
금정구
2068.827586
9.750046e+07
1.689655
0.620690
18515.200000
37.806897
36.791724
88.660000
87.241379
2.360552e+08
2.072538e+08
518.379310
21.578947
15.172414
7.793103
89.827586
4.500000
35.237879
129.089680
2.417927e+08
금천구
1086.200000
1.496667e+08
1.920000
0.920000
40223.364000
42.963200
42.963200
93.883600
93.883600
3.483200e+08
2.883920e+08
860.520000
11.533333
14.720000
7.920000
283.291667
NaN
37.455508
126.903505
3.283875e+08
기장군
2577.130435
1.575648e+08
2.086957
0.956522
36607.760870
50.761739
49.879130
88.088261
86.249565
2.406522e+08
1.993061e+08
652.652174
10.666667
16.478261
7.173913
50.130435
NaN
35.299639
129.190949
2.194524e+08
남구
2557.642857
1.665850e+08
1.517857
0.517857
73763.860714
40.572143
38.901607
96.198393
93.201429
2.739312e+08
2.458873e+08
459.642857
20.627907
20.250000
10.875000
75.285714
9.000000
35.128166
129.096394
2.747884e+08
노원구
1517.821705
1.957424e+08
1.658915
0.604651
45881.200000
38.480078
37.894496
72.954884
71.245659
3.298279e+08
2.865651e+08
568.203125
6.360000
14.573643
7.015504
177.558140
13.000000
37.646962
127.067697
3.247497e+08
도봉구
1567.970588
2.048912e+08
1.823529
0.794118
31795.495588
35.976912
34.422353
85.573235
82.335294
3.362794e+08
2.795235e+08
489.676471
15.083333
15.250000
7.161765
188.955224
14.230769
37.657717
127.038664
3.191248e+08
동구
2144.133333
9.165923e+07
1.933333
0.933333
4592.873333
30.084667
30.084667
75.495333
74.282000
1.702667e+08
1.400955e+08
816.000000
18.500000
13.600000
6.600000
57.733333
1.000000
35.129565
129.048839
1.613853e+08
동대문구
1537.528302
2.109945e+08
1.716981
0.716981
30361.903774
40.425660
39.531698
95.107170
92.544528
4.639358e+08
3.991042e+08
394.094340
9.789474
18.245283
9.547170
81.679245
7.750000
37.579911
127.062228
4.528658e+08
동래구
1980.431373
5.206533e+08
3.137255
2.000000
11937.541176
28.005294
27.438824
85.868431
84.916667
2.429295e+08
1.873124e+08
436.000000
44.100000
16.294118
9.372549
55.833333
NaN
35.205389
129.081877
2.095611e+08
동작구
235.054054
4.359083e+08
1.702703
0.675676
118613.708108
38.807568
37.560000
103.611622
100.875676
5.890676e+08
5.060314e+08
500.459459
39.625000
20.108108
10.459459
58.638889
32.000000
37.497308
126.948634
5.695185e+08
마포구
760.915493
2.046736e+08
1.549296
0.521127
26272.074648
36.223099
35.249577
88.201972
86.416338
5.604366e+08
4.892924e+08
441.070423
33.205882
12.676056
6.647887
150.788732
11.500000
37.553838
126.940071
5.501279e+08
부산진구
2127.357143
1.672483e+08
1.654762
0.642857
18001.575000
26.345833
25.768452
83.771310
81.627857
2.547976e+08
2.221148e+08
483.880952
13.034483
23.988095
12.250000
157.178571
6.000000
35.161446
129.049310
2.483445e+08
북구
2173.471698
1.520414e+08
1.603774
0.566038
65846.461509
37.301887
35.884340
76.286226
73.421698
2.178868e+08
1.953328e+08
953.377358
5.379310
18.981132
10.018868
116.924528
19.500000
35.221694
129.017753
2.161426e+08
사상구
2225.982759
1.293041e+08
1.931034
0.896552
31633.053448
37.450690
37.040172
80.144138
79.411897
1.926724e+08
1.586710e+08
432.137931
13.894737
19.051724
11.672414
124.775862
22.307692
35.149124
128.991819
1.842684e+08
사하구
2221.541667
1.124876e+08
1.979167
0.916667
41849.603125
41.296979
41.040208
83.443542
82.758125
1.804333e+08
1.478367e+08
532.281250
12.263158
17.656250
8.093750
145.895833
3.000000
35.085195
128.979449
1.666656e+08
서구
2283.823529
2.008066e+08
2.058824
1.000000
6988.811765
40.782941
40.782941
91.310588
91.310588
2.219412e+08
1.806075e+08
241.647059
19.615385
14.588235
6.235294
94.000000
12.000000
35.090394
129.018130
2.065203e+08
서대문구
783.378378
2.217121e+08
1.891892
0.837838
17057.721622
42.075676
41.206486
98.344595
96.632432
4.082446e+08
3.324879e+08
317.891892
65.166667
13.675676
6.297297
99.081081
13.111111
37.581790
126.939526
3.798891e+08
서초구
183.356164
9.050558e+08
1.876712
0.835616
21191.920548
62.369041
60.195890
144.772192
140.198082
1.208144e+09
1.004236e+09
960.563380
15.673077
14.219178
7.342466
76.232877
14.125000
37.488934
127.014325
1.135984e+09
성동구
506.827586
4.266443e+08
1.448276
0.413793
30121.396552
40.775517
40.775517
92.398276
92.398276
5.505517e+08
5.026897e+08
444.827586
95.000000
17.620690
7.862069
123.896552
31.000000
37.552214
127.037199
5.849723e+08
성북구
1427.822222
2.124852e+08
1.777778
0.733333
34397.335556
37.246667
35.955111
93.304000
89.957111
4.093556e+08
3.484569e+08
472.711111
7.416667
18.355556
9.288889
182.533333
15.000000
37.599696
127.021874
3.994318e+08
송파구
518.883333
4.967428e+08
1.700000
0.616667
72965.065000
51.162500
48.619167
112.228167
107.484333
8.050500e+08
7.095367e+08
170.950000
8.000000
17.766667
8.833333
123.583333
9.500000
37.504760
127.116930
8.148680e+08
수영구
2548.515152
2.344929e+08
1.787879
0.636364
12873.636364
32.580909
32.580909
91.670909
91.670909
3.202695e+08
2.765762e+08
407.878788
14.730769
18.212121
8.818182
170.818182
8.857143
35.159782
129.115140
3.155445e+08
양천구
1085.941176
1.290913e+09
1.720588
0.676471
46748.208824
46.806176
46.076176
93.092059
91.155000
5.676368e+08
5.060369e+08
782.088235
6.370370
15.205882
7.602941
108.191176
22.400000
37.524088
126.860318
5.725753e+08
연제구
2086.967742
1.679917e+08
1.483871
0.451613
20028.709677
33.820323
32.742903
95.305806
93.627097
2.735710e+08
2.523039e+08
981.935484
20.678571
18.838710
9.516129
71.870968
10.000000
35.183980
129.086470
2.779615e+08
영도구
2152.344828
1.567142e+08
2.241379
1.206897
21137.058621
35.642759
34.477931
82.673103
80.311379
1.987931e+08
1.508135e+08
398.241379
56.823529
14.724138
8.172414
121.448276
NaN
35.083964
129.059641
1.737148e+08
영등포구
1086.000000
1.324188e+09
1.872340
0.808511
23452.095745
47.427660
45.588085
116.111277
112.061064
7.053809e+08
5.929188e+08
597.829787
3.636364
19.468085
8.851064
134.851064
8.500000
37.518085
126.907750
6.793869e+08
용산구
771.555556
4.795674e+08
1.703704
0.703704
20592.629630
46.136296
45.047778
121.418889
115.571481
9.344074e+08
8.203644e+08
267.333333
88.214286
18.037037
10.148148
86.925926
20.000000
37.528343
126.973528
9.347509e+08
은평구
759.490566
1.892046e+08
2.000000
0.924528
13850.000000
34.239623
34.239623
82.244151
82.244151
3.618302e+08
2.934833e+08
302.433962
20.640000
12.056604
5.471698
131.000000
14.437500
37.605664
126.919464
3.362579e+08
종로구
231.705882
3.464952e+08
2.176471
1.176471
17176.235294
46.985882
45.971176
111.871176
107.962353
6.934706e+08
5.233671e+08
226.294118
8.500000
12.882353
5.941176
116.764706
10.500000
37.586239
126.979263
5.984927e+08
중구
962.000000
2.969734e+08
2.366667
1.200000
35864.533333
27.561667
26.355333
94.842000
91.109667
5.276333e+08
4.018757e+08
545.900000
45.888889
19.600000
9.133333
102.500000
NaN
36.577890
127.811950
4.544756e+08
중랑구
1544.324324
1.735280e+08
1.594595
0.594595
16380.967568
29.984054
29.421081
79.265946
78.384865
3.370297e+08
2.957265e+08
618.378378
17.250000
15.864865
7.189189
185.216216
23.666667
37.598995
127.089161
3.267374e+08
해운대구
2559.247191
2.525467e+08
1.876404
0.820225
30408.001124
40.169213
40.169213
97.062809
97.062809
4.174944e+08
3.495367e+08
1268.022472
49.750000
24.617978
15.258427
80.147727
10.000000
35.182566
129.148052
3.918034e+08
거의 모든 지역의 경매 지역 면적 평균이 60제곱미터 이하인데 1200 제곱미터 정도로 나온 것을 보아 outlier로 판단해야 할 것 같다. google maps에 (37.6373, 127.031)지역 좌표를 찍어보면 건물이 집합된 장소가 나오며 1200제곱미터에 해당하는 면적을 출력해보니 생각보다 크지 않아 아마 건물 한개가 아닌 단지의 면적을 측정한 것이 아닌가싶다. 다른 측정값들과 측정 방법이 다른 것으로 의심되므로 outlier로 지정, 이를 제거하고 이후 분석을 진행한다.

훨씬 깔끔한 scatter plot이 출력된다.
2. Histogram EDA
위의 pairplot을 보면 Price 관련 변수들이 왼쪽으로 치우침을 알 수 있다. 이를 수정하기 위해 변수 변환을 시도하겠다. 우선 다음과 같이 Hammer price에 관한 요약 설명을 보면 범위가 매우 큼을 알 수 있다.
표준화
Total_land_real_area
Total_land_auction_area
Total_building_area
Total_building_auction_area
Total_appraisal_price
Minimum_sales_price
Hammer_price
0
37.35
37.35
181.77
181.77
836000000
668800000
760000000
1
18.76
18.76
118.38
118.38
1073000000
858400000
971889999
2
71.00
71.00
49.94
49.94
119000000
76160000
93399999
3
32.98
32.98
84.91
84.91
288400000
230720000
256899000
4
45.18
45.18
84.96
84.96
170000000
136000000
158660000
Total_land_real_area
Total_land_auction_area
Total_building_area
Total_building_auction_area
Total_appraisal_price
Minimum_sales_price
Hammer_price
0
0.171330
0.171330
0.590181
0.600960
0.149435
0.149272
0.155187
1
0.086055
0.086055
0.373151
0.389639
0.192018
0.191862
0.198816
2
0.325688
0.325688
0.138832
0.161483
0.020611
0.016145
0.017933
3
0.151284
0.151284
0.258559
0.278061
0.051047
0.050865
0.051598
4
0.207248
0.207248
0.258730
0.278228
0.029774
0.029587
0.031370
MinMax Scaler는 (x - min)/(max-min) 의 값을 나타낸 것으로 데이터를 0과 1사이의 범위로 맞춰 scaling하는 것이다. scaling의 다른 방식인 standard scaler는 평균=0, 분산=1로 scaling 하는 것이며 from sklearn.preprocessing import StandardScaler 로 import 가능하다.

위와같이 scaling은 히스토그램에 영향이 없다. 변수 변환을 통해 히스토그램을 좀 더 이쁘게 변환해보겠다.
변수 변환 - log를 취하여 그래프 변환
Total_land_real_area
Total_land_auction_area
Total_building_area
Total_building_auction_area
Total_appraisal_price
Minimum_sales_price
Hammer_price
0
0.171330
0.171330
0.590181
0.600960
0.149435
0.149272
0.155187
1
0.086055
0.086055
0.373151
0.389639
0.192018
0.191862
0.198816
2
0.325688
0.325688
0.138832
0.161483
0.020611
0.016145
0.017933
3
0.151284
0.151284
0.258559
0.278061
0.051047
0.050865
0.051598
4
0.207248
0.207248
0.258730
0.278228
0.029774
0.029587
0.031370

xlabel의 범위가 일치하지 않아 price 그래프는 이쁘게 나왔으나 area 그래프는 한곳에 몰려있어 보임을 알 수 있다. 이는 다음에 나타낼 subplot 개별 지정을 통해 해결할 수 있다.

이제 그래프들이 대략적인 정규분포 모양을 따름을 알 수 있다. 다만 Total building auction area가 특정 값에 몰려있게 됨을 알 수 있는데 이는 건물이 지어지는 지역에서의 면적의 한계점이 존재한다고 파악할 수 있을 것 같다. Total building auction area와 Total building area는 거의 일치하나 경매에 사용된 빌딩의 면적이 좀 더 특정 값에 몰리는 것을 보아 경매에 선호되는 면적이 있거나, 범위를 내리거나 올려서 특정 값을 맞춘 것이 아닐까싶다.
3. 범주형 변수 인코
3-1. 날짜 인코딩 - 과제 1 참조
Auction_key
Auction_class
Bid_class
Claim_price
Appraisal_company
Appraisal_date
Auction_count
Auction_miscarriage_count
Total_land_gross_area
Total_land_real_area
Total_land_auction_area
Total_building_area
Total_building_auction_area
Total_appraisal_price
Minimum_sales_price
First_auction_date
Final_auction_date
Final_result
Creditor
addr_do
addr_si
addr_dong
addr_li
addr_san
addr_bunji1
addr_bunji2
addr_etc
Apartment_usage
Preserve_regist_date
Total_floor
Current_floor
Specific
Share_auction_YorN
road_name
road_bunji1
road_bunji2
Close_date
Close_result
point.y
point.x
Hammer_price
auction_start_weekday
auction_end_weekday
0
2687
임의
개별
1766037301
정명감정
2017-07-26 00:00:00
2
1
12592.0
37.35
37.35
181.77
181.77
836000000
668800000
2018-02-13
2018-03-20
낙찰
베리타스자산관리대부
부산
해운대구
우동
NaN
N
1398.0
NaN
해운대엑소디움 5층 101-502호
주상복합
2009-07-14 00:00:00
45
5
NaN
N
해운대해변로
30.0
NaN
2018-06-14 00:00:00
배당
35.162717
129.137048
760000000
1
1
1
2577
임의
일반
152946867
희감정
2016-09-12 00:00:00
2
1
42478.1
18.76
18.76
118.38
118.38
1073000000
858400000
2016-12-29
2017-02-02
낙찰
흥국저축은행
부산
해운대구
우동
NaN
N
1407.0
NaN
해운대두산위브더제니스 103동 51층 5103호
아파트
2011-12-16 00:00:00
70
51
NaN
N
마린시티2로
33.0
NaN
2017-03-30 00:00:00
배당
35.156633
129.145068
971889999
3
3
2
2197
임의
개별
11326510
혜림감정
2016-11-22 00:00:00
3
2
149683.1
71.00
71.00
49.94
49.94
119000000
76160000
2017-07-28
2017-10-13
낙찰
국민은행
부산
사상구
모라동
NaN
N
552.0
NaN
백양그린 206동 14층 1403호
아파트
1992-07-31 00:00:00
15
14
NaN
N
모라로110번길
88.0
NaN
2017-12-13 00:00:00
배당
35.184601
128.996765
93399999
4
4
3
2642
임의
일반
183581724
신라감정
2016-12-13 00:00:00
2
1
24405.0
32.98
32.98
84.91
84.91
288400000
230720000
2017-07-20
2017-11-02
낙찰
고려저축은행
부산
남구
대연동
NaN
N
243.0
23.0
대연청구 109동 11층 1102호
아파트
2001-07-13 00:00:00
20
11
NaN
N
황령대로319번가길
110.0
NaN
2017-12-27 00:00:00
배당
35.154180
129.089081
256899000
3
3
4
1958
강제
일반
45887671
나라감정
2016-03-07 00:00:00
2
1
774.0
45.18
45.18
84.96
84.96
170000000
136000000
2016-07-06
2016-08-03
낙찰
Private
부산
사하구
괴정동
NaN
N
399.0
2.0
동조리젠시 7층 703호
아파트
2001-11-27 00:00:00
7
7
NaN
N
오작로
51.0
NaN
2016-10-04 00:00:00
배당
35.099630
128.998874
158660000
2
2
날짜를 Monday=0에서 Sunday=7으로 인코딩하였다. 추가 분석을 위해 경매 기간 변수도 추가하겠다.
Auction_key
Auction_class
Bid_class
Claim_price
Appraisal_company
Appraisal_date
Auction_count
Auction_miscarriage_count
Total_land_gross_area
Total_land_real_area
Total_land_auction_area
Total_building_area
Total_building_auction_area
Total_appraisal_price
Minimum_sales_price
First_auction_date
Final_auction_date
Final_result
Creditor
addr_do
addr_si
addr_dong
addr_li
addr_san
addr_bunji1
addr_bunji2
addr_etc
Apartment_usage
Preserve_regist_date
Total_floor
Current_floor
Specific
Share_auction_YorN
road_name
road_bunji1
road_bunji2
Close_date
Close_result
point.y
point.x
Hammer_price
auction_start_weekday
auction_end_weekday
auction_start_day
auction_end_day
auction_day_length
0
2687
임의
개별
1766037301
정명감정
2017-07-26 00:00:00
2
1
12592.0
37.35
37.35
181.77
181.77
836000000
668800000
2018-02-13
2018-03-20
낙찰
베리타스자산관리대부
부산
해운대구
우동
NaN
N
1398.0
NaN
해운대엑소디움 5층 101-502호
주상복합
2009-07-14 00:00:00
45
5
NaN
N
해운대해변로
30.0
NaN
2018-06-14 00:00:00
배당
35.162717
129.137048
760000000
1
1
2018-02-13 00:00:00
2018-03-20 00:00:00
35
1
2577
임의
일반
152946867
희감정
2016-09-12 00:00:00
2
1
42478.1
18.76
18.76
118.38
118.38
1073000000
858400000
2016-12-29
2017-02-02
낙찰
흥국저축은행
부산
해운대구
우동
NaN
N
1407.0
NaN
해운대두산위브더제니스 103동 51층 5103호
아파트
2011-12-16 00:00:00
70
51
NaN
N
마린시티2로
33.0
NaN
2017-03-30 00:00:00
배당
35.156633
129.145068
971889999
3
3
2016-12-29 00:00:00
2017-02-02 00:00:00
35
2
2197
임의
개별
11326510
혜림감정
2016-11-22 00:00:00
3
2
149683.1
71.00
71.00
49.94
49.94
119000000
76160000
2017-07-28
2017-10-13
낙찰
국민은행
부산
사상구
모라동
NaN
N
552.0
NaN
백양그린 206동 14층 1403호
아파트
1992-07-31 00:00:00
15
14
NaN
N
모라로110번길
88.0
NaN
2017-12-13 00:00:00
배당
35.184601
128.996765
93399999
4
4
2017-07-28 00:00:00
2017-10-13 00:00:00
77
3
2642
임의
일반
183581724
신라감정
2016-12-13 00:00:00
2
1
24405.0
32.98
32.98
84.91
84.91
288400000
230720000
2017-07-20
2017-11-02
낙찰
고려저축은행
부산
남구
대연동
NaN
N
243.0
23.0
대연청구 109동 11층 1102호
아파트
2001-07-13 00:00:00
20
11
NaN
N
황령대로319번가길
110.0
NaN
2017-12-27 00:00:00
배당
35.154180
129.089081
256899000
3
3
2017-07-20 00:00:00
2017-11-02 00:00:00
105
4
1958
강제
일반
45887671
나라감정
2016-03-07 00:00:00
2
1
774.0
45.18
45.18
84.96
84.96
170000000
136000000
2016-07-06
2016-08-03
낙찰
Private
부산
사하구
괴정동
NaN
N
399.0
2.0
동조리젠시 7층 703호
아파트
2001-11-27 00:00:00
7
7
NaN
N
오작로
51.0
NaN
2016-10-04 00:00:00
배당
35.099630
128.998874
158660000
2
2
2016-07-06 00:00:00
2016-08-03 00:00:00
28
3-2 Bid Class 인코딩
Auction_key
Auction_class
Bid_class
Claim_price
Appraisal_company
Appraisal_date
Auction_count
Auction_miscarriage_count
Total_land_gross_area
Total_land_real_area
Total_land_auction_area
Total_building_area
Total_building_auction_area
Total_appraisal_price
Minimum_sales_price
First_auction_date
Final_auction_date
Final_result
Creditor
addr_do
addr_si
addr_dong
addr_li
addr_san
addr_bunji1
addr_bunji2
addr_etc
Apartment_usage
Preserve_regist_date
Total_floor
Current_floor
Specific
Share_auction_YorN
road_name
road_bunji1
road_bunji2
Close_date
Close_result
point.y
point.x
Hammer_price
auction_start_weekday
auction_end_weekday
auction_day_length
Bid
0
2687
임의
개별
1766037301
정명감정
2017-07-26 00:00:00
2
1
12592.0
37.35
37.35
181.77
181.77
836000000
668800000
2018-02-13
2018-03-20
낙찰
베리타스자산관리대부
부산
해운대구
우동
NaN
N
1398.0
NaN
해운대엑소디움 5층 101-502호
주상복합
2009-07-14 00:00:00
45
5
NaN
N
해운대해변로
30.0
NaN
2018-06-14 00:00:00
배당
35.162717
129.137048
760000000
1
1
35
1
1
2577
임의
일반
152946867
희감정
2016-09-12 00:00:00
2
1
42478.1
18.76
18.76
118.38
118.38
1073000000
858400000
2016-12-29
2017-02-02
낙찰
흥국저축은행
부산
해운대구
우동
NaN
N
1407.0
NaN
해운대두산위브더제니스 103동 51층 5103호
아파트
2011-12-16 00:00:00
70
51
NaN
N
마린시티2로
33.0
NaN
2017-03-30 00:00:00
배당
35.156633
129.145068
971889999
3
3
35
0
2
2197
임의
개별
11326510
혜림감정
2016-11-22 00:00:00
3
2
149683.1
71.00
71.00
49.94
49.94
119000000
76160000
2017-07-28
2017-10-13
낙찰
국민은행
부산
사상구
모라동
NaN
N
552.0
NaN
백양그린 206동 14층 1403호
아파트
1992-07-31 00:00:00
15
14
NaN
N
모라로110번길
88.0
NaN
2017-12-13 00:00:00
배당
35.184601
128.996765
93399999
4
4
77
1
3
2642
임의
일반
183581724
신라감정
2016-12-13 00:00:00
2
1
24405.0
32.98
32.98
84.91
84.91
288400000
230720000
2017-07-20
2017-11-02
낙찰
고려저축은행
부산
남구
대연동
NaN
N
243.0
23.0
대연청구 109동 11층 1102호
아파트
2001-07-13 00:00:00
20
11
NaN
N
황령대로319번가길
110.0
NaN
2017-12-27 00:00:00
배당
35.154180
129.089081
256899000
3
3
105
0
4
1958
강제
일반
45887671
나라감정
2016-03-07 00:00:00
2
1
774.0
45.18
45.18
84.96
84.96
170000000
136000000
2016-07-06
2016-08-03
낙찰
Private
부산
사하구
괴정동
NaN
N
399.0
2.0
동조리젠시 7층 703호
아파트
2001-11-27 00:00:00
7
7
NaN
N
오작로
51.0
NaN
2016-10-04 00:00:00
배당
35.099630
128.998874
158660000
2
2
28
0
Bid라는 변수에 입찰 구분 중 일반=0, 개별=1, 일괄=2로 인코딩하였다.
3-3. 건물(토지)의 대표 용도 인코딩
Auction_key
Auction_class
Bid_class
Claim_price
Appraisal_company
Appraisal_date
Auction_count
Auction_miscarriage_count
Total_land_gross_area
Total_land_real_area
Total_land_auction_area
Total_building_area
Total_building_auction_area
Total_appraisal_price
Minimum_sales_price
First_auction_date
Final_auction_date
Final_result
Creditor
addr_do
addr_si
addr_dong
addr_li
addr_san
addr_bunji1
addr_bunji2
addr_etc
Preserve_regist_date
Total_floor
Current_floor
Specific
Share_auction_YorN
road_name
road_bunji1
road_bunji2
Close_date
Close_result
point.y
point.x
Hammer_price
auction_start_weekday
auction_end_weekday
auction_day_length
Bid
Apartment_usage
아파트
1654
1654
1654
1654
1654
1654
1654
1654
1654
1654
1654
1654
1654
1654
1654
1654
1654
1654
1654
1654
1654
1654
22
1654
1651
686
1654
1654
1654
1654
41
1654
1654
1647
129
1654
1654
1654
1654
1654
1654
1654
1654
1654
주상복합
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
277
1
277
276
201
277
277
277
277
21
277
277
261
26
277
277
277
277
277
277
277
277
27
건물(토지)의 대표 용도를 grouping하여 count한 결과 '아파트'와 '주상복합' 두 가지로 나뉨을 알 수 있다. 이를 인코딩하겠다.
Auction_key
Auction_class
Bid_class
Claim_price
Appraisal_company
Appraisal_date
Auction_count
Auction_miscarriage_count
Total_land_gross_area
Total_land_real_area
Total_land_auction_area
Total_building_area
Total_building_auction_area
Total_appraisal_price
Minimum_sales_price
First_auction_date
Final_auction_date
Final_result
Creditor
addr_do
addr_si
addr_dong
addr_li
addr_san
addr_bunji1
addr_bunji2
addr_etc
Apartment_usage
Preserve_regist_date
Total_floor
Current_floor
Specific
Share_auction_YorN
road_name
road_bunji1
road_bunji2
Close_date
Close_result
point.y
point.x
Hammer_price
auction_start_weekday
auction_end_weekday
auction_day_length
Bid
Use
0
2687
임의
개별
1766037301
정명감정
2017-07-26 00:00:00
2
1
12592.0
37.35
37.35
181.77
181.77
836000000
668800000
2018-02-13
2018-03-20
낙찰
베리타스자산관리대부
부산
해운대구
우동
NaN
N
1398.0
NaN
해운대엑소디움 5층 101-502호
주상복합
2009-07-14 00:00:00
45
5
NaN
N
해운대해변로
30.0
NaN
2018-06-14 00:00:00
배당
35.162717
129.137048
760000000
1
1
35
1
1
1
2577
임의
일반
152946867
희감정
2016-09-12 00:00:00
2
1
42478.1
18.76
18.76
118.38
118.38
1073000000
858400000
2016-12-29
2017-02-02
낙찰
흥국저축은행
부산
해운대구
우동
NaN
N
1407.0
NaN
해운대두산위브더제니스 103동 51층 5103호
아파트
2011-12-16 00:00:00
70
51
NaN
N
마린시티2로
33.0
NaN
2017-03-30 00:00:00
배당
35.156633
129.145068
971889999
3
3
35
0
0
2
2197
임의
개별
11326510
혜림감정
2016-11-22 00:00:00
3
2
149683.1
71.00
71.00
49.94
49.94
119000000
76160000
2017-07-28
2017-10-13
낙찰
국민은행
부산
사상구
모라동
NaN
N
552.0
NaN
백양그린 206동 14층 1403호
아파트
1992-07-31 00:00:00
15
14
NaN
N
모라로110번길
88.0
NaN
2017-12-13 00:00:00
배당
35.184601
128.996765
93399999
4
4
77
1
0
3
2642
임의
일반
183581724
신라감정
2016-12-13 00:00:00
2
1
24405.0
32.98
32.98
84.91
84.91
288400000
230720000
2017-07-20
2017-11-02
낙찰
고려저축은행
부산
남구
대연동
NaN
N
243.0
23.0
대연청구 109동 11층 1102호
아파트
2001-07-13 00:00:00
20
11
NaN
N
황령대로319번가길
110.0
NaN
2017-12-27 00:00:00
배당
35.154180
129.089081
256899000
3
3
105
0
0
4
1958
강제
일반
45887671
나라감정
2016-03-07 00:00:00
2
1
774.0
45.18
45.18
84.96
84.96
170000000
136000000
2016-07-06
2016-08-03
낙찰
Private
부산
사하구
괴정동
NaN
N
399.0
2.0
동조리젠시 7층 703호
아파트
2001-11-27 00:00:00
7
7
NaN
N
오작로
51.0
NaN
2016-10-04 00:00:00
배당
35.099630
128.998874
158660000
2
2
28
0
0
4. 선형 회귀 분석
우선 회귀 분석에 사용할 데이터만 따로 data에 저장하겠다.
모델의 적합성 검증을 위하여 train & test data split을 진행해준다.
회귀적합
세상에 r square 값이 0.99가 나왔다. 너무 높다.

r square가 높게 나온 이유는 서로 관련 있는 변수들이 많아서 생긴다고 볼 수도 있다. 이 데이터에서는 price관련된 변수가 3개, area 관련 변수가 4개가 있으며 서로 관련성이 큰데, 위의 pairplot에서 거의 직선으로 보이는 변수들로 얼마나 상관이 있는지 판단 가능하다. 더 정확한 판단을 위하여 VIF 검정을 진행해본다.
VIF Factor
features
0
463.486981
Total_land_real_area
1
462.807904
Total_land_auction_area
3
449.634387
Total_building_auction_area
2
415.396782
Total_building_area
4
305.326164
Total_appraisal_price
5
301.975570
Minimum_sales_price
7
32.703886
auction_end_weekday
6
32.661878
auction_start_weekday
8
1.330857
auction_day_length
10
1.294741
Use
9
1.184722
Bid
...ㅎㅎㅎ 당연하지만 10이 훨씬 넘는다. 참고로 경매가 시작되는 요일과 끝나는 요일은 같다. 그러므로 총 경매 기간 변수를 추가하고 끝나는 요일 변수를 제거하겠다.
Output :
잘 나온 것 같다.
VIF Factor
features
1
6.563827
Total_building_area
0
6.314295
Total_land_real_area
2
3.861034
Total_appraisal_price
3
2.541604
auction_start_weekday
6
1.287799
Use
4
1.250202
auction_day_length
5
1.168293
Bid
VIF도 확 줄어듦을 알 수 있다. 모두 10 미만이므로 다중공선성이 해결되었다고 볼 수 있다.
이를 바탕으로 분석을 진행하겠다.
by sklearn
Output :
Output :
Output :
아주 잘 추정되었고 모델링도 아주 잘된 것으로 보인다. :3
by calculation of matrix
Output :
Output :
비교
Output :
Output :
행렬로 계산한 betahat는 sklearn을 통한 계산 결과와 일치하며, MSE도 크게 다르지 않음을 알 수 있다.
Last updated