- 2021.12.19 - [Python] - 부동산 엑셀(.xlsx)데이터 (주소→좌표)변환 방법 글을 참고하면 좋습니다.
- K-Nearest Neighbors를 이용한 부동산 데이터 분석
- 부동산 실거래가 일어난 위치(위도,경도)에 따른 1㎡당 가격을 예측합니다.
부동산 엑셀(.xlsx)데이터 (주소→좌표)변환 방법
부동산 데이터는 국토교통부의 '실거래가 공개시스템' 을 통해 구할 수 있습니다. http://rtdown.molit.go.kr/ 주소→좌표 변환방법은 카카오의 rest_api 를 이용하여 사용합니다. https://developers.kakao.com/d..
prejudice.tistory.com
모듈설정
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.neighbors import KNeighborsRegressor
from sklearn.model_selection import train_test_split
메인 코드1. 데이터 입력 및 변환
input_df = pd.read_excel("아파트(테스트).xlsx", usecols=[3,4,6,7]) #필요한 데이터 slicing
input_df = input_df.dropna()
print(input_df)
latlng_df = input_df.iloc[:, 2:4]
d = input_df['거래금액(만원)'].str.strip(',').str.replace(',', '') #str문자열 변환하여 입력
d = pd.to_numeric(d) #숫자로 변환
latlng_df_result = d / input_df['전용면적(㎡)'] #1㎡당 거래금액
# print(latlng_df_result)
- 데이터를 사용하기 위해 str 데이터를 float로 변환하고, 전용면적당 거래가격을 가격을 구합니다.
메인 코드2. KNN 알고리즘을 이용한 모듈학습
#학습용(training_data, training_result)과 테스트용(test_data, test_result) 분류
training_data, test_data, training_result, test_result = train_test_split(latlng_df, latlng_df_result, test_size=0.2) #20%를 테스트세트로 사용
regression = KNeighborsRegressor(weights="distance") #kNN Regression을 이용한 평당 가격 추측모델
regression.fit(training_data, training_result)
print(regression.score(test_data, test_result)) #test데이터를 이용한 모델 정확도 확인
#교차검증(cross validation)을 정확도를 더욱 정확히 측정할 수 있을것이다.
#그래프로 출력하여 시각화
plt.scatter(training_data['lng'], training_data['lat'], color='blue')
plt.scatter(test_data['lng'], test_data['lat'], color='green')
plt.show()
입력데이터
- 2021.12.19 - [Python] - 부동산 엑셀(.xlsx)데이터 (주소→좌표)변환 방법 글의 아파트(테스트).xlsx 파일사용
정확도측정 및 Matplot을 이용한 그래프(Graph) 출력
- 몇번 수동실행해본 결과 약 60% ~ 70%의 정확도를 보였다.

'Python' 카테고리의 다른 글
| 부동산 엑셀(.xlsx)데이터 (주소→좌표)변환 방법 (0) | 2021.12.19 |
|---|---|
| 데이터 크롤링(crawling) 후 엑셀(.xlsx)파일로 저장 (0) | 2021.12.16 |