소상공인 폐업에 따른 총 사회적 비용

소상공인 폐업에 따른 총 사회적 비용에 대한 리포트가 있어 내용을 정리해 보았습니다.

2015년 기준으로 1개 소상공인 폐업에 따른 총 사회적 비용 산출 : 64,493,577원

식당이 1개 문을 닫으면 그로 인한 사회적 비용이 대략 6400만원이 드는 셈이네요. 자세한 비용 산정 기준은 아래와 같습니다.

모든 폐업이 동일한 비용을 발생하는 것이 아니라 폐업의 케이스 별로 비용이 달라집니다.

경로1: 폐업 소상공인이 모든 자기 및 국가가 지불하는 사회적 비용을 발생하는 후 재창업 또는 취업하는 경우

경로2: 폐업 소상공인이 모든 자기비용을 발생시키고, 국가가 지불하는 일부의 사회적비용을 발생시킨 후 재창업 또는 취업하는 경우

경로 3: 폐업 소상공인이 모든 자기, 국가가 지불하는 사회적비용을 발생시킨 후 재기하지 못하여 사회비용까지 발생시키는 경우

위에 산정된 6000만원은 경로3으로 최악의 방향으로 폐업을 하는 케이스에 대한 비용입니다. 폐업 케이스 별로 최소 1100만원에서 6400만원의 사회적 비용이 발생하는 것으로 추정됩니다.

리포트가 작성된 2015년 기준으로 46만개의 소상공인 사업체가 폐업하는 것으로 추정됩니다. 앞서 산출한 케이스별 사회적 비용을 곱하여 소상공인 폐업에 따른 총 사업적 비용으로 1년간 최소 5.6조원 ~ 최대 30.3조원의 사회적 비용이 발생합니다.

생각보다 무시무시한 비용이네요 -_-!

아 그리고 리포트 중간에 폐업 사회적 비용과 별개로 소상공인 폐업률에 대해서 두 개의 속성으로만 실험했는데 R2가 .99가 나왔다고 해서 흥미로워서 추가로 적어봅니다 +_+

연도별 소상공인 폐업률과, 경기동행지수, 주요 소상공인업체수 간 회귀분석을 실시한 결과 R2가 .99이며, p=0.07 수준에서 통계적으로 유의한 모형을 산출했다고 합니다.

평균 창업 비용과 창업 준비 기간

이전 포스팅에서는 자영업자의 평균 폐업률을 확인해보았습니다. 이어서 이번 포스팅에서 왜 이렇게 한국의 자영업자의 폐업률이 높은지 확인해보겠습니다. 특히 자영업자의 평균 창업 비용과 창업 준비 기간에 대하서 알아보겠습니다.

신한은행에서 ‘2018년 보통사람 금융생활 보고서’에 따르면 2018년도의 평균 창업준비 평균 비용은 8,148만원입니다. 그리고 창업자중 절반이 높은 창업준비 비용을 마련하기 위해 대출을 사용하고 있다고 합니다.

높은 창업 비용에 반해 평균 창업 준비 기간은 3개월 미만이 30% (1년 미만이 80%)로 대부분이 제대로 준비되지 못한 상황에서 창업을 하고 있습니다. 그 결과는 첫 해 폐업률 40%, 5년 내 폐업률 80%라는 아픈 결과로 이어지고 있습니다.

서울연구원에서 발간한 시 외식산업의 실태분석과 시사점 리포트에서 나오는 서울에서 5인 미만의 소규모 음식점을 운영하고 있는 외식업종 사업주 70인을 대상으로 한 설문조사에서 나온 평균 창업 기간은 더 충격적입니다.

서울시 외식업종 평균 창업기간

35%의 서울시 외식업종 창업자들이 1개월 이내의 창업기간을 가졌습니다. 3개월 미만의 준비기간을 다 합치면 전체 65%나 됩니다.

자영업 창업에는 상당한 초기 투자비용이 지출되며 자영업자들은 이러한 비용 중 많은 부분을 대출로 감당하는 것으로 나타납니다. 그러므로 자영업체들이 창업 후 1~2년도 유지하지 못한 채 짧은 기간 안에 폐업을 하는 패턴이 계속된다면 이는 결국 고용의 불안정을 야기하고 가계부채나 기업부채의 증가로 이어져 사회적인 문제를 초래할 수 있습니다.

그렇다면 이렇게 많은 비용을 들이면서 이렇게 준비 기간이 부족한 상태로 창업하게 되는 이유는 무엇일까요? 시 외식산업의 실태분석과 시사점에서 보면 외식업체 현장 인터뷰 및 설문조사 결과, 외식사업 자체에 관심을 가지고 창업한 업체보다는 생개유지를 위한 수단으로 시작한 업체가 많다고 합니다. 창업의 주된 동기는 장기적, 안정적 직업에 대한 필요성으로 직장을 갑자기 그만두게 되었거나, 기존 사업이 잘 운영되지 않았거나 등의 이유가 대부분이었습니다. 따라서 오랜 준비와 경험 없이 창업을 한 경우가 많았고, 그로 인한 어려움을 겪었던 업체가 다수였다고 합니다.

요약을 하면 창업을 해야 하는 상황에서 상권 분석과 입지, 메뉴 선정 등에 대한 준비 없이 급하게 창업을 합니다. 그 후 높은 임대료, 주변 상가와의 경쟁, 홍보 부족, 식자재료 비용의 증가, 인건비 증가 등으로 경영상의 어려움을 겪으면서 빠른 폐업으로 이어지는 하나의 흐름을 확인 할 수 있었습니다.

이런 상황에서 어떻게 창업을 준비해야 조금이라도 생존률을 높일 수 있을까요? 이 질문에 대답하기 위해 추후 포스팅을 이어가 보겠습니다.

참고 링크

https://www.si.re.kr/node/55948

https://www.mk.co.kr/news/business/view/2017/05/339046/

2019년 4월 1일 서비스 개편 안내 – 부동산 빅데이터 대시보드 추가

안녕하세요. 로보리포트입니다.

2019년 4월 1일 서비스 개편 안내 드립니다.

이번 서비스 개편은 부동산 가치분석 연구실이 추가되고 유동인구 조건검색 및 경매 데이터 세부 검색 기능이 추가되었습니다.

그동안 전해주셨던 사용하면서 불편하다고 이야기 주셨던 부분을 수정했습니다.

부동산 가치분석 연구실 추가

부동산 가치에 영향을 끼치는 여러 가지 지표들이 궁금하신가요? 금리가 오르면 부동산 가격은 과연 올라갈까요? 내려갈까요?

부동산의 가치에 영향을 끼치는 여러 요소들과 부동산 관련 지표들을 한 눈에 볼 수 있는 대시보드와 전국의 부동산 관련 지표들을 한눈에 확인할 수 있는 전국현황 대시보드가 추가되었습니다.

부동산 가치분석 연구실 사용 가이드 바로가기

지하철(유동인구) 조건 검색 추가

평균 승차 인원, 하차인원, 기간내 이용승객변동률(승차), 이용승객변동률(하차) 의 조건으로 지하철 조건 검색이 추가되었습니다.

유동인구가 증가하는 지역을 간단히 검색 가능합니다.  지도에서 역 아이콘과 함께 평균승차수, 평균하차수, 승차변동률, 하차변동률을 확인할 수 있어요.

UX 개선사항

– 안드로이드에서 뒤로 가기 버튼 클릭시 메인 화면으로 돌아가는 디자인 개선

– 태블릿에서 지도가 짤리는 오류 수정

– 조건 검색후 지도에서 찾아들어가는 불편함 개선 (지도 오른편에 조건 검색된 단지 리스트 제공)

업데이트 예고에서 안내드렸던 기능에서 빠졌던 매물 광고하기 기능은 4월 내 업데이트 하도록 하겠습니다 ^^;

그리고 베타 기능이긴 하지만 부동산 관련 속성들로 부동산 경기 및 개별 매물 가격 자동 산정을 할 수 있는평가모델 서비스도 준비가 되고 있습니다.

4월 말의 업데이트를 기대해주세요 : )

부동산 실거래가 알아보기

부동산 실거래가 정보 서비스

전문적인 검색조건으로 찾아보세요.

부동산 정보를 찾고 계시나요? 아파트, 오피스텔, 연립다세대, 경매까지 원하는 건물을 한번에 다 찾을 수 있습니다. 가격 및 전용면적, 건축년도, 전세가율, 월세수익률, 건폐율, 용적률 등 다양한 조건을 사용해서 한번에 검색해보세요.

슬라이드 바와 버튼을 이용해서 원하는 값의 범위를 설정할 수 있어요. 실시간으로 지도에 검색 결과가 반영되어서 보입니다.

단지 별로 적정 시세와 함께 자세한 정보를 제공합니다

로보리포트에서 기계학습 (신경망 알고리즘, MLP)을 사용하여 건물의 현재 적정 시세를 분석하여 알려드립니다. 다양한 속성들과 과거 10년 동안의 실거래가를 사용하여 학습하고 있습니다.

단지 별로 평형, 층수별로 매매가, 전세가, 전세가율, 월세가, 월세수익률 그래프와 최근 실거래 내역을 확인 할 수 있습니다. 단지에서 배정 가능한 학교와 도보 거리, 횡단보도를 건너야 하는지 관련하여 세부정인 정보를 제공하고 있습니다.  근처 교통편과 용적률, 건출물 대장, 주차 공간 정보 역시 제공하고 있습니다.


지도에서 매물 위치별로 클러스터링되어 평균치 정보를 제공합니다

지역 평균 실거래가, 실거래가 변동률, 평당가격, 제곱미터당 가격, 전세가, 전세가율, 월세, 건축년도, 용적률, 건폐율 등의 정보를 지도위에서 위치별로 평균치 데이터를 확인할 수 있습니다.


구나 동단위의 평균 정보만 확인할 수 있는 것이 아니라 가까운 위치별로 자동으로 클러스터링되어 평균치가 나오는 기능이므로 가까운 위치별 평균 데이터를 보고 싶을때 유용한 기능입니다. 아파트 아이콘 위의 숫자는 자동으로 클러스터링 된 단지 개수이고 아래 노란 원안의 숫자는 선택한 지표의 평균 수치입니다.

로보리포트 서비스에는 부동산 조건 검색 외에도 부동산 빅데이터 대시보드 같은 다양한 기능들이 준비되어 있습니다 : )

실거래가 정보 사용 가이드

로보리포트 웹 사이트 – 필터 선택

로보리포트에서는 아파트, 연립다세대, 오피스텔 의 실거래가 정보(국토부 제공)와 경매 데이터를 제공하고 있습니다. PC 기준으로 왼쪽에 있는 필터를 클릭하면 아래와 같이 세부 검색 조건을 설정할 수 있습니다.

실거래가 조건 검색하기

로보리포트 서비스 – 실거래가 필터

도메인을 아파트, 연립다세대, 오피스텔 에서 선택하면 서브 속성에서 실거래가와 건물 특성에 해당되는 세부 검색 속성을 설정할 수 있습니다. 실거래가 속성에서는 평가, 거래기간, 전용면적, 매매가, 전세가, 월세가, 월세 보증금, 전세가율, 매매-전세가 차이 금액 등의 실거래가 관련 속성들을 선택할 수 있습니다.

검색 설정 후 화면

거래기간 필터는 실거래 조건 검색을 하기 위한 거래 기간을 의미합니다. 2019년 동안 실거래가 있었던 단지만 검색을 하려면 거래기간 슬라이더를 움직여서 2019년 1월~ 부터로 기간을 선택합니다. 검색 조건을 변경하면 지도 위에 파란색 #으로 필터 조건을 표시됩니다. 그리고 지도에서 슬라이더를 변경하면 실시간으로 해당 조건에 표시되는 단지 개수가 흰 색 원으로 표시되고 아래는 그 조건에서의 평균 실거래가 표시됩니다.

아파트 단지 세부 정보 보기

화면에서 더블클릭을 하거나 마우스 휠을 돌려서 해당 지역에 들어가면 조건에 해당되는 단지들을 확인 할 수 있습니다. 단지 아이콘을 클릭하면 평형, 층수별로 매매가, 전세가, 전세가율, 월세가, 월세수익률 그래프와 최근 실거래 내역을 확인 할 수 있습니다.

아파트 세부정보 – 월별 거래 누적건수 및 학군, 가까운 지하철역

월별로 누적 거래가 가장 많이 일어나는 달과 작년 기준으로 평균적으로 거래 금액이 높았던 달을 알려주는 매매시기 그래프도 제공하고 있어요. 단지에서 배정 가능한 학교에 대한 정보도 도보로 걸어서 얼마나 걸리는지, 횡단보도를 건너야 하는지 관련하여 세부정인 정보를 제공하고 있습니다. (횡단보도)라고 표시 되어있으면 횡단보도를 건너야 한다는 의미입니다 : ) 가까운 지하철 역도 역시 거리와 함께 도보로 걸리는 시간을 표시해주고 있어요.

아파트 세부정보 – 용적률, 건폐율, 주차공간 등

마지막으로 해당 단지에서 진행중인 경매가 있으면 진행중인 경매에 물건이 표시가 되요. 건축물 대장에서는 해당 단지의 용적률, 건폐율, 연면적등의 건축물 대장 정보를 확인할 수 있어요. 같은 지역(시도, 법정동) 내의 평균치도 같이 표시가 됩니다.

세대별 주차공간 및 옥내/옥외 등의 주차 공간 역시 나오고 있습니다. 거주민 평가 역시 작성이 가능합니다.

위치별로 클러스터링 되어 평균 수치 보기

위치별로 클러스터링된 실거래가 정보

필터에서 조건 검색을 해서 본인이 원하는 아파트, 오피스텔, 연립다세대를 검색하는 것도 가능하고 왼쪽 아래에 있는 지역 통계 아이콘을 누르면 가까운 위치별로 자동 클러스터링된 정보들을 지도에서 확인할 수 있습니다. 지역 평균 실거래가, 실거래가 변동률, 평당가격, 제곱미터당 가격, 전세가, 전세가율, 월세, 건축년도, 용적률, 건폐율 등의 정보를 확인할 수 있습니다.

지역 실거래가 통계 정보

구나 동단위의 평균 정보만 확인할 수 있는 것이 아니라 가까운 위치별로 자동으로 클러스터링되어 평균치가 나오는 기능이므로 가까운 위치별 평균 데이터를 보고 싶을때 유용한 기능입니다. 여기서도 역시 아파트 아이콘 위의 숫자는 자동으로 클러스터링 된 단지 개수이고 아래 노란 원안의 숫자는 선택한 지표의 평균 수치입니다.

이 외에도 다양한 기능들이 가득 들어있습니다. 부동산에 관심이 있으신 분이라면 누구나 로보리포트 사이트를 찾아주세요 : )

부동산 빅데이터 대시보드 알아보기

부동산 빅데이터 대시보드

부동산에 영향을 끼치는 속성들을 대시보드로 모아서 볼수 있어요

금리, 대출, 통화량, 소득, 세금 등 다양한 경제지표를
보기 쉽게 정리해서 분석해드립니다.

웹사이트 바로가기

연구실 아이콘

로보리포트에서는 부동산 가격에 영향을 끼치는 부동산 빅데이터 대시보드를 제공하고 있습니다. 로보리포트 웹사이트에서 오른쪽 위에 있는 연구실 아이콘을 누르면 대시보드로 들어올 수 있어요.

부동산 빅데이터 대시보드 – 세부 속성 선택 화면

빅데이터 대시보드에는 경제지표, 부동산 공급, 금리, 대출 등의 큰 분류로 그래프를 제공하고 있습니다. 탭을 선택하면 분류내의 세부 속성을 선택할 수 있습니다. 현재 공급 탭에는 건설기성액, 인허가, 미분양 데이터가 있습니다. 데이터는 향후 계속 업데이트될 예정입니다 : )

부동산 빅데이터 대시보드 – 부동산 지수 선택

세부 속성을 선택하면 세부 속성 그래프와 같이 보고 싶은 부동산 지수를 선택할 수 있습니다. 현재 한국감정원의 주택가격지수의 매매지수, 전세지수, 월세지수, 지가지수를 사용할 수 있습니다. (주택가격지수 설명 바로가기) 세부 속성 및 부동산 지수는 동시에 여러 개를 선택할 수 있습니다.

부동산 빅데이터 대시보드 – 지역 선택

속성에 따라 전국 단위 또는 지역 단위별로 세부 설정을 할 수 있습니다. 지역 별로 데이터가 있을 경우 세부 설정에서 지역별로 추가 설정을 할 수 있습니다.

부동산 빅데이터 대시보드 – 그래프 보기

추가 설정이 완료되고 분석 시작하기 버튼을 누르면 선택했던 속성들을 같이 그래프로 확인할 수 있습니다.

전국현황 – 과학고 진학 정보

대시보드에서 왼쪽 탭에서 전국현황 탭을 누르면 속성별로 상위 랭크된 데이터를 확인 할 수 있어요. 인구, 학군, 거래 등의 대 분류가 있고 랭킹 선택에서 보고 싶은 랭킹 데이터를 확인 할 수 있습니다. 서울시에서 과학고 진학을 가장 많이 진학하는 고등학교가 궁금하다면 랭킹 선택에서 – 학교 진학 정보, 지역선택 – 서울시, 학교 선택 – 과학고를 선택하면 과학고 진학율이 가장 높은 학교들을 확인 할 수 있습니다.

지역 빅데이터 알아보기

로보리포트 서비스에서 지역이름으로 되어있는 아이콘을 누르면 지역 부동산거래, 인구, 통계, 경매 등의 지역 빅데이터를 확인 할 수 있어요. (은평구 아이콘을 짙게 하거나 손 아이콘이나 화살표 등으로 강조 부탁드립니다)

지역별 인구 구성

인구 세부 탭으로 들어가면 지역별 인구 구성 및 지역별 전입 TOP5, 지역별 전출 지역 TOP 5, 인구 추세, 전입 추세 등을 확인할 수 있어요. 기간 슬라이드를 옮기면 해당 기간의 데이터만 확인 할 수 있어요.

인구 데이터는 2011년 데이터부터 있어요. 통계청에서 분기마다 올려주는 데이터를 사용하고 있습니다.

지역정보_미분양

검색 필터에서 통계를 누를경우 조사 기간에 따라 지역별 신규 분양과 미분양, 공사후 미분양 정보를 확인할 수 있어요. ( 왼쪽 아래의 지역 정보 아이콘 강조 부탁드립니다)

지하철 평균 승차수 정보

지하철 평균승차수, 평균하차수, 승차변동률, 하차변동률 정보를 지도에서 바로 확인할 수 있습니다. 지하철 조건 검색으로 유동 인구가 증가하는 도시 등의 세부 검색을 할 수 있습니다.

지역별 학군 정보

지도에서 학교 아이콘을 클릭하면 학구군이 색으로 표시가 됩니다. 특목고 진학률 등의 진학정보, 학생수, 전입/전출 비율, 교육비, 방과 후 학교 등 학교 세부 정보를 확인 할 수 있습니다.

자주묻는 질문

Q. 데이터는 어디서 가져오나요?

인구는 통계청, 건축물 거래 현황/신규분양/미분양 데이터는 한국 감정원, 학교 정보는 학교알리미 등 데이터 종류에 따라 다양합니다.

Q. 데이터 업데이트 주기는 어떻게 되나요?

데이터의 출처가 다양한 만큼 데이터 업데이트 주기는 그 데이터를 제공해주는 기관의 정책에 따라갑니다. 인구 정보는 분기별로 업데이트 되며 학교 정보와 미분양 정보도 매 달마다 업데이트 됩니다. 지역 세부 정보에서 출처 옆의 ? 아이콘을 누르면 데이터 출처 및 업데이트 주기 등의 세부사항을 확인 할 수 있습니다. 혹시 데이터가 너무 오래되었다고 생각되면 support@connectdot.co.kr 로 업데이트 요청 부탁드립니다.

정말로 이번 정부의 폐업률이 역대 최악일까?


최근 자영업 폐업률이 거의 90%로 역대 최악이다 라는 뉴스를 자주 접할 수 있습니다. 자영업 폐업률이 90%라는 단어를 들으면 많은 사람들이 10개의 상점에서 9개가 망했다고 생각 하게 됩니다. 하지만 언론에서 이야기하는 폐업률은 실제 폐업률이 아닌 신규 대비 폐업률에 가깝습니다. 새로 10개의 상점이 문을 열고 같은 해 8개의 상점이 문을 닫으면 신규 대비 폐업률이 80%이 됩니다. 일부 언론에서 이야기하는 폐업률 87%는 그렇게 만들어졌습니다.

KBS뉴스 에서 개인 사업자의 역대 신규 대비 폐업 비율을 분석해 놓은 그래프를 보면 2017년 신규 대비 폐업 비율은 72%으로 오히려 지난 10년 동안의 평균 79%보다 적은 것을 확인 할 수 있습니다. 심지어 2012년도에서의 신규대비 폐업률 87%보다 15%나 낮은 수치입니다.

그렇다면 실제 폐업률은 어떻게 계산하는 것일까요? 한 해 얼마나 많은 자영업자가 폐업하는지 알고 싶다면, 해당 연도의 폐업자 수를 ‘전년도의 개인사업자 총계’와 비교하면 됩니다. 이 그래프 역시 KBS 뉴스에서 가져왔습니다. 이렇게 계산된 2017년도 폐업률은 13.8로 오히려 작년보다는 0.4 프로 낮고 2008년의 17.5%보다는 3.7%나 낮습니다. 2008년 이후로 오히려 폐업률이 점차 낮아지고 있는 추세를 보이는 것을 확인할 수 있습니다.


위 그래프의 폐업률은 자영업자 전체 폐업률의 추이를 확인할 수 있다는 장점이 있습니다. 그렇지만 개별적인 자영업자의 폐업률 또는 생존율은 어떻게 계산할 수 있을까요. 이런 목적에 어울리는 또다른 지표가 있습니다. 자영업자 개별 ‘기업 생존율’입니다. 생존율이란 신생기업(1년~5년)중 기준 연도까지 생존해 있는 기업의 비율을 의미합니다. 창업후 살아남는 기업이 얼마나 되는지 확인할 수 있습니다.

기업 생멸 통계 데이터로 확인하는 자영업자 생존율

통계청에서는 기업생멸통계 데이터를 1년마다 작성하여 배표합니다. (자료 링크) 가장 최근 데이터인 2017년 기준 기업생멸통계 데이터를 확인해보겠습니다. 참고로 KOSIS 국가 통계 포털에서는 데이터를 직접 엑셀 이나 기타 파일로 다운로드 받을 수 있습니다. (자료실 링크)

2017년도 기준 전체 개인사업자(자영업자)자의 수는 542만명입니다. 2017년도에 91만개의 신생기업이 생기고 62만개의 신생기업이 소멸했습니다. 그 중 90%이상이 개인 사업자입니다.

사업분류별 신생기업 생존률

사업분류별 신생기업 생존률입니다. 자영업자가 많은 숙박 및 음식점업의 경우 1년 생존율이 61%밖에 되지 않습니다 ㅠㅠ 10개의 음식점중에 4개 음식점이 1년 안에 망한다는 것인데 식당을 내기 위한 창업 비용을 생각하면 안타까운 현실입니다. 그러고보니 백종원의 골목식당 프로그램에서 백종원이 왠만하면 창업하지 마라고 하는게 이해가 되네요. 정말로 준비를 잘해서 상권도 분석을 하고 메뉴도 구성을 하고 음식맛도 좋아야 5년 생존율의 18%에 들어갈 수 있는 것이겠죠.

결론을 내리면 실질적인 폐업률은 일부 언론에서 강조하는 것처럼 이번 정권에서 역대 최악이 아니다. 오히려 평균 이상의 수치를 보여주고 있다. 그렇지만 대부분의 자영업자들이 있는 숙박 및 음식점업의 생존율은 너무나 낮습니다. 정말 창업을 하겠다고 결심하면 제대로된 분석 서비스가 필요합니다.

로보리포트에서는 골목식당을 위한 상권분석 서비스를 준비하고 있습니다. 로보리포트의 상권분석 서비스를 받고 싶으신 분은 로보리포트 사이트(https://land.roboreport.co.kr)에서 회원 가입시 서비스 업데이트 알람을 체크해 주시거나 아니면 아래 메일링 리스트 가입 폼으로 이메일 구독을 신청해주세요!

상권분석 서비스 이메일 구독 바로가기

글에서 참고했던 링크들

http://kostat.go.kr/portal/korea/kor_nw/1/9/6/index.board

http://news.kbs.co.kr/news/view.do?ncd=4029966&ref=A

doc2vec 훈련 파라미터 설명

Word2vec이 단어를 vector로 변경하는 word embedding 방식이라면 doc2vec은 문서를 vector로 변경하는 document embedding 방식입니다. Word2vec 방식을 문서에 대해서 확장하였기 때문에 기존의 word2vec의 장점을 그대로 가지며 훈련 방식도 word2vec의 cbow와 skip-gram과 유사한 distributed memory(dm)과 distributed bag of words(dbow)을 사용합니다.

주변의 단어들로 가운데 있는 단어를 유추하는 CBOW, 가운데 있는 단어로 주변 단어들을 유추하는 skip-gram

doc2vec 알고리즘 소개

논문 연결

Doc2vec에서는 paragraph id(document id)를 하나의 단어(paragraph token)처럼 사용해서 문서를 훈련 데이터로 사용합니다. paragraph id, paragraph vector, paragraph token 등 다양한 이름으로 불리지만 의미는 동일합니다.  

PV-DM 방식은 이런 paragraph vector 와 앞의 단어들을 사용해서 다음에 나오는 단어를 유추합니다.  window라는 정해진 사이즈의 단어들을 문맥정보(context)로 사용하며 맨 앞에서부터 한 단어씩 옆으로 이동하면서 훈련 데이터로 사용합니다.

같은 패러그래프에서 생성된 훈련 데이터에서는 하나의 패러그래프 벡터로 공유되기 때문에 패러그래프 벡터는 훈련시 문서의 주제를 잡아주는 memory 같은 역할을 하고 있습니다. 그래서 이 알고리즘의 이름 자체가 분산화된 메모리를 가진 패러그래프 벡터(paragraph vector with distributed memory) 로 지어졌습니다.

PV-DBOW 방식은 위 방식에서 나오는 context 단어들을 사용하지 않고 paragraph id 만 가지고 이 패러그래프에서 나오는 단어를 랜덤하게 예측하는 방식을 사용합니다.  input은 패러그래프 벡터이고 output은 패러그래프에서 random하게 뽑인 단어들입니다.

 

doc2vec 훈련시 주요 파라미터

class gensim.models.doc2vec.Doc2Vec(documents=None,

 corpus_file=Nonedm_mean=Nonedm=1dbow_words=0,

 dm_concat=0dm_tag_count=1docvecs=None

docvecs_mapfile=Nonecomment=None,

 trim_rule=Nonecallbacks=()**kwargs)

document는 doc2vec 모델을 훈련시키기 위한 말뭉치(corpus) 입니다. taggeddocument 리스트를 생성해서 입력하면 됩니다. taggedDocument는 문서 별로 문서 tag, 문서 안의 단어들의 리스트로 구성됩니다.

dm은 doc2vec 훈련 알고리즘입니다. dm=1으로 설정하면 distributed memory(PV-DM)이 사용되고 그 외는 distributed bag of words( PV-DBOW) 알고리즘이 사용됩니다.  Distributed Representations of Sentences and Documents 페이퍼에서는 PV-DM 방식만 사용해도 대부분의 작업에 좋은 결과를 보였으나 PV-DBOW와 함께 사용하는 것을 추천한다고 합니다.

 


vector_size 는 임베딩 벡터의 크기입니다. 벡터 사이즈가 클수록 생성된 모델의 성능이 정교해지나 훈련 시간 및 메모리의 크기가 사이즈가 커진다는 단점이 있습니다. Glove 논문에 따르면 vector size가 커질수록 모델 성능이 좋아지는 것을 확인할 수 있습니다. vector 사이즈가 100까지 증가할 경우 가장 극적인 성능 향상을 보이고 그 이상의 사이즈일 경우 정확도 그래프가 완만하게 증가하는 것을 확인 할 수 있습니다.


alpha 는 learning rate 입니다.

window 는 훈련시 앞 뒤로 고려하는 단어의 개수입니다.  “a little, (cat), sit, on”의 windows 는 2 입니다.  window 사이즈가 커지면 훈련 결과로 나오는 word vectors의 성능이 높아지지만 대신 훈련 시간이 오래 걸린다는 단점이 있습니다. 보통 5에서 10 사이의 값이면 적당합니다.

min count 는 데이터에서 등장하는 단어의 최소빈도수입니다.  Word2Vec/Doc2vec 은 자주 등장하지 않은 단어에 대해서는 제대로 학습이 이뤄지지 않습니다. 또한 min_count 가 작으면 모델에 지나치게 많은 단어가 포함되어 모델의 크기가매우 커집니다.   10에서 100 사이의 값이면 적당할 것 같습니다.

negative 는 negative samples 의 개수입니다. 이 역시 기본값 쓰셔도 됩니다. 클수록 학습속도가 느려집니다. 하지만 지나치게 작으면 학습이 제대로 이뤄지지 않습니다.

그리고….

doc2vec 알고리즘은 일반적인 document embedding 방식으로 훌륭한 성능을 보여줍니다. 하지만 doc2vec 인코딩을 사용하기 위해서는 다량의 말뭉치를 준비하고 형태소 분석기를 사용하여 띄어쓰기를 하고 gensim 등 doc2vec 툴으로 훈련 시키는 등의 다량의 준비 작업이 필요합니다.

로보리포트 기계학습 서비스에서는 이런 준비 과정 없이 간단하게 클릭만으로 기계학습에 사용할 문서를 doc2vec 인코딩으로 변환하거나, 실험에 사용되는 단어 속성들을 word2vec 인코딩으로 변환하도록 준비 하고 있습니다.

저희 서비스에 관심있으신 분들은 로보리포트 사이트에 회원가입하고
(선택) 서비스 업데이트 정보 알람 수신 동의를 클릭하시면 해당 서비스가 업데이트 될 경우 이메일 알람을 받아볼 수 있습니다 : )

그리고 위키 문서 및 경제 뉴스에서 에서 훈련된 doc2vec 모델은 roboreport 오프소스로 이미 등록되어 있으니 이곳도 참조 부탁드립니다.

참고 문서들

https://radimrehurek.com/gensim/models/doc2vec.html

https://lovit.github.io/nlp/representation/2018/03/26/word_doc_embedding/

https://ronxin.github.io/wevi/

https://programmers.co.kr/learn/courses/21/lessons/1698

scikit-learn을 사용하여 부동산 가격 예측하기 – 4) linear regression 사용법

scikit-learn을 사용하여 부동산 가격 예측하기 실험 시리즈 네번째 포스팅입니다.이제 본격적인 실험에 들어갑니다. 

기계학습을 할 경우 실험 과제의 특성(분류화, 클러스터링 등)와 데이터의 속성 및 복잡도, 사이즈에 따라 적합한 학습방법을 선택해야 합니다. 이 실험에서는 데이터 개수와 속성 개수가 적으면서 실제 예측값이 나와야 하므로 싸이킷런에서 제공하는 가장 간단한 알고리즘인 선형 회귀(linear regression) 알고리즘을 사용해 보겠습니다. 나중에 개별 매물 평가 실험에서는 부동산 실거래가 데이터를 사용하여 신경망을 사용한 더 복잡한 기계학습을 사용해보려고 합니다.

이전 포스팅 내용 요약

이전 포스팅에서 속성 소개, 데이터 분석에 대해서 완료했습니다. 그 중 데이터를 읽어와서 pandas dataframe으로 저장한 이후에 이어서 실험을 하겠습니다.

dropna 함수로 속성에 빈 값이 있는 데이터는 실험에서 제거하였습니다.

실험 데이터는 2017년도 이전의 데이터는 훈련 데이터 셋으로, 2017년 이상의 데이터는 테스터 데이터셋으로 구성을 했습니다. 일반적인 fold validation으로 실험데이터를 구성하지 않은 이유는 예측 실험에서는 과거 데이터로 최근의 데이터를 예측하는 것이 중요하다고 생각하였기 때문입니다. 나중에 소개드릴 로보리포트 시계열 예측 서비스에서는 다양한 방식으로 실험 데이터를 구성하도록 지원하고 있습니다.

X_train.shape : (6356, 16) 
X_test.shape : (196, 16)

속성 소개하기

전체 16개의 속성이며 훈련 셋 크기는 6356개, 테스트 셋 크기는 196개 입니다. 참고로 실험 속성은 지역코드, 년도, 월, 빌딩 타입(아파트, 빌라 등), 매매가격 지수, 금리, 환율, 미분양 데이터 등입니다. 자세한 내용은 아래 표를 참조해 주세요.
그리고 target 속성은 다음달 주택 매매가격지수(tradeprice_sido_n1)를 설정했습니다.

region_cd 지역코드(시도)
year 연도
month
building_type 부동산타입
tradeprice_sido 매매가격지수(시도)
construction_realized_amount 건설기성액(백만원)
cd
cd(91일물)

spirit_deposit_rate

정기예금금리
exchange_rate 환율
composite_stock_price_index 종합주가지수
economy_growth 경제성장률
exchequer_bond_three 채3년
household_loan_all 가계대출액(전국)
mortgage_all 주택대출액(전국)
numberofnosells 미분양 가구수(시도)
unsalenum_c 공사완료후 미분양(민간,시도)

실험을 하기 위해 우선 Linear Regression 패키지를 import 합니다. 선형 회귀 알고리즘(linear regression)은 주어진 데이터 집합에 대해 종속 변수 Y 와 설명 변수 X와의 선형 관계를 모델링합니다. 쉽게 이야기해서 아래와 같이 실험 데이터에 가장 근사하게 매치하는 직선을 그린다고 생각하면 됩니다. y절편은 이 직선이 y축과 만나는 점을 의미하며 LinearRegression 클래스의 intercept_ 속성에 그 값이 저장됩니다.

표현식은 아래와 같습니다. 이중에서 베타는 weight, 상관계수 라고도 불리며 각 속성의 영향도를 의미합니다. 실험이 끝나면 훈련이 끝난 모델의 coef_ 속성에 값이 저장됩니다. intercept_ 속성은 항상 실수 값 하나지만, coef_ 속성은 각 입력 특성에 하나씩 대응되는 Numpy 배열입니다. 16개의 속성이므로 coef_ 속성 배열 사이즈도 16이 될 것 입니다.

선형회귀 실험

LinearRegression 함수 인자의 문는 아래를 참고하세요.

fit_intercept는 y 절편을 계산할지에 대한 설정입니다. 데이터를 표현하는 식이 원점을 지나가는 선이 최적화된 선이 아니라면 기본적으로 사용하는 것이 좋습니다. normalize는 regressors X를 정규화 시킬 것인지에 대한 옵션입니다. n_jobs 는 모델 계산에 사용될 작업 개수를 의미합니다. 데이터 개수가 작아 None으로 설정했습니다.

Linear Regression test file accuracy:0.904775830424
Out[12]:
array([ 2.41360754e-06, -1.43348218e-01, -6.30260362e-03, -9.82386414e-03, 9.78713133e-01, -9.70551425e-09, 2.54192891e-01, -1.51807329e-01, 1.58985085e-05, 5.78284319e-04, 1.10692957e-01, -6.18784363e-02, -5.71178866e-06, 1.41955024e-05, -1.97553459e-05, -4.99848193e-06])

sklearn은 기본적으로 fit 함수를 사용하여 훈련 데이터 셋에서 모델을 생성합니다. 그리고 score 함수를 사용해서 생성된 모델의 성능을 확인하고 predict 함수로 테스트 셋의 예측값을 생성합니다. 이 세가지 함수는 알고리즘의 종류와 관계 없이 대부분의 알고리즘에 존재합니다.

Score 함수에서 리턴하는 값은 R2 이며 결정계수, R-Square,
coefficient of determination 로도 불립니다. 결정계수는 모델의 전반적인 성능을 0~1까지의 숫자로 알려줍니다. 종속 변수와 독립 변수와의 상관도가 높을 수록 값은 1에 가까워 집니다. 실험에서 나온 결정계수의 스코어는 0.90으로 그럭저럭 높은 예측값을 보여줍니다. 그리고 coef_ 변수에는 각 속성들의 상관계수 값이 들어있습니다. 상관계수는 -1 에서 1까의 값을 가지며 -는 음의 영향력, +는 양의 영향력을 의미합니다. 부호와 상관없이 숫자의 절대값은 영향력의 크기를 의미합니다.

위 코드에서 속성의 순서에 따라 결정계수의 값이 배열로 들어있긴 하지만 속성과 연관해서 확인하기는 힘들어서 한글 속성 이름으로 변경하고 절대값이 큰 순서로 정렬해서 pandas dataframe으로 다시 확인해 보았습니다.

당연한 결과이지만 해당 월의 매매가격 지수가 0.9로 매우 강한 양의 상관관계를 보이고 그외 단기 금리인 cd와 0.25의 약한 양의 상관관계, 정기예금금리와는 -0.15의 약한 음의 관계, 연도와는 -, 경제성장률은 +의 매우 약한 상관 관계를 보여주고 있습니다. 그 외 나머지는 0.1 이하의 값으로 크게 상관관계가 없어보입니다. 미분양 데이터가 상관관계가 적어보이는 것은 약간 의아하지만 바로 다음달의 매매가격지수를 예측했기에 그럴 수도 있을 것 같습니다. 어느정도 시차를 두고 영향을 끼치는 속성들은 3개월후, 6개월후, 1년후 등으로 예측 시기를 변경해서 실험을 해보는 것도 의미가 있을 것 같습니다.

실험 결과 해석하기

다음은 테스트셋의 실제 값을 x축으로 예측 값을 y축으로 그래프를 그려보겠습니다. 원칙적으로 모든 예측 값이 실제 값과 일치하면 직선이 나올 것이고 모델의 성능이 좋지 않을 수록 흩어진 점들을 볼 수 있을 것입니다. 해당 실험은 아래와 같이 어느정도 직선에 가까운 모습을 보입니다.

mse = sklearn.metrics.mean_squared_error(Y_test, Y_pred)
print(mse)


0.100838171768

그리고 실제 값과 예측 값의 mean squared error를 구해보았습니다. mean squared error는 오차의 제곱의 평균값을 계산한 값으로 숫자가 적을 수록 예측값과 실제 값의 차이가 적은 것을 의미합니다. 0.1의 값이 나왔습니다.

그럼 지금까지 부동산 가격에 영향이 있을 것 같은 속성들을 일부 골라서 선형 회귀로 다음달의 부동산 지수를 예측하는 실험을 해 보았습니다. 처음 작성하는 실험 포스팅이라 최대한 자세하고 쉽게 적으려고 노력을 해보았습니다. 다음 포스팅에서는 각 알고리즘에 대한 설명 및 실험 관련 속성들에 대해서 간략하게 적어보도록 하겠습니다. 포스팅 연재를 읽어주셔서 감사합니다.

참고로 해당 포스팅의 실험 결과는 로보리포트 사이트에 지속적으로 업데이트 될 예정입니다. 관심 있으신 분은 방문 부탁드립니다 +_+

https://land.roboreport.co.kr

읽을만한 글들

linear regression : https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html

https://medium.com/@haydar_ai/learning-data-science-day-9-linear-regression-on-boston-housing-dataset-cd62a80775ef