일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Home Assistant
- 오블완
- 매터
- 배당
- 미국주식
- 해외주식
- esp32
- ConnectedHomeIP
- 파이썬
- homebridge
- 티스토리챌린지
- Espressif
- 현대통신
- 국내주식
- 애플
- MQTT
- raspberry pi
- 홈네트워크
- SK텔레콤
- 나스닥
- Apple
- Bestin
- 공모주
- matter
- cluster
- Python
- 코스피
- 힐스테이트 광교산
- 월패드
- RS-485
- Today
- Total
목록Software/R (10)
YOGYUI
탐색적 데이터 분석 (Exploratory Data Analysis, EDA) 단계에서 이상치(outlier) 감지를 위한 방법은 여러가지가 있다 사분범위 (interquartile range, IQR) 백분위수 (percentile) Hampel filter Grubbs’s test Dixon’s test Rosner’s test 이 글에서는 직관적으로 이해하기 쉬운 방법 중 하나인 IQR Criterion 기법을 알아보도록 한다 1. 이론 다음 범위(Interval) $I$를 벗어나는 값을 이상치라고 정의한다 \(I=[Q_{1}-1.5\cdot IQR, Q_{3}+1.5\cdot IQR]\) \(IQR = Q_{3}-Q_{1}\) \(Q_{3}\): 중앙값 위 데이터들의 중앙값, 제 3사분위 수 \(..
산점도 행렬(Scatter Plot Matrix)은 탐색적 데이터 분석(Exploratory Data Analysis, EDA) 단계에서 변수간 상관관계를 한눈에 파악하기 위해 사용하는 시각화 방법이다 R에서 산점도 행렬 시각화는 pairs 함수 1줄을 호출해 간단히 구현할 수 있다 iris 데이터의 수치형(numeric) 데이터 간 산점도 행렬을 그려보자 library(dplyr) iris_numeric % select_if(function(x) any(is.numeric(x))) pairs(iris_numeric) Petal.Length와 Petal.Width는 강한 양의 상관관계를 가지며, Petal.Length는 Sepal.Width를 제외한 나머지 변수들과 양의 상관관계를 갖고 있음을 한눈에 파..
랜덤포레스트 분석모델을 구현했을 때, 모델의 특성을 파악하는데 사용되는 방법 중 하나가 '변수 중요도(variable importance)'이다 변수중요도를 측정하는 지표는 Mean Decrease Gini (평균 지니불순도 감소량)이며, 랜덤포레스트 구축 시 노드를 늘려감에 따라 데이터의 변수(속성)가 지니불순도 감소량에 얼마나 영향을 미치는 지를 계산하게 되며, 감소량이 클수록 학습 시 중요한 변수로 작용했다고 할 수 있다 지니불순도와 관련된 자세한 내용은 다음 글을 참고하도록 한다 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sungmk86&logNo=221204932461 Mean Decrease Gini 결론 : Ran..
분류분석 시 혼동행렬(Confusion Matrix)은 모델의 Accuracy, Sensitivity, Specificity 등 성능 지표를 계산하기 위해 기본적으로 작성하는 테이블이다 (참고: 링크) 표를 통해 정확도, 민감도, 특이도, 재현율, F1-Score 등을 계산할 수 있는데, 이를 한번에 해결해줄 수 있는 툴이 바로 caret 패키지의 confusionMatrix 함수다 confusionMatrix {caret} Create a confusion matrix Description Calculates a cross-tabulation of observed and predicted classes with associated statistics. Usage confusionMatrix(data, ..
caret 패키지의 preProcess 함수를 활용하면 수치형 데이터 정규화 (normalization) 및 표준화 (standardization)을 쉽게 수행할 수 있으며, 특정 데이터셋에 적용된 min, max, average 등 파라미터를 다른 데이터셋에 적용하는 것도 가능하다 (ex: 머신러닝 훈련용 데이터셋에 정규화 적용 후, 계산시 사용된 값을 테스트용 데이터셋에 그대로 적용) iris 데이터를 두 세트로 나눈뒤 실습해보도록 한다 set.seed(210617) library(caret) df
분류분석(Classification)은 모델의 분류 성능을 판단할 때 모델의 class 분류 결과에 따라 Confusion Matrix를 작성하고 ROC, AUC 등을 metric을 활용한다 반면 회귀분석(Regression)은 출력이 수치형 데이터이므로 실제 학습 대상값과의 '차이'를 기반으로 모델의 성능을 판단하는게 일반적인데, 이 때 많이 쓰이는 metric이 RMSE, MAE, R squared (결정계수) 값이다 - 결정계수는 모델이 학습 데이터에 얼마나 잘 fitting 되었는지를 판별하는 용도로 사용 \(RMSE = \sqrt{{1 \over N}\sum_{i=1}^{N}{(y_i-\hat{y_i})^2}}\) \(MAE={1 \over N}\sum_{i=1}^{N}{|y_i - \hat{y..
빅데이터 분석기사 실기시험 R 개발환경에 ROCR 패키지가 제공되지 않아 대안을 찾아야했다 다행히 pROC 패키지가 제공되어서 간단한 사용법을 공부해봤다 (사실 AUC 구하는 수식 자체가 어려운게 아니라서 직접 구현해도 되긴 하지만... 패키지가 있다면 쓰는게 인지상정) 이진분류, 다중분류 모두 지원하니 케이스별로 테스트코드를 작성해보자 (함수명이 다르다) 유명한 공개 데이터셋 두 종류를 불러와 Train-Validation-Test 로 홀드아웃한 뒤, 랜덤포레스트 분류 모델 학습 후 검증 데이터, 테스트 데이터의 분류 결과를 살펴보자 (홀드아웃 비율은 8:1:1) 1. Binary Class Classfication 위스콘신 유방암 데이터로 이진분류 (메타데이터는 링크 참조) 분류대상 속성: Breas..
R에서는 데이터셋의 NA를 대체(Imputation)하는 여러가지 방법을 제공한다 (ex: DMwR 패키지의 centralImputation) 본 포스트에서는 dplyr 패키지를 활용해서 데이터셋에 NA가 있는지 파악하고, NA값들을 대체하는 방법에 대해 알아보도록 한다 1. 데이터 준비 mtcars 데이터셋의 일부 속성을 임의로 NA로 만들어보자 set.seed(1234) # load dataset df [1] "drat" "qsec" complete.cases 함수를 활용한 다음 구문과 동일한 동작 (complete.cases: NA인 속성이 모두 없는 레코드에 대해서만 TRUE 반환) df_na % summarise_each(funs(sum(is.na(.)))) > drat qsec 1 4 6 ※ ..
파이썬은 __file__ 변수를 통해 현재 실행되는 스크립트의 절대경로를 쉽게 가져올 수 있다 R은 이리저리 검색해보니 tidyverse 라이브러리를 사용한 함수를 활용하는게 제일 확실한 것 같다 출처: https://stackoverflow.com/questions/47044068/get-the-path-of-current-script # install.packages("tidyverse") library(tidyverse) getCurrentFileLocation % tidyr::separate(col=value, into=c("key", "value"), sep="=", fill='right') %>% dplyr::filter(key == "--file") %>% dplyr::pull(value) ..
R 스크립트의 작업 경로 Get/Set 명령어 getwd() setwd(dir) [Description] getwd returns an absolute filepath representing the current working directory of the R process; setwd(dir) is used to set the working directory to dir. [Arguments] dir A character string: tilde expansion will be done.