전체 글 186

의사결정나무(Decision Tree)-1

의사결정나무 분류 널리 사용되는 분류기 중 하나 복잡한 데이터에 대해 좋은 성능을 보임 학습 데이터로부터 설명 가능한 분류기준을 결정 (왜 이렇게 분류되었는지) 데이터를 뿌리부터 잎까지 순차적으로 분류 * leaf noad : 더이상 분리되지 않는 노드 Tree Introducion Algorithm 데이터로부터 DT 알고리즘을 만들어내는 알고리즘 Tree Introduction Algorithm 에서 만들어진 DT -> test data 에 DT 적용 -> 각 data 에 class 를 부여할 수 있음 ex. 깉은 데이터의 분류에 대해 하나 이상의 서로 다른 트리 학습이 가능하다 splitting attribute 로 어떤 attribute 를 고르냐에 따라 트리 모양이 달라짐 위의 DT에 refund..

School/머신러닝 2022.04.16

관계 데이터 모델

관계 데이터 모델 관계 데이터 모델의 개념 1. 관계 데이터 모델의 기본 개념 개념적 구조 -> 논리적 구조로 표현하는 논리적 데이터 모델 E-R 다이어그램 -> table 하나의 개체에 대한 데이터 -> 하나의 릴레이션에 저장 관계, 제약사항도 릴레이션으로 저장 가능 2. 관계 데이터 모델의 기본 용어 용어 설명 파일 관리 시스템 관점 릴레이션 (Relation) 하나의 개체에 관한 데이터를 2차원 테이블 구조로 저장한것 파일 속성 (Attribute) 릴레이션의 열 필드 투플 (Tuple) 릴레이션의 행 레코드 용어 설명 도메인 (Domain) - 하나의 속성이 가질 수 있는 모든 값들의 집합 - 속성 값을 입력 및 수정할 때 적합성 판단의 기준 - 속성의 특성을 고려한 데이터타입으로 정의 널 (Nu..

Scatterplot Matrix / heatmap

Scatterplot Matrix 여러 변수들 간의 관계를 한눈에 파악하기 매우 유용 seaborn 의 pairplot 이용해서 기능 사용 가능 내장 데이터셋인 "penguins" 사용해서 실습해보자 ! # seaborn 불러오기 import seaborn as sns # 데이터파일 읽어들이고(load_dataset) 상위 5개 데이터 확인(head) df_penguin = sns.load_dataset("penguins") df_penguin.head() # 단순 scatterplot : pairplot 이용 sns.pairplot(df_penguin) # species 별로 색을 다르게 : hue 이용 sns.pairplot(df_penguin, hue="species") # 대각선 셀에는 히스토그램..

Quantile-Quantile Plot(Q-Q plot)

Q-Q plot 한 데이터셋의 quantile 값들을 또 다른 데이터셋의 quantile 값들에 대해 도표화 한 것 한 쪽 축에 이론적 분포의 quantile 을 이용한다면 probability plot 과 유사 두 데이터셋이 동일한 분포의 모집단에서 표집된 것인지 확인하는 도구 + 두 데이터셋이 동일한 위치와 변동성을 갖는지, 유사한 형태의 분포를 갖는지, 꼬리부분의 특성이 유사한지 확인 가능 장점 데이터셋의 크기가 동일할 필요가 없음 분포의 여러 측면을 동시에 확인할 수 있음 - 위치의 이동 - 변동성의 이동 - 대칭성의 변화 - 이상치 존재 Quantile 계산방법 정렬된 x 값을 0.5/n, 1.5/n, ... , (n-0.5)/n quantile 에 할당 각 계산값이 x값에 대응하는 quanti..

Bihistogram

공학적 변경을 적용하기 이전과 이후에 위치, 변동성, 분포 변화를 평가하는 도구 분포의 모든 특징이 그림 하나에서 나타남 ex) 2개의 히스토그램을 병치 - 수평축 위 : 조건 1에 대한 반응변수의 히스토그램 - 수평축 아래 : 조건 2에 대한 반응변수의 히스토그램 조건을 바꿨을때의 변화를 보며 인자가 유의한지, 영향이 있는지 두 하부집단간 위치/변동성/분포 변화가 있는지 ## code import pandas as pd import seaborn as sns import matplotlib as plt ceramics = pd.read_csv('/content/ceramics.csv', delim_whitespace = True) ceramics.head() # 2개 겹쳐그리기 : histoplot 1..

Box Plot

Box Plot 여러 다른 데이터 그룹 간 위치 및 변동 변화를 감지할 수 있게 해주는 도구 중앙값, 대칭성, 분산, 왜도, 이상치 에 대한 정보를 제공 수평축 : 인자 / 수직축 : 반응변수 위치/변동에 대해 인자가 유의한 영향을 주는지 판단 가능 분포별 boxplot 의 형태 변화 Code seaborn 의 boxplot 이용해서 그림 import seaborn as sns tips = sns.load_dataset("tips") tips.head() # x값에 할당하면 세로형, y값에 할당하면 가로형 sns.boxplot(x=tips["total_bill"]) sns.boxplot(y=tips["total_bill"]) # orient : boxplot 이 그려지는 방향 / 가로형 boxplot 은..

데이터 모델링

데이터 모델링과 데이터 모델의 개념 데이터 모델링(Data Modeling) 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정 2개 단계로 이루어짐 : 개념적 데이터 모델링 -> 논리적 데이터 모델링 개념적 데이터 모델링 논리적 데이터 모델링 현실 세계의 중요 데이터를 추출, 개념 세계로 옮기는 작업 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업 데이터 모델 데이터 모델링의 결과물을 표현하는 도구 개념적 데이터 모델 논리적 데이터 모델 사람의 머리로 이해할 수 있도록 현실 세계를 개념적으로 모델링하여 개념적 구조로 표현하는 도구 ex) 개체-관계 모델 개념적 구조를 논리적으로 모델링하여 데이터베이스의 논리적 구조를 표현하는 도구 ex) 관계 데이터 모델 ER..

Scatter Plot

Scatter Plot 두 변수의 상관관계 또는 연관성을 보여줌 code ex) # 데이터: 1,599 samples from Wine Quality Dataset (winequality-red.csv) ● Code Snippet: sns.scatterplot(data=df_red, x="fixed acidity", y="density") sns.regplot(data=df_red, x="fixed acidity", y="density") Q : 변수간 상관관계, (비)선형관계, y의 변동이 x에 종속적인지, 이상치가 존재하는지 산점도의 여러 패턴 * 이분산성 문제의 처리 노이즈가 많은 데이터에 대한 가중치를 낮게 처리하거나 등분산성을 갖도록 y변수 변환 ** 이분산성을 무시할 경우 이분산성을 무시하고 ..

Histogram

Histogram 단일변수 데이터 분포에 대한 요약적 정보를 그래픽하게 보여줌 데이터 중앙(위치), 데이터 퍼짐(범위), 데이터 왜도, 이상치 존재여부, 최빈값 존재여부 등 적절한 분포 모델에 대한 강력한 힌트 Histogram 그리는 법 데이터 값 범위를 일정 크기의 구간(혹은 클래스)으로 나눔 각 구간에 포함되는 데이터 점들의 수를 집계 수직축 : 빈도 / 수평축 : 반응변수 히스토그램의 변형 - 누적히스토그램 - 정규히스토그램 정규화 방법 1) 각 클래스(bin)의 수/전체 데이터수 -> 전체 빈도(높이) 합 = 1 2) 각 클래스(bin)의 수/ 전체 데이터 수 * 구간 크기 -> 전체 면적 합 = 1 code ex) #데이터: 195 samples in zarr13.csv df_zarr = pd..

Run Sequence Plot / Lag Plot

Run Sequence Plot 데이터를 관측시간 순서대로 표시하는 그래프 Q : 위치의 이동이 있는지 / 척도(변동성)의 이동이 있는지 / 이상치가 존재하는지 code ex) #데이터: 50 samples in mavro.csv df_mavro = pd.read_csv(PATH+'mavro.csv') df_mavro['Index'] = df_mavro.index sns.lineplot(x='Index', y="Transmittance", data=df_mavro) sns.scatterplot(x='Index', y="Transmittance", data=df_mavro) Lag Plot 데이터셋 또는 시계열이 랜덤인지 아닌지 검사 랜덤인 데이터에서는 눈에 띄는 구조가 없어야 함 수직축: 𝑌𝑖 for a..