2주 남짓(!) 남기고 시작하는 ADsP 대비.
KT 에이블스쿨을 진행하고 있어 데이터분석 자체는 해 볼 만 하겠지만
시험 치는 건 또 다른 문제지 ㅎㅎ..
Part 3이 제일 분량이 많으니 Part 3 부터 정리 시작한다.
이 포스팅은 철저하게 내가 보려고 하는 포스팅이므로,
'내가 이건 안 해도 된다!'싶은 부분은 생략하고 진행되는 점 참고 바람.
3 - (1). 데이터 분석 개요
데이터 분석이란건 종류가 나뉘어 있다기보단,
여러 기법을 적재적소에 활용해야 하는 것이라고 생각한다.
그래서 3-1에서도 데이터 분석의 주요 기법을 설명하고 있다.
구체적인 기법으로는
시각화 | 가장 낮은 수준의 분석 탐색적 분석에 유용함 SNA(Socail Network Analysis, 사회연결망분석)에 잘 쓰인다. |
|
공간분석 (Spatial Analysis) |
공간과 관련된 속성들을 시각화하는 분석 GIS(Geographic Information System)을 구축한다. |
|
탐색적 자료 분석 (EDA) |
데이터의 특이점이나 의미있는 사실 도출 목적 데이터간의 구조적 관계에 집중 4가지 메인 주제 - 저항성 강조 - 잔차 계산 - 자료변수의 재표현 - 그래프를 통한 현시성 |
|
통계분석 |
기술통계 | 표본이 가진 정보를 탐색 |
추측통계 | 표본으로부터 모집단의 특성(모수)를 통계적으로 추론 | |
데이터마이닝 | 대용량 데이터 취급 데이터베이스 / 머신러닝 / 패턴인식 활용 머신러닝 : 인공신경망, 의사결정나무, 클러스터링, 베이지안분류, SVM 패턴인식 : 장바구니분석, 연관규칙 |
데이터 분석 개요는 말 그대로 이렇게 끝.
본격적인 내용 정리 드가자
3 - (2). R 프로그래밍 기초
R은 통계-데이터마이닝-시각화에 특화된 오픈소스 프로그램이자 언어이다.
기본적으로 객체지향, 함수형 언어이다. 어차피 난 Python밖에 모른다.
기본적으로 데이터 전처리를 위해 R과 R studio를 활용하며,
파이썬의 pandas, numpy, seaborn처럼 전처리 패키지를 활용한다.
전처리 과정에서 요약변수, 파생변수라는 말을 쓰는데,
요약변수는 값이 수집된 feature, 파생변수는 탐색을 통해 추가적으로 도출한 feature를 말한다.
- reshape : melt와 cast(재구조화)를 지원
- sqldf : R에서 SQL로 DataFrame을 다루게 해 줌
- plyt : apply 함수 기반 데이터 처리
- data.table : 컬럼별 인덱스로 빠른 처리가 가능한 데이터 구조
<R 자료형>
숫자 | Numeric | 3.1415 |
숫자 벡터 | Numeric | c(1, 2, 3, 4) |
문자열 | Character | 'Hwang' |
문자열 벡터 | Character | c('Hwang', 'Seok') |
요인 | Numeric | factor('A', 'B', 'C') 범주형 데이터 표 |
리스트 | List | list('A', 'B', 'C') 변수에 저장하면 그 변수가 key가 됨 |
데이터프레임 | List | data.frame(x=1:3, y=c('Hwang', 'Seok', 'Kim')) |
함수 | Function | |
스칼라 | 요소가 하나인 벡터 | |
행렬 | 2차원 벡터 | |
배열 | n차원 벡터(n>2) |
특히 신경써야 할 자료형은 벡터와 데이터프레임이다.
벡터
* 다른 언어의 배열과 유사한 개념이다.
* 하나의 자료형만 가질 수 있다.
* 만약 복수의 자료형이 입력된다면 ex) a <- c(1, 'A', True)
우선순위에 따라 나머지 원소들을 자동으로 형변환한다.
(우선순위 높은것부터 : 문자형 -> 복소수형 -> 실수형 -> 정수형 -> 논리형)
* 재활용 규칙 : 서로 길이가 다른 벡터를 연산할 때, 짧은 쪽은 연산이 끝날 때까지 재사용된다.
이때 두 배열이 배수 관계가 아니라면 경고 메시지도 출력된다.
ex) c(1, 2, 3, 4, 5, 6) + c(5, 6) = 6, 8, 8, 10, 10, 12
데이터프레임
* 데이터프레임은 메모리상에서 구동되며, 각 열마다 자료형이 구분되어 있다.
* 데이터프레임의 원소는 벡터 또는 요인이다. (= 각각의 열)
<R 기초문법>
a = n, a <- n | 변수 a에 값을 할당함. '=' 뿐만 아니라 화살표를 쓰는게 신기하다. 화살표는 방향 무관하게 쓸 수 있다는 장점(?) |
|
c() | a = c(1,2,3,4) a = c('abc', 'def', 'hij') a = c(x, y, z) |
자료형에 무관하게 하나의 결합된 데이터셋을 생성함 심지어 변수도 결합 가능 |
n:m | 1:9 | 1에서 9까지의 수열을 생성, 역순으로도 가능 파이썬 슬라이싱이랑 다르게 끝 수도 포함된다. |
seq() | seq(from=0, to=30, by=2) | 시작수, 끝수까지 step별로 증가하는 수열 by 대신 length.out도 쓸 수 있음 |
rep() | rep(1, time=15) rep(1:3, time=15) rep(1:3, each=15) |
1을 15번 반복 1, 2, 3을 15번 반복 1과 2와 3을 각각 15번 반복 |
paste() | a <- paste('a', 'b', 'c', sep=' ') | a b c를 공백으로 연결시켜줌 |
substr() | substr(Congratulation, 4, 7) | Congratulation의 4번째에서 7번째까지 문자열 추출 |
<R 연산자 및 기호(파이썬과 같은 것은 제외)>
$ | a$coef | 요소 뽑아내기 |
~ | lm(log(brain)~log(body), data = Animals) | 식 |
== | 일반적 비교연산자와 같음 iterable한 객체에 쓰면 각 인덱스를 순환하며 bool 반환 |
|
Na | 결측치 NaN은 Not a Number이다.(...) |
<데이터프레임 함수>
rbind | rbind(df1, df2) | row_bind = 행 기준 결합 |
cbind | rbind(df1, df2) | column_bind = 열 기준 결합 |
subset | subset(df, select=변수, subset=조건) | 데이터 조회 |
<기출 함수>
sqrt() | 제곱근 반환 |
summary() | 기초통계량 출력, 범주에 쓰면 pd.value_counts() 효과 |
'자격증 공부 > ADsP' 카테고리의 다른 글
[ADsP] ADsP 요점정리 : Part 3. 통계 분석(3). 회귀분석 (0) | 2024.10.22 |
---|---|
[ADsP] ADsP 요점정리 : Part 3. 통계 분석(2). 기초 통계분석 (0) | 2024.10.21 |
[ADsP] ADsP 요점정리 : Part 3. 통계 분석(1). 통계분석의 이해 (0) | 2024.10.19 |
[ADsP] ADsP 요점정리 : Part 3. 데이터 마트 (0) | 2024.10.17 |