일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 카카오
- 오라클
- matplotlib
- Kaggle
- pandas
- 튜닝
- seaborn
- 실기
- 머신러닝
- 빅분기
- 파이썬
- 빅데이터 분석 기사
- SQL
- level 2
- level 1
- 실습
- oracle
- 프로그래머스
- 알고리즘
- sklearn
- Python
- Numpy
- 코딩테스트
- Oracel
- python3
- R
- 데이터 분석
- Today
- Total
목록데이터 분석 (139)
라일락 꽃이 피는 날
K-최근접 이웃법 (K-Nearest Neighbor) 각 데이터들 간의 거리를 측정하여 가까운 k개의 다른 데이터의 레이블을 참조하여 분류하는 방법 주로 유클리디안 거리 계산법 또는 민코브스키 방법을 사용 모델 기반 알고리즘이 아닌 케이스 기반 알고리즘이므로 입력되는 데이터에 따라 결과와 성능이 크게 다름 k 값이 작을수록 정교한 분류와 예측이 가능하지만 과대적합(overfitting) 문제 발생 k 값이 클수록 정확도나 성능지표가 좋지 않을 수 있고 과소적합(underfitting) 문제 발생 최적의 k는 일반적으로 3~10 범위 내에서 찾는다. [주요 하이퍼파라미터] - n_neighbors : 1에 가까울수록 과대적합, 클수록 과소적합 발생 (default = 5) - metric : 거리 측정 ..
로지스틱 회귀 모델 - 종속 변수가 범주형 자료일 경우 적용하는 회귀 모델 - 원자료를 확률 → 오즈(odds) → 로그(log)로 변환하여 선형 회귀 모델을 적용하고, 다시 지수(exp)로 변환하여 원데이터로 전환한 모델 [주요 하이퍼파라미터] - C : 로그스케일 단위로 최적치 탐색 권고 (default = 1) 작을수록 모델이 단순해지고 커질수록 모델이 복잡해짐 - solver : 데이터 양이 많을 때 풀배치(full-batch)로 할 경우 시간이 오래 걸림 solver='sag' 로 할 경우 평균경사하강법을 적용하여 속도가 빠름 1. 분석 데이터 준비 import warnings warnings.filterwarnings("ignore") 분석 결과 외에 불필요한 내용이 나오지 않도록 하는 옵션 ..
데이터 분석 함수 rollup : 전체 집계를 아래쪽에 출력 cube : 전체 집계를 위쪽에 출력 grouping sets : 원하는 집계 결과를 선택해서 출력 예제 1. 직업, 직업 별 토탈 월급을 출력하는데, 전체 집계를 아래쪽에 출력 select job, sum(sal) from emp group by rollup(job); 예제 2. 나이, 나이 별 인원 수를 출력하는데, 맨 밑에 전체 인원 수를 출력 select nvl(to_char(age), '전체인원수:'), count(*) from emp15 group by rollup(age); 예제 3. 부서 번호, 직업과 부서 번호 별, 직업 별 토탈 월급을 출력 select deptno, job, sum(sal) from emp group by r..
데이터 분석 함수 sum over : 누적 데이터 출력 ratio_to_report : 비율 출력 윈도우 기준 윈도우 방식 설명 rows unbounded preceding 맨 첫 번째 행을 가리킵니다. unbounded following 맨 마지막 행을 가리킵니다. current row 현재 행을 가리킵니다. range rows 는 행을 기준으로 누적치를 구하는 것이고, range 는 범위를 기준으로 누적치를 구하는 것이다. 예제 1. 사원 번호, 사원 이름, 월급, 사원 테이블의 토탈 월급을 출력 select empno, ename, sal, sum(sal) over() from emp; sum(sal) over 다음에 괄호 안에다가 아무것도 쓰지 않으면 전체 토탈 월급이 출력된다. select em..
데이터 분석 함수 listagg : 데이터를 가로로 출력 lag / lead : 이전 / 다음 행 출력 sum+decode : column을 row로 출력 pivot : row를 column으로 출력 unpivot : column을 row로 출력 예제 1. 부서 번호, 부서 번호 별로 속한 사원들의 이름을 가로로 출력 select deptno, listagg(ename, ',') within group (order by ename asc) 이름 from emp group by deptno; 예제 2. 사원 번호, 이름, 월급을 출력하는데, 월급의 그 전 행과 다음 행을 함께 출력 select empno, ename, sal, lag(sal, 1) over (order by sal asc) 이전행 , le..
데이터 분석 함수 rank : 순위 출력 dense_rank : 순위 출력 ntile : 등급 출력 cume_dist : 순위의 비율 출력 row_number : 출력 결과에 번호 부여(넘버링) 예제 1. 이름, 월급, 순위를 출력하는데, 월급이 높은 순서대로 순위를 부여 select ename, sal, rank() over (order by sal desc) as 순위 from emp; over 는 '확장하다' 라는 뜻이다. 즉, over 다음에 나오는 괄호 안의 내용으로 확장해서 rank 를 출력하겠다는 뜻이다. 예제 2. 부서 번호, 이름, 월급, 순위를 출력하는데, 부서 번호 별로 각각 월급이 높은 순서대로 순위를 부여 select deptno, ename, sal , rank() over (p..
1. 분석 데이터 검토 # 행과 열 구조 확인 df.shape # 기술통계 확인 df.describe() # 히스토그램 확인 df.hist(bins=50, figsize=(20,15)) describe() : 평균과 중위수 일치정도, min/max, 이상치 확인 hist() : 정규분포와 유사한 형태인지 확인 2. 특성(x)과 레이블(y) 나누기 # 컬럼 이름으로 나누기 x = df[['컬럼명1', '컬럼명2', ...]] # 컬럼 인덱스로 나누기 x = df[df.columns[0:5]] # loc 함수로 나누기 x = df.loc[:, '컬럼명1':'컬럼명10'] # 목적변수 y = df[['value']] 3. train-test 데이터셋 나누기 from sklearn.model_selection ..
1. 분석 데이터 검토 # 행과 열 구조 확인 df.shape # 목적변수 빈도 확인 df['Class'].value_counts() 2. 특성(x)과 레이블(y) 나누기 # 컬럼 이름으로 나누기 x = df[['컬럼명1', '컬럼명2', ...]] # 컬럼 인덱스로 나누기 x = df[df.columns[1:10]] # loc 함수로 나누기 x = df.loc[:, '컬럼명1':'컬럼명10'] # 목적변수 y = df[['Class']] 3. 범주 변수 변환 식별자 역할을 하는 범주 변수에 원 핫 인코딩(one-hot-encoding) 적용 하위 범주를 변수로 만들어 각 케이스가 그에 해당되면 '1', 아니면 '0' 입력 데이터셋을 훈련-테스트로 나누기 전에 수행해야 오류가 적음 # 범주형 변수 X1 ..