본문 바로가기

Python

부동산 엑셀(.xlsx)데이터2. KNN Regression을 이용한 데이터분석

 

부동산 엑셀(.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()
입력데이터
정확도측정 및 Matplot을 이용한 그래프(Graph) 출력
  • 몇번 수동실행해본 결과 약 60% ~ 70%의 정확도를 보였다.