본문 바로가기
Tech/Python

Data Handling - Data Type

by Jyubaeng2 2023. 8. 3.

Data Type

기계학습에 사용되는 데이터는 크게 다음과 같은 데이터 타입으로 구분할 수 있습니다. 다만 각각의 데이터값들은 기계학습에 그대로 쓰일 수 없으므로 적합한 데이터 전처리를 통해서 인공지능 알고리즘이 이해할 수 있는 값으로 변환을 시켜줘야 합니다.

 

  1. Numerical 데이터 (수치형 데이터):
    • 숫자로 표현되는 데이터로, 연속적인 값 또는 이산적인 값일 수 있습니다.
    • 예시: 주택 가격, 온도, 나이, 시간 등
    • 대부분의 기계학습 알고리즘은 수치형 데이터를 처리하는 데 적합하며, 이러한 데이터는 숫자로 표현된 특성들의 값으로 구성됩니다.

Numerical 데이터 (수치형 데이터) 예제:

import numpy as np
from sklearn import preprocessing

# Numerical 데이터 생성
numerical_data = np.array([[10], [20], [30], [40], [50]])

# Scaler 생성
minmax_scaler = preprocessing.MinMaxScaler(feature_range=(0, 1))

# 데이터 변환
scaled_feature = minmax_scaler.fit_transform(numerical_data)

# Numerical 데이터 출력
print("Numerical Data:")
print(scaled_feature)

숫자형 데이터

 

  1. Categorical 데이터 (범주형 데이터):
    • 명목형과 순서형 두 가지 종류로 나눌 수 있습니다.
    • 명목형 데이터: 이름이나 기호로 표현되며, 순서가 없는 데이터입니다.
    • 순서형 데이터: 순서 또는 계층 구조를 가지는 범주형 데이터입니다.
    • 예시: 성별 (남성, 여성), 학년 (1학년, 2학년, 3학년), 색상 (빨강, 파랑, 녹색) 등
    • 범주형 데이터는 기계학습 모델에 직접 입력될 수 없으므로, 인코딩 작업 (예: 원-핫 인코딩)을 통해 수치형 데이터로 변환되어야 합니다.

Categorical 데이터 (범주형 데이터) 예제:

from sklearn.preprocessing import LabelEncoder, OneHotEncoder

# Categorical 데이터 생성
categorical_data = np.array(['red', 'blue', 'green', 'red', 'yellow'])

# Label Encoding
label_encoder = LabelEncoder()
encoded_data = label_encoder.fit_transform(categorical_data)

# One-Hot Encoding
onehot_encoder = OneHotEncoder(sparse=False)
onehot_data = onehot_encoder.fit_transform(encoded_data.reshape(-1, 1))

# Categorical 데이터 출력
print("Categorical Data:")
print(categorical_data)
print("Encoded Data:")
print(encoded_data)
print("One-Hot Encoded Data:")
print(onehot_data)

범주형 데이터

 

  1. Text 데이터 (텍스트 데이터):
    • 문장이나 단어 등의 텍스트로 이루어진 데이터입니다.
    • 예시: 트위터 텍스트, 뉴스 기사, 이메일 본문 등
    • 자연어 처리 (NLP) 분야에서 많이 사용되며, 텍스트 데이터를 벡터화하여 기계학습 모델에 입력할 수 있도록 전처리가 필요합니다.

Text 데이터 (텍스트 데이터) 예제:

from sklearn.feature_extraction.text import CountVectorizer

# Text 데이터 생성
text_data = [
    'I love machine learning',
    'Natural Language Processing is fascinating',
    'Machine learning models are powerful'
]

# 텍스트 벡터화 (CountVectorizer 사용)
vectorizer = CountVectorizer()
text_vectorized = vectorizer.fit_transform(text_data)

# 텍스트 벡터화 결과 출력
print("Text Data:")
print(text_data)
print("Vectorized Text Data:")
print(text_vectorized.toarray())

텍스트 데이터

 

  1. Image 데이터 (이미지 데이터):
    • 픽셀 값으로 표현된 이미지 데이터입니다.
    • 예시: 디지털 이미지, X-ray 이미지, CCTV 영상 등
    • 컨볼루션 신경망 (CNN)과 같은 딥러닝 모델이 이미지 처리에 많이 사용됩니다.

Image 데이터 (이미지 데이터) 예제:

이미지 데이터의 예제는 여러 이미지를 활용하므로 간단한 코드로 설명하기 어렵습니다. 이미지 데이터를 사용하는 경우 주로 OpenCV, PIL (Python Imaging Library), TensorFlow, 또는 PyTorch와 같은 라이브러리를 사용하여 이미지를 읽고 처리합니다. 자세한 예제와 코드는 추후에 다루도록 하겠습니다.

 

 

  1. Date & Time 데이터 (날짜 및 시간 데이터):
    • 날짜와 시간 정보를 가진 데이터입니다.
    • 예시: 날짜, 시간, 연도, 월, 일, 시간대 등
    • 시계열 데이터 분석이나 기간별 특성 공학 등에서 사용됩니다.

Date & Time 데이터 (날짜 및 시간 데이터) 예제:

import pandas as pd

# Date & Time 데이터 생성
date_data = pd.date_range(start='2023-08-01', periods=5, freq='D')

# Date & Time 데이터 출력
print("Date & Time Data:")
print(date_data)

시계열 데이터

Data Handling - Dates and Times

 

Data Handling - Dates and Times

문자열 데이터를 시계열 데이터로 전환 주어진 문자열 벡터는 날짜와 시간을 나타내고 있으며, 이를 시계열 데이터로 변환하고 싶은 경우 다음과 같은 절차를 따를 수 있습니다: 문자열을 시간

ai-fin-tech.tistory.com

 

기계학습 알고리즘에 데이터를 입력하기 위해서는 주어진 데이터 타입에 따라 적절한 데이터 전처리 과정이 필요합니다. 데이터를 모델에 맞게 변환하여 모델의 성능을 최대한 끌어올리는 것이 중요합니다. 따라서 데이터 타입에 따라 다양한 전처리 기술을 활용하여 데이터를 모델에 적합한 형태로 변환하는 것이 기계학습의 중요한 부분입니다.

댓글