data analysis & visualization

기초통계분석

통계2019. 7. 7. 06:24
 

'통계' 카테고리의 다른 글

[SMOTE] 알고리즘  (0) 2021.02.14
감마분포 & 균일분포  (0) 2019.05.29
가설검정& 최강력검정  (0) 2019.04.25
R에서 일반화 가법모형(설명X)  (0) 2019.04.13

먼저 크롬을 열고 네이버데이터랩으로 이동!

remDr$open()
url='https://datalab.naver.com/keyword/realtimeList.naver?where=main'
remDr$navigate(url)

source를 가져온 후 text로 변환


html <- remDr$getPageSource()[[1]] 
html <- read_html(html)
sWords <- html %>% html_nodes("div.rank_inner") %>% html_text()

str_split을 통해 분리
sWords=str_split(sWords,'\n')

n=length(sWords)

단어를 클랜징
sWords2=gsub(' ','',sWords[[i]])
sWords2=sWords2[nchar(sWords2)!=0]

제목 추출
title=sWords2[1]
sWords2=sWords2[-1]

df에 데이터프래임 생성

(옵션에 stringsAsFactors=F를 주면,마지막에 정렬해주지 않아도 된다.)

df=data.frame(rank=sWords2[seq(1,length(sWords2),2)],sWords2[seq(2,length(sWords2),2)])
colnames(df)=c('rank',title)
data=df

반복


for(i in 2:n){
sWords2=gsub(' ','',sWords[[i]])
sWords2=sWords2[nchar(sWords2)!=0]
title=sWords2[1]
sWords2=sWords2[-1]
df=data.frame(rank=sWords2[seq(1,length(sWords2),2)],sWords2[seq(2,length(sWords2),2)])
colnames(df)=c('rank',title)
data=merge(data,df,by='rank')
}

data$rank=as.numeric(data$rank)
data[order(data$rank),]
data


remDr$close()

 

전체 코드

remDr$open()
url='https://datalab.naver.com/keyword/realtimeList.naver?where=main'
remDr$navigate(url)

html <- remDr$getPageSource()[[1]] 
html <- read_html(html)
sWords <- html %>% html_nodes("div.rank_inner") %>% html_text()
sWords=str_split(sWords,'\n')

n=length(sWords)

sWords2=gsub(' ','',sWords[[i]])
sWords2=sWords2[nchar(sWords2)!=0]
title=sWords2[1]
sWords2=sWords2[-1]
df=data.frame(rank=sWords2[seq(1,length(sWords2),2)],sWords2[seq(2,length(sWords2),2)])
colnames(df)=c('rank',title)
data=df

for(i in 2:n){
sWords2=gsub(' ','',sWords[[i]])
sWords2=sWords2[nchar(sWords2)!=0]
title=sWords2[1]
sWords2=sWords2[-1]
df=data.frame(rank=sWords2[seq(1,length(sWords2),2)],sWords2[seq(2,length(sWords2),2)])
colnames(df)=c('rank',title)
data=merge(data,df,by='rank')
}
data$rank=as.numeric(data$rank)
data[order(data$rank),]
data

'R > crawling' 카테고리의 다른 글

동네예보 최종  (0) 2019.08.07
terminal code R을 이용해 실행하기  (0) 2019.07.31
기상청 자료 다운로드  (0) 2019.05.22
XML package를 활용한 정적 크롤링  (0) 2019.04.15
PlotGoogleMaps 사용해 AWS, ASOS 위치 나타내기  (0) 2019.04.11

RPubs - AI 와 Machine Learning을 위한 빅데이터 실습(2019.7.18(2))


'머신러닝' 카테고리의 다른 글

성능평가지표  (0) 2020.04.26
과적합이 좋지 못한 이유?  (0) 2020.01.20
데이터마이닝 개요와 R 기초 사용법  (0) 2019.07.04
기계학습 간단한 개념  (0) 2019.06.27
catboost  (0) 2019.06.21

RPubs - AI 와 Machine Learning을 위한 빅데이터 실습(2019.7.17(1))


'머신러닝' 카테고리의 다른 글

과적합이 좋지 못한 이유?  (0) 2020.01.20
정형데이터마이닝 - 비지도학습  (0) 2019.07.04
기계학습 간단한 개념  (0) 2019.06.27
catboost  (0) 2019.06.21
Recommendation System  (0) 2019.06.10

인공지능, 머신러닝, 딥러닝과 데이터마이닝의 차이점은?

인공지능이란?

사람의 지능을 필요로 하는 작업을 수행할 수 있는 컴퓨터 시스템을 지칭하는 말이다. 의사결정을 자동화 하는데 중점을 두는 면에서 머신러닝과 공통점을 가지나, 머신러닝은 인간의 행동과 관련이 없을 수 있다는 점에서 차이가 있다.

머신러닝(기계학습)이란?

인공지능을 구현하는 구체적인 방식. 예측이 주 목적

ex) 추천시스템 알고리즘, 이메일의 스팸여부 판별

딥러닝(심화학습)이란?

머신러닝 알고리즘은 특징들을 매핑시켜 분류, 예측을 하는 반면, 딥러닝의 경우 추상적인 자료에서 특징을 추출하여 분류 및 예측을 한다.

ex) 사진을 통한 분류, 사진을 생성, 음성인식 등의 방법

데이터마이닝이란?

Mining은 채굴, 채광하다라는 뜻으로 즉, 데이터마이닝은 거대한 양의 데이터 속에 쉽게 드러나지 않는 통계적 규칙이나 패턴과 같은 유용한 정보를 찾아내는 과정이라 말할 수 있다. 데이터 내에 정보를 찾는 것이 주 목적

데이터마이닝의 종류

  • 분류 : 새롭게 나타나는 현상을 기존 정의된 집합에 배정하는 것을 의미
  • 추정 : 수입, 수준, 신용잔고처럼 연속된 변수의 값을 추정하는 것을 의미
  • 예측 : 미래의 값을 추정하거나 분류하는 것을 의미
  • 군집 : 이질적인 모집단을 동질성을 지닌 그룹별로 세분화 하는 것을 의미
  • 연관 : 같이 팔리는 물건들 사이의 연관성을 파악하는 분석

머신러닝의 종류

  • 지도학습 : 독립변수와 종속변수의 쌍으로 된 자료가 주어질 때 새로운 자료에 대하여 문제를 풀 수 있는 함수를 찾는 학습방법
  • 비지도학습 : 종속변수가 없이 자료들로부터 패턴을 추출하는 학습방법(데이터 마이닝의 군집의 개념)
  • 강화학습 : 문제에 대한 직접적인 해답을 주지 않고 경험을 통해 기대값이 최대가 되는 것을 찾는 학습방법

마리오 딥러닝최근의 알파고

  • 반지도학습 : 지도학습과 비지도학습을 같이 사용하는 방법
  • 전이학습 : 딥러닝으로 추출된 변수로 다른 모델을 학습하는 방법

학습인란? 데이터를 잘 반영하는 모형을 찾는 것으로 이상적인 모수를 찾는 것을 의미



  • True Positive(TP) : 실제 True인 정답을 True라고 예측 (정답)
  • False Positive(FP) : 실제 False인 정답을 True라고 예측 (오답)
  • False Negative(FN) : 실제 True인 정답을 False라고 예측 (오답)
  • True Negative(TN) : 실제 False인 정답을 False라고 예측 (정답)

모형 평가 지표

  • 정밀도(Precision) : True라고 분류한 것 중에서 실제 True인 것의 비율

  • 재현율(Recall) : 실제 True인 것 중에서 모델이 True라고 예측한 것의 비율.민감도(sensitivity)라고 표현하기도 한다.

  • 특이도(Specificity) : 실제 False인 것 중에서 False라고 예측한 것의 비율.

  • ROC(Receiver Operating Characteristics) : x축은 1-특이도, y축은 민감도를 나타낸 그래프로 이 그래프의 아랫 면적을 AUC(Area Under the ROC Curve)라 한다.

  • 정확도(Accuracy) : 제대로 예측한 것의 비율

  • F1 score : 정밀도와 재현율의 조화평균 

일반적으로 정확도를 사용해 모형의 성능을 평가하며, 모형이 만일 편향된 예측을 하는 경우 재현율보다 정밀도가 중요해진다. 하지만 정확도는 이를 고려할 수 없다. 이에 자료가 불균형 구조를 띌 때에는 F1 score를 모형평가에 사용한다. 이 경우 정확도를 사용하게되면 편향을 고려할 수 없다.


예측모형 실습

예측모형도 앞에서와 같이 간단하게 생성할 수 있다. 모형 평가에 사용되는 지표는 분류모형과 달리 값이 연속형 수치이므로 다른 지표들을 사용한다. 일반적으로 RMSE와 MAE를 많이 사용한다.

  • MSE(mean squared error) 
  • RMSE(root mean squared error) : MSE의 제곱근
  • MAE(mean squared error) 
  • MAPE(mean absolute percentage error) : 오차를 실제값으로 나눈 값들의 합을 n으로 나눈 값
  • BIAS
  • rBIAS(Relative BIAS
  • rMSEP(Relative Mean Separation)

bias-variance trade off

mse는 합을 하기전에 제곱을 하였으므로 실제값과 예측값의 차이가 클수록 값이 mae에 비해 커진다. 따라서 필요에 따라 모형지표를 선택할 필요가 있다. 또한 RMSE나 MAE는 단위에 영향을 받는 반면 MAPE는 단위의 영향을 받지 않는다.

'그 외' 카테고리의 다른 글

[R] 재미삼아 푸는 문제  (0) 2020.01.15
지도 그림 그리기 예제  (0) 2019.11.11
[주식] 키움 영웅문 통한 주식 자료다운로드  (0) 2019.11.11
알고리즘  (0) 2019.04.08
git 개념정리  (0) 2019.03.19

power shell 을 활용하여 

windows에 jupyter notebook 설치하기


먼저 python을 설치한다.


환경변수 설정


아래의 환경변수(N)...을 클릭


사용자 변수에 path에서 경로를 2개 추가하여야 power shell에서 주피터 설치가 가능하다.



windows 키 > python 입력 > 우클릭 > 파일 경로 찾기 > 아래와 같이 출력


하지만 이경로는 바로가기의 경로이므로 python 우클릭 > 아래의 대상 경로에서 python.exe를 제외하여 복사하여 경로에 들어간다.



해당 경로와 Scripts 경로를 path에 추가


위와 같이 환경변수 설정을 하였다면, power shell 을 실행하여 pip3 install jupyter를 입력하면 설치가 완료된다.


주피터 노트북을 실행하려면 jupyter notebook 을 입력하면 된다.