목록데이터분석 (19)
Dev log
회귀는 하나의 변수가 나머지 다른 변수들과의 선형적 관계를 갖는가의 여부를 분석하는 하나의 방법이디. 즉 하나의 종속변수와 독립변수 사이의 관계를 명시하는 것을 우리는 회귀라고 한다. 오늘은 회귀가 무엇인지와 구하는 방법에 대해 알아보겠다. 회귀 독립변수와 종속변수는 아래와 같다. - 독립 변수: 종속 변수의 영향을 주는 변수(평수, 학군) - 종속 변수: 서로 관계를 가지고 있는 변수들 중에서 다른 변수의 영향을 받는 변수 (집값) 회귀식은 y = ax + b 이며, 정말 간단하다. 회귀식을 이용하여 간단하게 예제 문제를 풀어보겠다. 1986년 1월 28일 미국의 스페이서 셔틀 챌린저호의 승무원 7명이 사망했다. 우주 왕복선이 발사 도중에 폭파해서 사망을 했기 때문이다. 폭파에 대한 원인 분석을 했는데..
저번 포스팅때는 한국 사회의 흐름을 알아보았는데요. 지난 19년을 되돌아보니 사건, 사고가 많았으며, 다시는 일어나면 안되는 사고들과 잊으면 안되는 일들이 많았습니다. 그럼 이번엔 경제를 되돌아보며 한국 경제에는 어떤 일들이 있었는지 알아보겠습니다. 그리고 크롤링은 저번에 했기 때문에 따로 다루지는 않겠습니다. Keyword 사회와 마찬가지로 경제도 표를 만들면 아래와 같습니다. 우선 경제하면 가장 많이 떠오르는 것이 부동산이 아닐까 싶습니다. 역시나 부동산이나 재건축이 가장 많이 눈에 띄는 것이 보입니다. 2005년 국세청 키워드가 보이는데, 아마 종부제 시행으로 인해 많은 헤드라인을 장식했던 키워드 인것 같습니다. 경제하면 기업들이 빼놓을 수 없는데, 아래와 같이 예전에 비해서는 갈수록 기업의 이름이..
미디어는 한국 사회의 흐름을 압축적으로 담고 있는 Snapshot입니다. 지난 19년, 가장 대표적이고 강력한 미디어, 헤드라인 뉴스로 한국 사회를 되돌아 볼까합니다. 이번 포스팅은 사회 부분을 다뤄보겠습니다. SBS뉴스 사회 부분의 헤드라인 부분을 다 크롤링하여 문장을 단어별로 나눈 후 count 하였습니다. Web Crawling R을 이용하여 크롤링을 하려고 할때 아래와 같은 라이브러리가 필요합니다. # 필요 패키지 설치 library(gsubfn) library(stringr) library(XML) 크롤링 함수는 아래와 같이 URL을 입력받아 긁어오도록 하였습니다. SBSnews
의사 결정 트리로 독일 은행의 대출 채무 이행 여부를 분석해볼까 합니다. 데이터는 여기에서 다운 받을 수 있습니다. 그리고 코드는 여기 GitHub에서 확인할 수 있습니다. DataSet 데이터 라벨은 default 변수이며, yes는 대출금 미상환, no는 대출금을 상환했다는 뜻입니다. 대부분의 컬럼은 이름에서부터 알 수 있기 때문에 다루진 않고, 알기 어려운 칼럼에 대해 설명을 조금 설명을 하자면 아래와 같습니다. - checking_balance 예금 계좌 - savings_balance 적금 계좌 - amount 대출 금액 데이터에서 저 컬럼이 왜 있는지에 대해 분석을 조금 하게 되면, 데이터 분석 시에 조금 수월할 수 있습니다. 예금계좌와 적금 계좌가 있는 이유는 대출 신청자의 예금계좌와 적금 ..
파이썬에서 특정 단어가 있는지 확인하기 위해 자주 쓰이는 함수 in입니다. 아마 for 사용할때 더 많이 사용해본 적 있을꺼예요. 이 맴버 함수에 대해 자세히 알아보겠습니다. list안에 있는지 없는지 확인하기 in을 사용하여 list안에 특정 숫자나 문자열이 있는지 체크해보겠습니다. listdata =[1, 2, 3, 4] ret1 = 5 in listdata # False ret2 = 4 in listdata # True print(ret1); print(ret2) strdata = 'abcde' ret3 = 'c' in strdata # True ret4 = '1' in strdata # False print(ret3); print(ret4) 텍스트(.txt)에서 특정 단어 및 라인 출력하기 겨울왕..
Naive Bayes 자동화 스크립트 우선 파일명을 입력 받고, 컬러명이 있는지에 관한 유무와 라벨이 위치한 번호 마지막으로 제거할 컬럼의 위치를 입력 받아보겠습니다. 추가로 if문을 돌려서 패키지 설치가 되어 있으면 패스하고 아니면 설치하도록 하겠습니다. if (length(setdiff(packages, rownames(installed.packages()))) > 0) { install.packages(setdiff(packages, rownames(installed.packages()))) } library(tm) library(gmodels) input_table
나이브 베이즈를 활용한 영화 장르 분류를 이번에 해보겠습니다. 예전에 포스팅했던 knn과 마찬가지로 그리 어렵지도, 코드가 길지도 않아서 한두번 해보면 금방 익숙해 질꺼 같습니다. DataSet 데이터는 선호하는 영화장르 데이터를 사용했으며, 데이터는 여기에서 다운받아 보실 수 있습니다. 물론 포스팅에서 사용된 코드는 제 Github에서 전부 보실 수 있습니다. # 패키지 설치 install.packages("e1071") library(e1071) movie
나이브 베이즈는 확률을 기반으로 한 머신러닝의 한 알고리즘입니다. 현재까지도 유용하고 많이 사용되고 있습니다. 확률로 인한 데이터 분류 기상학자가 날씨예보를 할 때, 일반적으로 "비올 확률 70%" 라는 용어를 사용해 예측을 합니다. 여기서 나온 70%는 과거의 사건 데이터를 사용한 것이며, 과거에 이런 경우가 10번 중 7번은 비가 왔음을 의미하는 것입니다. 베이즈기법 기반인 분류기는 분류되지 않은 데이터를 분류기가 분류할때, 새로운 속성에 대한 가장 유사한 범주를 예측하기 위해 관찰된 확률을 사용합니다. 관찰된 확률은 훈련 데이터에서 의해서 미리 계산이 되어집니다. 확률 이론 확률에는 결합 확률, 조건부 확률, 베이즈 정리가 있습니다. 1. 결합 확률 결합 확률은 서로 배반되는 두 사상 E와 F가 있..
앞으로 다양한 데이터를 만나더라도 손쉽게 스크립트 하나로 knn을 돌리기 위해 간단하게 만들어보겠습니다. knn 자동화 스크립트 파일명을 입력 받고, 컬러명이 있는지에 관한 유무와 라벨이 위치한 번호 마지막으로 제거할 컬럼의 위치를 입력 받아보겠습니다. library(data.table) library(class) input_table
오늘은 knn을 사용하여 유방암 분류를 해볼까합니다. 데이터는 데이터는 여기에서 볼 수 있으며 전체 코드 역시 GitHub에서 보실 수 있습니다. 월래 오늘 적절한 k값을 알아내는 것에 관려하여 포스팅을 할 예정이였으나, R에서 knn 관련 데이터 예제로 가장 많이 사용하는 것중에서 하나만 집고 넘어가는 것도 나쁘지 않고 해서 오늘은 유방암 데이터를 가지고 분류를 해보도록 하겠습니다. DataSet 우선 데이터를 load 해보겠습니다. wisc
PL/SQL이란 무엇인지, 기본 block 구조와 변수 사용법에 대해 간단하게 알아보겠습니다. PLSQL PLSQL이란 비절차적 언어인 SQL + 프로그래밍(if,loop)를 이야기합니다. 즉, 절차적 언어로 만드는 프로그래밍입니다. if문과 loop문을 사용할 수 있으며, 반복되는 단순한 업무를 자동화 할 수 있습니다. PL/SQL을 배워야 하는 이유 우선 PL/SQL은 수많은 단순작업을 자동화하기 위해서 사용합니다. 우리가 분석해야할 데이터들은 크게 2가지 타입으로 볼 수 있습니다. samll data -> business data business data를 분석하려면, 알고리즘 사고방식을 갖춰야할 필요가 있습니다. 그래서 수학식을 PL/SQL 또는 Python 으로 구현하려고 합니다. big dat..
knn을 사용하여 조금 의미 있는 결과를 가지고 재밌는 결과를 뽑아내보도록 하겠습니다. 데이터는 여기에서 데이터를 다운 받아주세요. DataSet 이번 데이터를 열어보면 나이, 월수입, 상품 구매여부, 나이가 있습니다. 이 데이터를 이용해, 백화점 또는 소셜커머스 회사에서 데이터 분석을 통해 구매자가 제품을 구매할 고객인지 아닌지를 알아내려고 한다고 가정해보고 knn을 이용하여 문제를 풀어보도록 하겠습니다. Nomalize (정규화) 우선 데이터를 불러옵시다. buy
R은 데이터 분석할 때 주로 사용하는 언어입니다. 요즘 데이터 분석가 모집 요망을 보면 SQL과 R은 기본적으로 다루는 기술이기 때문에 데이터 분석을 하고 싶어하는 사람에게는 R은 필수입니다. 데이터 분석이 필요한 이유에 대해 사례 하나를 들어보겠습니다. 카카오톡은 2010년 3월에 서비스르르 시작한 이후에 폭발적으로 성장해서 2012년 말에 8000만명의 가입자를 넘어섰다고 합니다. 하루 평균 43분간 카카오톡을 하고 하루 방문자가 2700만명, 하루 최대 메세지 이용건수가 42억건에 달한다고 합니다. 예전에는 "문자해"라는 말이 현재는 "카톡해"로 바뀐거를 보면 정말 카카오톡은 성공했다고 볼 수 있습니다. 이런 성공에도 불고하고 마땅한 수익모델이 없어서 2010년에 41억 적자, 2011년 153억 ..
저번 포스팅에 이어서 날짜함수와 간단하게 숫자함수에 대해 알아보겠습니다. 숫자함수는 간단하지만 날짜 함수는 생각보다 간단하지 않습니다. 그래서 날짜 함수는 잘봐두셔야합니다. 숫자함수와 날짜함수 프로그래밍을 조금 해보신 분들은 금방 습득하실 수 있습니다. 숫자함수의 종류는 아래와 같습니다. 숫자 함수 round 반올림하는 함수 trunc 반올림하지 않고 버리는 함수 mod 나눈 나머지값을 출력하는 함수 날짜 함수의 정류는 아래와 같습니다. 날짜 함수 between_months 날짜와 날짜 사이의 개월 수를 출력하는 함수 add_months 특정 개월 수 후의 날짜를 출력하는 함수 next_day 돌아올 요일의 날짜를 출력하는 함수 last_day 그 달의 마지막 날이 언제인지 출력하는 함수 날짜 함수는 날..
이번 포스팅 부터는 SQL의 문자 함수와 날짜 함수에 대해 자세하게 배워보겠습니다. 우선 함수를 왜 사용해야 하는지와 함수의 종류들에 대해 알아보겠습니다. 함수를 사용해야 하는 이유? 간단한 이유인데, SQL에서 함수를 사용해야 하는 이유는 함수를 이용하면 데이터 검색을 더 쉽고 자세하게 구현할 수 있기 때문입니다. 함수의 종류 함수의 종류는 크게 2가지로 볼 수 있습니다. 함수의 종류 단일행 함수 문자, 숫자, 날짜, 변환, 일반 복수행 함수 max, min, avg, sum, count 문자 함수의 종류에는 아래와 같습니다. 문자 함수 upper 문자를 대문자로 변환하는 함수 lower 문자를 소문자로 변환하는 함수 initcap 첫 문자는 대문자로, 나머지는 소문자로 변환하는 함수 substr 특정..