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

Data-driven Methodology/DS (Data Science)58

[Data Science] 의사결정 트리 (Decision Tree) (1) 의사결정 트리 (Decision Tree) 어떤 규칙을 하나의 트리 (tree) 형태로 표현한 후 이를 바탕으로 분류나 회귀 문제를 해결하는 것이다. 데이터에 있는 규칙을 학습을 통해 자동으로 찾아내 트리 기반의 분류 규칙을 만드는 것이다. 머신러닝 알고리즘 중 가장 직관적으로 이해하기 쉬운 알고리즘이다. 머신러닝 모델 중 데이터에 대한 설명성이 존재하기에 효과와 실용성이 가장 좋다. 트리 구조의 마지막 노드에는 분류 문제에서 클래스, 회귀 문제에서는 예측치가 들어간다. 규칙은 ‘if-else’ 문으로 표현이 가능하다. 트리 구조 네모 박스 : 노드 (Node) 루트 노드 (Root node) : 트리의 가장 높은 곳에 위치하고 있는 노드 가지 (Branches) : 노드와 노드를 연결하는 화 살표 규칙.. 2022. 9. 27.
[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.
[Data Science] 데이터 시각화 (1) 시각화 (Visualization) 인간은 눈 망막 자극이 뇌에 전달될 때 정보의 의미를 파악할 수 있게 진화한 동물이다. 인간은 감각 중의 대부분을 시각에 의존하는 데 일반적으로 시각이 77%, 청각이 13%, 후각이 7%, 나머지 3%는 촉각과 미각이 나뉜다. 빅데이터 시대의 도래로 데이터를 가공하지 않고 눈으로 보고 파악할 수 있는 한계를 넘어섰다. 따라서, 데이터 시각화 (Data visualization)는 매우 효과적으로 정보를 전달하는 수단이 되고 있다. 시각화 라이브러리 내장 라이브러리 Pandas에 내장된 기본 그래프 라이브러리로써 별도의 라이브러리 import 없이 사용 가능하다. Matplotlib Pandas에서 가장 많이 쓰는 라이브러리로써 데이터 프레임을 시각화할 때도 내부적으로.. 2022. 9. 22.
[Data Science] 공공포털 데이터 (9) scatter plot scatter plot은 수치형 데이터가 어디 좌표에 위치하는지 출력할 때 주로 이용된다. 보통은 상관계수, 회귀선을 출력하는데 사용하는데 지리 데이터에서도 사용이 가능하다. 이 scatter plot은 데이터가 어디쯤에 위치하는지를 나타냈지만 정확한 위치는 알기 어렵다. 지역에 따라 다른 색으로 표시한다. Folium Folium map에 직관적으로 지역을 표시 가능하다. # folium 설치 conda install -c conda-forge folium import folium df_seoul_hospital["위도"].mean() df_seoul_hospital["경도"].mean() 처음 folium.Map만 찍으면 세계지도가 나오지만 location과 zoom_start.. 2022. 9. 22.
[Data Science] 공공포털 데이터 (8) 특정 지역만 보기 서울특별시의 데이터만 샘플링을 진행한다. df_seoul = df[df["시도명"] == "서울특별시"].copy() df_seoul.shape 서울시의 구에 얼마나 많은 가게가 있는지 파악한다. df_seoul ["시도명"].value_counts() # bar plot df_seoul ["시도명"].value_counts().plot.bar(figsize=(10, 4), rot=30) # seaborn count plot plt.figure(figsize=(15, 4)) sns.countplot(data=df_seoul, x="시군구명") # matplotlib scatter plot df_seoul[["경도", "위도", "시군구명"]].plot.scatter(x="경도", y=".. 2022. 9. 22.
728x90
반응형
LIST