본문 바로가기
728x90
반응형
SMALL

Data-driven Methodology98

[Data Science] 의사결정 트리 (Decision Tree) (3) 트리 가지치기 (Tree Pruning) 의사결정 트리의 마지막 노드의 개수를 지정하여 트리의 깊이를 조정하는 방법이다. 클래스의 마지막 노드인 잎 노드 (leaf node)의 개수를 개발자가 직접 결정한다. 1개로 이루어진 잎 노드가 많을 경우 과대적합되어 있는 상태에서 잎 노드의 개수와 관계 없이 해당 가지에 불확실성이 너무 높을 경우 의사결정 트리의 성능에 문제를 줄 수 있다. 사전 가지치기 (pre-pruning) 처음 트리를 만들 때 트리의 깊이나 마지막 노드의 최소 개수 등을 사전에 결정하여 입력한다. 데이터 분석가가 하이퍼 파라미터로 모든 값을 입력해야 하는 점이 어려움이 있다. 계산 효율이 좋고 작은 데이터셋에서도 쉽게 작동한다. 사용자가 중요한 속성 값을 놓치거나 과소적합 문제 발생할 수.. 2022. 9. 27.
[Data Science] 의사결정 트리 (Decision Tree) (2) 정보 이득 (Information Gain) 엔트로피를 사용하여 속성별 분류 시 데이터가 얼마나 순수한지 (impurity)를 측정하는 지표를 말한다. 속성별 엔트로피 속성 A로 데이터를 분류했을 때 속성 A가 가진 모든 클래스의 각 엔트로피를 계산한 후, 데이터의 개수만큼 가중치를 준다. 속성별 정보 이득 정보 이득이 크면 클수록 A를 기준으로 데이터를 분류했을 때 얻을 수 있는 정보량이 많다는 뜻이다. A를 기준으로 데이터를 나눌 때 엔트로피가 작다면 해당 속성을 기준으로 데이터를 나누기 좋다고 볼 수 있다. ID3 알고리즘 성장 (grow) : 일반적으로 의사결정 트리를 생성하는 방법을 성장이라고 부른다. 트리 (나무)를 성장시키는 개념이다. ID3 (Iterative Dichotomiser 3) .. 2022. 9. 27.
[Data Science] 의사결정 트리 (Decision Tree) (1) 의사결정 트리 (Decision Tree) 어떤 규칙을 하나의 트리 (tree) 형태로 표현한 후 이를 바탕으로 분류나 회귀 문제를 해결하는 것이다. 데이터에 있는 규칙을 학습을 통해 자동으로 찾아내 트리 기반의 분류 규칙을 만드는 것이다. 머신러닝 알고리즘 중 가장 직관적으로 이해하기 쉬운 알고리즘이다. 머신러닝 모델 중 데이터에 대한 설명성이 존재하기에 효과와 실용성이 가장 좋다. 트리 구조의 마지막 노드에는 분류 문제에서 클래스, 회귀 문제에서는 예측치가 들어간다. 규칙은 ‘if-else’ 문으로 표현이 가능하다. 트리 구조 네모 박스 : 노드 (Node) 루트 노드 (Root node) : 트리의 가장 높은 곳에 위치하고 있는 노드 가지 (Branches) : 노드와 노드를 연결하는 화 살표 규칙.. 2022. 9. 27.
[DataBase] DB Browser for SQLite SQLite  SQLite는 MySQL나 PostgreSQL와 같은 데이터베이스 관리 시스템이지만, 서버가 아니라 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다. 영어권에서는 '에스큐엘라이트'또는 '시퀄라이트'라고 읽는다. 다운로드 DB Browser for SQLite (DB4S) 다운로드 페이지 https://sqlitebrowser.org/dl/에서 자신의 환경에 맞는 최신 버전의 프로그램을 다운로드한다. DB Browser for SQLite는 윈도우, 맥, 리눅스 등 다양한 환경을 지원한다. brew install --cask db-browser-for-sqlite  데이터  시스템 데이터 레이크 (Data Lake): 정형 및 비정형 (소셜, 센서, 이미지, 동영상 등)의 다양한.. 2022. 9. 26.
[Data Science] 이상치 처리 이상치 (Outlier) 극단적으로 값이 크거나 작은 값을 말한다. 데이터 오기입 혹은 특이 현상을 칭한다. 당뇨병 데이터셋 ➢ Pregnancies : 임신 횟수 ➢ Glucose : 포도당 부하 검사 수치 ➢ BloodPressure : 혈압 ➢ SkinThinkness : 삼두근 피부 두께 ➢ Insulin : 인슐린 수치 ➢ BMI : BMI 수치 ➢ DiabetesPedigreeFunction : 당뇨병 가족력 ➢ Age : 나이 ➢ Outcome : 당뇨병 여부 import numpy as np import pandas as pd df = pd.read_csv('Diabetes_Database.csv') for key in ["Glucose","BloodPressure","SkinThickne.. 2022. 9. 26.
[Data Science] 결측치 처리 (2) 범주형 데이터 처리 원핫 인코딩 ➢ 범주형 데이터의 개수만큼 변수를 생성하여 해당 여부를 0 또는 1로 표현 df = pd.read_csv('Medical_dataset.csv') df.head() print(df.dtypes) age float64 sex object bmi float64 smoker object region object children int64 charges float64 dtype: object df_all_columns = pd.get_dummies(df) df_all_columns.head() # 특정 특징만 변경 gender = pd.get_dummies(df[['sex']]) gender.head() bins = [0,10,20,30,40,50,60,70,80,90,101].. 2022. 9. 26.
[Data Science] 결측치 처리 (1) 결측치 (Missing Data) 다른 항목 측정 시 측정되지 않거나, 네트워크 문제로 인해 누락된 값을 말한다. 데이터마다 측정되는 항목 또한 상이하다. 결측치 처리 삭제 특정 행의 데이터를 삭제하거나 결측치가 많은 특징을 삭제한다. 보간 평균값, 최빈값, 중간값 보간 시 훈련 데이터 (training data)를 기준으로 계산하여 검증 데이터 (validation data)나 테스트 데이터 (test data)에 적용 당뇨병 데이터 전처리 import numpy as np import pandas as pd df = pd.read_csv('Diabetes_Database.csv') df.head() 결측치 확인 print(df.isnull().sum()) Pregnancies 0 Glucose 0 B.. 2022. 9. 24.
[Data Science] 데이터 시각화 (4) 파일 불러오기 import pandas as pd import matplotlib.pyplot as plt plt.rcParams["font.family"] = "Malgun Gothic" graph = pd.read_excel("test_data.xlsx", sheet_name = "Sheet1") graph.head(10) 선 그래프 graph.plot(y = ["국어", "영어", "수학"], grid = True, title = "선그래프", color = ["green", "red", "blue"]) plt.show() 산점도 그래프 graph.plot.scatter(x = "반", y = "영어", color = "red", title = "영어 점수 산점도") plt.show() 막대 그래프.. 2022. 9. 22.
[Data Science] 데이터 시각화 (3) 데이터 파일 불러오기 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns plt.rcParams["font.family"] = "Malgun Gothic" df = pd.read_csv("test_data.csv") df.head(10) 데이터 구조 확인 df.info() RangeIndex: 1000 entries, 0 to 999 Data columns (total 13 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 id 1000 non-null int64 1 age 1000 non-null int64 .. 2022. 9. 22.
[Data Science] 데이터 시각화 (2) 히스토그램 (Histogram) 히스토그램 (Histogram)은 ‘변수가 하나인 데이터의 빈도수’를 그래프로 표현하는 것을 말한다. x축을 같은 크기의 여러 구간으로 나누고 각 구간에 속하는 데이터 값의 빈도를 y축에 표시한다. 구간을 나누는 간격의 크기에 따라 빈도와 히스토그램 모양이 변한다. plt.bar(x, y, width, color) (x = 범주, y = 그래프의 높이, width = 그래프 폭, color = 색상) # 막대 그래프 그리기 x = ['사과', '포도', '딸기'] # 항목 데이터 y = [12, 31, 24] # 빈도(크기) 데이터 # 그래프 제목 plt.title("과일 생산량") # 색상은 밝은 파랑, 그래프 폭은 0.5 plt.bar(x, y, color = "lig.. 2022. 9. 22.
728x90
반응형
LIST