ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 머신러닝 알고리즘별 개념 비교 및 초보자용 설명
    기술과 산업/AI 2025. 5. 21. 13:02
    728x90

    머신러닝 알고리즘별 개념 비교 및 초보자용 설명

    선형 회귀 (Linear Regression)

    항목 설명

    개념 예: "광고비를 얼마나 쓰면 매출이 얼마나 나올까?"처럼 수치를 예측하는 데 사용
    R 예시 parsnip::linear_reg()
    Python 예시 sklearn.linear_model.LinearRegression()
    실습 데이터 advertising.csv - TV, Radio, Newspaper 광고비와 매출의 관계
    초보자 설명 “Y = aX + b”라는 수학식. X(광고비)가 커지면 Y(매출)이 어떻게 변하는지 ‘선’으로 설명하려고 하는 모델입니다.

    결정 트리 (Decision Tree)

    항목 설명

    개념 "고객이 이탈할까 아닐까?", “가격대는 얼마쯤일까?”를 규칙 기반으로 나누며 예측
    R 예시 parsnip::decision_tree()
    Python 예시 sklearn.tree.DecisionTreeRegressor / Classifier
    초보자 설명 데이터의 조건을 따라 "Yes/No"로 분기하며 내려가는 나무 구조입니다.
    # Python 예제
    from sklearn.tree import DecisionTreeRegressor
    from sklearn.datasets import load_diabetes
    from sklearn.model_selection import train_test_split
    
    X, y = load_diabetes(return_X_y=True)
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    
    tree = DecisionTreeRegressor(max_depth=3)
    tree.fit(X_train, y_train)
    print("예측값:", tree.predict(X_test[:3]))
    

    랜덤 포레스트 (Random Forest)

    항목 설명

    개념 여러 개의 결정 트리를 만들고 그 평균으로 예측하는 방식 → 과적합 방지
    R 예시 parsnip::rand_forest()
    Python 예시 sklearn.ensemble.RandomForestRegressor
    초보자 설명 숲은 나무보다 더 똑똑합니다. 여러 트리를 만든 후, 다수결 or 평균을 내서 안정적인 예측을 합니다.

    XGBoost / Boosted Trees

    항목 설명

    개념 에러가 나는 부분에 집중해서 점점 모델을 정교하게 개선하는 방식
    R 예시 boost_tree() (tidymodels 기반), xgboost 패키지
    Python 예시 xgboost.XGBRegressor
    초보자 설명 이전 모델의 실수를 보완하는 방식으로 학습하며, 매우 강력하고 대회에서 자주 사용됩니다. 다만, 튜닝은 어려움.

    3. 실습 예시 요약

    회귀 문제 예시 (R / Python 공통)

    • 데이터: Advertising.csv
    • 목표: TV 광고비로 매출 예측
    • Python 예시:
    import pandas as pd
    from sklearn.linear_model import LinearRegression
    
    df = pd.read_csv("Advertising.csv")
    X = df[["TV"]]
    y = df["Sales"]
    
    model = LinearRegression()
    model.fit(X, y)
    
    print("기울기:", model.coef_)
    print("절편:", model.intercept_)
    
    • R 예시:
    library(tidymodels)
    
    data <- read.csv("Advertising.csv")
    model <- linear_reg() %>% 
      set_engine("lm") %>%
      fit(Sales ~ TV, data = data)
    
    summary(model)
    

    클러스터링 예시 (Python)

    from sklearn.cluster import KMeans
    from sklearn.preprocessing import StandardScaler
    import matplotlib.pyplot as plt
    
    # 가상의 고객 데이터
    X = [[20, 40000], [25, 50000], [30, 60000], [35, 65000], [40, 70000]]
    scaler = StandardScaler()
    X_scaled = scaler.fit_transform(X)
    
    kmeans = KMeans(n_clusters=2, random_state=42)
    kmeans.fit(X_scaled)
    
    print("클러스터 할당:", kmeans.labels_)
    

    마무리 요약

    항목 R 장점 Python 장점

    시각화 ggplot2, Shiny plotly, seaborn, Dash
    워크플로우 tidymodels, dplyr의 직관적인 문법 scikit-learn, pandas의 통합성
    배포 및 자동화 Plumber, Shiny Server FastAPI, Flask, Streamlit, MLFlow
    입문 난이도 문법은 비교적 쉽고 문서도 풍부 생태계가 크고 산업에 널리 쓰임

     

    728x90
Designed by Tistory.