선형 회귀분석 구현(Sklearn,Numpy) (1)
요구사항
(1) 전처리와 시각화”의 데이터로 선형회귀에 필요한 EDA 및 전처리 및 인코딩
범주형 변수 인코딩 3개 이상, EDA 3개 이상
1주차 과제 적극적으로 활용 가능 및 자신이 만든 Feature 역시 사용 가능
(2) 그 데이터를 다양한 방식으로 선형회귀분석 하기
(3) 데이터의 행렬을 통해 구하여 위의 값과 비교
Sklearn 없이 행렬 연산으로만 구하시오
우수과제 선정이유
회귀분석을 진행하는데 필요한 모든 고려사항들을 고려하셨다는 점에서 선정하게되었습니다.
각각의 Plot을 통해 이상치들을 확인하고 제거하신 점, 왼쪽으로 치우친 분포를 고려하여 변환작업을 수행한 점, 연속형변수에 대해 스케일을 통해 정규화를 시켜줬다는 점에서 회귀분석을 정확히 이해하시고 과제를 진행하였다는 점에서 완벽한 과제를 해주신 것 같습니다!
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