KT AIVLE/데이터 분석, ML, DL

[KT AIVLE DX 트랙 7기] 인공지능과 머신러닝

Dori1998 2025. 4. 9. 11:17

KT 에이블스쿨 7기 DX 트랙에 기자단으로 신청하기도 하였고, 복습을 통한 역량을 강화, 습득을 목적으로 작성되었음을 알려드립니다.

 

그럼, 복습 Let's go

 


 

인공지능과 머신러닝의 관계

■ 인공지능(AI, Artificial Intelligence)

 - 인간의 학습, 추론, 문제 해결 능력을 모방하는 기술

 - 광범위한 개념

 - 크게 기계 학습 (Machine Learning, ML), 딥러닝(Deep Learning, DL) 등의 하위 분야를 포함한다.

 

■ 머신러닝

 - 인공지능의 한 분야

 - 데이터를 이용하여 스스로 학습하는 알고리즘을 개발하는 기술

 - 기존의 프로그래밍 방식과 달리, 사람이 직접 명령어를 입력하지 않아도 데이터를 통해 패턴을 학습하고 새로운 데이터를 예측할 수 있음

 

■ 딥러닝

 - 머신러닝의 하위 개념

 - 인간의 신경망을 인공 신경망 (Artificial Neural Network, ANN)을 활용하여 더욱 정교한 학습 수행

 - 딥러닝은 이미지 인식, 자연어 처리, 음성 인식 등의 복잡한 문제를 해결하는 데 강력한 성능 발휘

 

 

기업의 생산성, 효율성, 경쟁력 향상을 위한 프로세스 자동화

1. 다양한 직업 및 업무 프로세스를 자동화

2. 자동화를 통해 생산성을 향상하고, 비용 절감을 통해 일관성 및 규정 준수를 가능하게끔 만듭니다.

3. 다양한 방식으로 구현이 가능합니다.

4. RPA : SW 로봇을 이용하여 단순하거나 복잡한 활동을 사람 대신 수행합니다. 예를 들어 엑셀 파일 처리, 이메일 응답 등을 자동으로 진행하는 등이 있겠네요!

5. AI 기반 자동화 : 기계학습, 영상인식 등 인공지능 기술을 활용하여 문서 분류, 챗봇을 통한 고객 지원, 이미지 분석을 통한 검사 등을 자동으로 진행합니다.

 

머신러닝을 활용하면 무엇이 좋을까?

1. 자동화 기능 : 사람이 직접 규칙을 정의하지 않아도 데이터에서 패턴을 학습하여 자동으로 예측하고, 의사 결정 수행이 가능합니다.

2. 정확한 예측 : 대량의 데이터를 분석하여 인간이 발견하기 어려운 패턴을 찾아내고 높은 정확도의 예측 제공이 가능합니다!

3. 업무 효율성 향상 : 반복적인 업무를 자동화하여 기업의 업무 효율성 향상 및 인건비 절감

4. 맞춤형 서비스 제공 : 사용자의 데이터를 분석하여 개인 맞춤형 서비스를 제공할 수 있습니다. (추천 시스템, 개인화 광고)

5. 빠른 의사 결정 지원 : 실시간 데이터를 분석하여 빠르고 정확한 의사 결정 지원이 가능해집니다. - 금융, 의료, 제조업 등의 다양한 분야에서 활용

 

머신러닝의 3요소 : 데이터, 학습, 모델

데이터(Data) : 머신러닝의 출발점

- 숫자, 텍스트, 이미지, 소리 등 모든 형태의 정보

- 머신러닝 모델은 사람처럼 스스로 생각하는 것이 아니라, 주어진 데이터에서 규칙과 패턴을 찾아 학습하는 방식

 

데이터가 왜 중요할까?

머신 러닝의 성능은 얼마나 좋은 데이터를 사용하느냐에 따라 결정됩니다.

잘 정리된 양질의 데이터는 좋은 모델을 만들 수 있도록 도와주지만, 데이터가 부정확하면 모델의 성능이 낮아집니다.

 

좋은 데이터의 조건

충분한 양의 데이터 데이터가 너무 적으면 모델이 충분히 학습할 수 없음
정확한 데이터 데이터에 오류가 많으면 모델도 잘못된 패턴을 학습함
다양한 데이터 편향된 데이터(특정 유형의 데이터만 포함하는 경우)는 모델이 일반적인 예측을 할 수 없게 됩니다. 

 

학습 (Learning) : 데이터에서 패턴을 찾는 과정

- 학습이란 모델이 데이터를 통해 패턴을 찾고, 새로운 데이터를 예측할 수 있도록 만드는 과정을 의미합니다.

- 컴퓨터는 사람이 직접 가르쳐 주지 않아도, 주어진 데이터를 분석하여 스스로 규칙을 찾아냅니다.

- 예를 들어, 사람이 직접 "고양이는 귀가 뾰족하고, 수염이 있으며 강아지는 귀가 둥글고 짧다."라고 일일이 설명하지 않아도, 머신러닝 모델은 수많은 고양이, 강아지 사진을 학습하면서 "고양이와 강아지를 구별하는 방법"을 스스로 발견합니다.

 

학습의 과정

데이터 입력 머신러닝 모델에 학습할 데이터를 제공한다.
특징 추출 데이터에서 의미 있는 정보를 추출함
패턴학습 머신러닝 모델이 데이터를 분석하고 패턴을 찾음
모델 평가 학습된 모델이 얼마나 정확하게 예측하는지 평가함
최적화 모델의 성능을 향상시키기 위해 추가 학습을 진행함

 

모델(Model) : 데이터와 학습을 연결하는 핵심 요소

- 모델은 데이터에서 학습한 패턴을 기반으로 새로운 데이터를 예측하는 역할을 함

- 쉽게 말하면, 모델은 입력된 데이터를 바탕으로 규칙을 만들고, 새로운 데이터를 보고 정답을 맞히는 프로그램임

 

모델의 역할

모델은 학습한 내용을 바탕으로 입력값을 분석하고 적절한 출력을 생성한다.

수학적으로 표현한다면 [출력 = 모델(입력)]

즉, 모델은 데이터를 입력받아 일정한 규칙을 적용하여 결과를 도출하는 역할을 진행하는 것이라고 이해하면 됩니다.

 

모델의 예시

이미지 분류 모델 사진을 보고 사람이 있는지 없는지를 판별하는 모델
자연어 처리 모델 사용자의 질문을 이해하고, 적절한 답변을 제공하는 챗봇
음성 인식 모델 사람의 음성을 분석하여 텍스트로 변환하는 모델

 

좋은 모델의 조건

일반화 능력 새로운 데이터를 잘 예측할 수 있어야 함
과적합 방지 학습한 데이터에만 과도하게 맞춰져서 새로운 데이터에서 성능이 떨어지지 않아야 함
효율성 너무 복잡하지 않고 빠르게 실행될 수 있어야 함

 

데이터 분할이란?

머신러닝을 모델을 훈련하고 평가하기 위해 전체 데이터를 용도별로 나누는 과정

목적

- 모델이 보지 못한 새로운 데이터에도 잘 작동할 수 있도록 일반화 성능 확보

학습 모델이 패턴을 학습하는 데 사용
검증 하이퍼파라미터 튜닝 및 성능 확인
테스트 최종 성능 평가용

 

일반적인 분할 비율

- Train : 60~80%

- Vailldation : 10~20%

- Test : 10~20%

 

머신러닝: 붓꽃 품종 예측하기

머신러닝 핵심 단계

 1. 데이터 불러오기 및 탐색

 2. 데이터 전처리

 3. 데이터 분할 (Train/Test split)

 4. 모델 선택 및 학습

 5. 모델 예측 및 평가

 

데이터 불러오기 및 탐색
from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
데이터 불러오기
iris = load.iris()
데이터 전처리
iris_df.isnull().sum()
iris_df.info()
데이터 분할
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_label, train_size = 0.8, random_state = 2025)
print(X_train.shape)
print(y_train.shape)
print(X_test.shape)
print(y_test.shape)
모델 선택 및 학습
from sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier(random_state = 11)
model.fit(X_train, y_train) # fit : 모델학습

라이브러리 불러오기

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris

 ※ model_selection에서 train_test_split

 ※ sklearn.datasets 에서 iris 데이터를 불러오기(load_iris)

 

# 붓꽃 데이터 세트를 로딩합니다.
iris = load_iris()

# iris.data는 Iris 데이터 세트에서 피처(feature)만으로 된 데이터를 numpy로 가지고 있습니다.
iris_data = iris.data # x
print(iris_data)

# iris.target은 붓꽃 데이터 세트에서 레이블(결정 값) 데이터를 numpy로 가지고 있습니다.
iris_label = iris.target # y
print('iris target값:', iris_label)
print('iris target명:', iris.target_names)

# 붓꽃 데이터 세트를 자세히 보기 위해 DataFrame으로 변환합니다.
iris_df = pd.DataFrame(data=iris_data, columns=iris.feature_names)
iris_df['label'] = iris.target
iris_df.head(3)

 

데이터 탐색 및 전처리 (EDA & Preprocessing)

- 데이터의 특징을 파악하고, 결측치나 이상치를 확인합니다.

- 범주형 데이터를 숫자로 바꾸거나, 스케일 조정이 필요한 경우 전처리한다.

iris_df.isnull().sum() # 결측치를 파악하고
iris_df.info() # 범주형 데이터를 숫자로 바꿔야 할지 확인한다 (object -> float, int)

 

데이터 분할 (From sklearn.model_selectioon import train_test_split)

- 필요한 라이브러리를 import (train_test_split)

- 학습용(train)과 평가용(test)로 나뉜다.

- random state 설정하기

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_label, train_size = 0.8, random_state = 2025)
print(X_train.shape)
print(y_train.shape)
print(X_test.shape)
print(y_test.shape)

 

모델 선택 및 학습

- 사용할 알고리즘(의사결정나무, KNN)을 선택하고 학습시킵니다.

 

# 0. 모델 라이브러리를 불러오세요
from sklearn.tree import DecisionTreeClassifier




# 1. 모델을 객체화 하세요


model = DecisionTreeClassifier(random_state = 11)



# 2. 학습을 수행하세요

model.fit(X_train, y_train)

 

예측 및 평가

- 학습된 모델로 테스트 데이터를 예측하고, 정확도 등의 지표로 성능을 평가합니다.

- 분류 문제의 성능 측정 중에서 정확도를 기준으로 모델 평가 해봅니다.

# 예측 : predict, 테스트 데이터 (x_test)

pred = model.predict(X_test)
print(pred)


# 정확도로 성능 측정을 위한 라이브러리 import 후, 성능을 출력하세요
from sklearn.metrics import accuracy_score

accuracy_score(pred, y_test) # 예측한 것이랑 y_test랑 비교해봐!