본문 바로가기

스파르타 코딩클럽

(39)
[SQLD 자격증 대비반] 챕터 5. 데이터베이스 성능 대량 데이터 발생에 따른 테이블 분할 데이터 양이 많을 경우 테이블 내에서 수많은 트랜잭션 발생 ➡️ 데이터베이스 성능 저하 수평 분할 : 행 단위로 요소를 분할하여 디스크 입/출력 비용 감소 수직 분할 : 칼럼 단위로 요소를 분할하여 디스크 입/출력 비용 감소 성능 저하 현상 로우 체이닝 행 데이터가 길어서 2개 이상의 데이터 블록에 걸쳐 하나의 행이 저장된 형태 하나의 행을 읽을 때 2개 이상의 데이터 블록 읽음 ➡️ 읽어야 하는 데이터 증가하여 성능 저하 로우 마이그레이션 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 블록에 저장하지 못하고, 다른 블록의 빈 공간을 찾아서 저장 로우 체이닝과 마찬가지로 절대적으로 읽어야 하는 데이터 블록 수가 증가하여 성능 저하 테이블 수직 분할 한 테이블에..
[SQLD 자격증 대비반] 챕터 4. 성능 데이터 모델링과 정규화 성능 데이터 모델링 처음부터 데이터베이스 성능 향상을 목적으로 하는 작업 프로젝트 수행 중보단 사전에 철저하게 설계된 상태로 도입할수록 비용이 적게 듦 분석/설계 단계에서 성능 데이터 모델링을 수행할 경우 성능 저하로 인해 발생하는 재업무 비용 최소화 성능 데이터 모델링 고려사항 정규화를 정확하게 수행 데이터를 주요 관심사별로 분산 정규화를 통해 중복된 데이터가 쌓이는 것 막을 수 있음 데이터베이스 용량 산정 수행 어떤 테이블(엔터티)에 데이터 집중되는지 파악 가능 필요한 경우 테이블 분리와 조인을 통한 데이터 수집 필요 데이터베이스에서 발생되는 트랜잭션 유형 파악 CRUD 매트릭스 혹은 시퀸스 다이어그램을 보면 파악하기 용이 데이터 조회에 필요한 조인 관계 등 파악 가능 데이터베이스의 용량과 트랜잭션 ..
[SQLD 자격증 대비반] 챕터 3. 데이터 모델링의 요소 엔터티(Entity) "개체" 라고 표현하며 정보의 세계에서 의미있는 하나의 정보 단위를 뜻함 데이터베이스에서 레코드가 개체에 해당 엔터티와 인스턴스 엔터티는 인스턴스(Instance)의 집합 인스턴스는 데이터베이스 테이블에 저장된 특정한 데이터 내용의 전체 집합 즉, 하나의 행(row)을 의미 하나의 인스턴스가 갖는 각각의 특징을 속성(Attribute)라고 하고 이는 테이블의 열(column)에 해당 엔터티의 특징 업무에서 필요로 하는 정보 식별 가능 여부 : 인스턴스가 식별자에 의해 한 개씩만 존재하는지 검증 인스턴스의 집합 : 기본적으로 2개 이상의 인스턴스로 엔터티 구성 업무 프로세스에 의해 활용되어야 함 속성을 포함해야 함 : 주식별자만 존재하고 일반 속성이 없는 경우 엔터티 X 관계의 존재 ..
[머신러닝 심화] 의사결정나무와 랜덤 포레스트 의사결정나무(Decision Tree, DT) 의사결정규칙을 나무 구조로 나타내어 전체 자료를 몇 개의 소집단으로 분류하거나 예측을 수행하는 분석 방법 타이타닉 예시 성별 기준으로 의사결정나무 시각화 명칭 루트 노드(Root Node) : 의사결정나무의 시작점, 최초의 분할 조건 리프 노드(Leaf Node) : 루트 노드로부터 파생된 중간 혹은 최종 노드 분류기준(criteria) : sex는 여성인 경우 0, 남성인 경우 1로 인코딩하고 각각 좌측, 우측 노드로 분류 불순도(impurity) ▪️ 불순도 측정 방법 중 하나인 지니 계수는 0과 1 사이의 값으로 0이 완벽한 순도(모든 샘플이 하나의 클래스), 1은 불순도(노드의 샘플이 균등하게 분포)를 나타냄 ▪️ 리프 노드로 갈수록 불순도가 작아지는..
[머신러닝 심화] 데이터 분석 프로세스 - 교차 검증과 GridSearch 교차 검증(Cross Validatoin) 데이터 셋을 여러 개의 하위 집합으로 나누어 돌아가면서 검증 데이터로 사용하는 방법 > 과적합 예방? K-Fold Validation Train Data를 K개의 하위 집합으로 나누어 모델을 학습시키고 최적화하는 방법 K는 분할 개수 데이터가 부족할 경우 유용함 (반복 학습) 함수 sklearn.model_selection.KFold sklearn.model_selection.StrifiedKFold : 불균형한 레이블(Y)을 가지고 있을 때 사용 K fold 수행하기 from sklearn.model_selection import KFold import numpy as np kfold = KFold(n_splits = 5) scores = [] X = trai..
[머신러닝 심화] 데이터 분석 프로세스 - 데이터 분리 과적합(Overfitting) 데이터를 너무 과도하게 학습한 나머지 해당 문제만 잘 맞추고 새로운 데이터를 제대로 예측 혹은 분류하지 못하는 현상 예시 예측 혹은 분류를 하기 위해서 모형 복잡도를 설정 모형이 지나치게 복잡할 때 : 과대 적합이 될 수 있음 모형이 지나치게 단순할 때 : 과소 적합이 될 수 있음 과적합의 원인 모델의 복잡도 데이터 양이 충분하지 않음 학습 반복이 많음(딥러닝의 경우) 데이터 불균형 과적합 해결 - 테스트 데이터 분리 Train Data : 모델을 학습(fit)하기 위한 데이터 Test Data : 모델을 평가하기 위한 데이터 함수 : sklearn.model_selection.train_test_split 파라미터 ▪️ test_size : 테스트 데이터 세트 크기 ▪️ ..
[머신러닝 심화] 데이터 분석 프로세스 - 데이터 전처리(인코딩&스케일링) 범주형 데이터 전처리 - 인코딩(Encoding) 어떤 정보를 정해진 규칙에 따라 변환하는 것 레이블 인코딩(Label Encoding) 문자열 범주형 값을 고유한 숫자로 할당 ( ex. 1등급 > 0 / 2등급 > 1 / 3등급 > 2) 장점 : 모델이 처리하기 쉬운 수치형으로 데이터 변환 단점 : 실제로는 아니더라도 순서 간 크기에 의미가 부여되어 모델이 잘못 해석할 수 있음 사용 함수 sklearn.preprocessing.LabelEncoder 메소드 ▪️ fit : 데이터 학습 ▪️ transform : 정수형 데이터로 변환 ▪️ fit_transform : fir과 transform을 연결하여 한번에 실행 ▪️ inverse_transform : 인코딩된 데이터를 원래 문자열로 변환 속성 ▪️..
[머신러닝 심화] 데이터 분석 프로세스 - 데이터 전처리(결측치) 결측치(Missing Value) 존재하지 않는 데이터 결측치 처리 방법 수치형 데이터 평균값 대치 : 대표적인 대치 방법 중앙값 대치 : 데이터에 이상치가 많아 평균값이 대표성이 없을 경우 중앙값 이용 범주형 데이터 최빈값 대치 사용 함수 간단한 삭제&대치 ▪️ df.dropna(axis=0) : 행 삭제 ▪️ df.dropna(axis=1) : 열 삭제 ▪️ Boolean Indexing ▪️ df.fillna(value) : 특정 값으로 대치( ex. 평균, 중앙, 최빈값) 알고리즘 이용 ▪️ sklearn.impute.SimpleImputer : 평균, 중앙, 최빈값으로 대치 ➡️ SimpleImputer.statistice_ : 대치한 값 확인 ▪️ sklearn.imput.IterativeIm..
[머신러닝 심화] 데이터 분석 프로세스 - 데이터 전처리(이상치) 이상치(Outlier) 보통 관측된 데이터 범위에서 많이 벗어난 아주 작은 값 혹은 큰 값을 의미 ESD(Extreme Studentized Deviation)를 이용한 이상치 발견 데이터가 정규분포를 따른다고 가정할 때, 평균에서 표준편차의 3배 이상 떨어진 값 모든 데이터가 정규분포를 따르지 않을 수 있기 때문에 다음 상황에서는 제한됨 ➡️ 데이터가 크게 비대칭일 때(Log변환 등을 노려볼 수 있음) ➡️ 샘플 크기가 작을 경우 IQR(Inter Quantile Range)를 이용한 이상치 발견 ESD와 동일하게 데이터가 비대칭적이거나 샘플사이즈가 작은 경우 제한됨 Box plot IQR = Q3 - Q1 상한 이상치 = Q3 + 1.5*IQR 하한 이상치 = Q1 - 1.5*IQR 조건필터링을 통한..
[머신러닝 심화] 데이터 분석 프로세스 - 데이터 수집 및 EDA 데이터 수집 Data Source OLTP Databases : OnLine Transaction Processing은 온라인 뱅킹, 쇼핑, 주문 입력 등 동시에 발생하는 다수의 트랜잭션 처리 유형 Enterprise Applications : 회사 내 데이터 ( ex. 고객 관계 데이터, 제품 마케팅 세일즈) Third-Party : Google Analytics와 같은 외부소스에서 수집되는 데이터 Web/Log : 사용자의 로그데이터 Data Lake : 원시 형태의 다양한 유형의 데이터 저장 Data Warehouse : 보다 구조화된 형태로 정제된 데이터 저장 Data Marts : 회사의 금융, 마케팅, 영업 부서와 같이 특정 조직의 목적을 위해 가공된 데이터 BI/Analytics : Busi..