데이터 분석가:Applied Data Analytics/용어편

Scikit-learn(사이-킷 런), TensorFlow(텐서플로우)

데이터분석 2025. 3. 2. 11:46

Scikit-learn

scikit-learn은 "사이-킷 런"으로 발음합니다. 여기서 'sci'는 'science(과학)'를 의미하며, 'sy-kit learn'으로 발음합니다.
많은 사람들이 'scikit'이나 'SciKit', 'sci-kit learn' 등으로 잘못 발음하거나 표기하지만, 정확한 프로젝트 이름은 'scikit-learn(사이킷런)'입니다. 과거에는 'scikits.learn'이나 'scikits-learn'으로 불리기도 했지만 현재는 그렇지 않다.

scikit-learn은 파이썬의 대표적인 머신러닝 라이브러리로, 다양한 머신러닝 알고리즘과 모델을 제공.

① 기본 개념

  1. Estimator (추정기)
    • 머신러닝 모델을 의미하며, fit() 메서드를 사용해 학습.
    • 예) LinearRegression(), DecisionTreeClassifier() 등.
  2. Fit (훈련)
    • model.fit(X, y)처럼 사용하며, 주어진 데이터 X와 정답 y를 학습.
  3. Predict (예측)
    • model.predict(X_test)처럼 사용하며, 새로운 데이터에 대해 예측 수행.
  4. Transform (변환)
    • 데이터 전처리나 변환을 수행하는 메서드 (fit_transform(), transform()).
    • 예) StandardScaler()로 정규화(scaler.fit_transform(X)).
  5. Pipeline (파이프라인)
    • 여러 개의 전처리 과정과 모델을 순차적으로 실행하는 방법.
    • 예) Pipeline([('scaler', StandardScaler()), ('model', LogisticRegression())])

② 데이터 관련 용어

  1. Feature (특징, 변수)
    • 머신러닝 모델이 학습하는 입력 데이터.
    • 예) 집값 예측 모델에서 방 개수, 면적 등이 Feature.
  2. Target (목표 변수, 레이블)
    • 예측하려는 값 (지도학습에서 필요).
    • 예) 집값 예측 모델에서 가격.
  3. Feature Scaling (특징 스케일링)
    • 데이터를 일정한 범위로 변환하는 과정.
    • 예) StandardScaler(), MinMaxScaler() 사용.
  4. Train / Test Split (훈련 / 테스트 분할)
    • 데이터셋을 훈련용과 테스트용으로 나누는 과정.
    • train_test_split(X, y, test_size=0.2)
  5. Cross Validation (교차 검증)
    • 데이터를 여러 번 나누어 모델을 평가하는 기법.
    • 예) cross_val_score(model, X, y, cv=5)

③ 모델 평가 관련 용어

  1. Accuracy (정확도)
    • 전체 데이터 중 정답을 맞춘 비율 (분류 문제에서 사용).
  2. Precision (정밀도)
    • 예측을 Positive로 한 것 중에서 실제 Positive인 비율.
  3. Recall (재현율)
    • 실제 Positive 중에서 모델이 Positive라고 예측한 비율.
  4. F1-score (F1 점수)
    • Precision과 Recall의 조화 평균.
  5. RMSE (Root Mean Squared Error, 평균 제곱근 오차)
    • 회귀 모델에서 예측값과 실제값 차이를 측정하는 지표.

TensorFlow

TensorFlow는 딥러닝을 위한 라이브러리로, 주로 신경망 학습에 사용.

  • Tensor: "텐서" (수학 및 컴퓨팅에서 다차원 배열을 의미)
  • Flow: "플로우" (흐름이라는 뜻)

따라서 합쳐서 "텐서플로우"라고, TensorFlow는 텐서(데이터의 구조화된 표현)가 계산 그래프를 따라 흐르는 방식으로 동작하기 때문에 이런 이름이 붙었다.

① 기본 개념

  1. Tensor (텐서)
    • 다차원 배열로 데이터를 표현하는 기본 단위.
    • 예) 스칼라(0차원), 벡터(1차원), 행렬(2차원), 텐서(3차원 이상).
  2. Graph (그래프)
    • TensorFlow 내부에서 연산이 실행되는 구조 (TF 1.x에서 중요, TF 2.x는 즉시 실행 방식 사용).
  3. Session (세션, TF 1.x 기준)
    • 그래프를 실행하는 환경 (sess.run()을 사용했음, TF 2.x에서는 사용하지 않음).
  4. Eager Execution (즉시 실행)
    • TF 2.x에서 기본 설정으로, 코드가 즉시 실행되는 방식.

② 신경망 관련 용어

  1. Layer (레이어)
    • 신경망에서 뉴런들이 모여 있는 층.
    • 예) Dense(128, activation='relu') → 128개 뉴런을 가진 완전연결층.
  2. Neuron (뉴런)
    • 신경망을 구성하는 기본 단위로, 입력을 받아 가중치를 적용하고 활성화 함수를 통해 출력 생성.
  3. Activation Function (활성화 함수)
    • 뉴런의 출력을 결정하는 함수.
    • 예) ReLU, Sigmoid, Softmax 등.
  4. Loss Function (손실 함수)
    • 모델이 얼마나 정확한지 평가하는 함수.
    • 예) categorical_crossentropy, mse 등.
  5. Optimizer (최적화 함수)
    • 손실을 최소화하는 알고리즘.
    • 예) SGD, Adam, RMSprop 등.
  6. Epoch (에포크)
    • 전체 데이터를 한 번 학습하는 과정.
  7. Batch (배치)
    • 한 번에 학습할 데이터의 묶음 크기.
  8. Gradient Descent (경사 하강법)
    • 손실을 최소화하기 위해 가중치를 조정하는 알고리즘.
  9. Backpropagation (역전파)
    • 오차를 역으로 전파해 가중치를 업데이트하는 과정.
SMALL

③ TensorFlow API 관련 용어

  1. tf.keras (케라스 API)
    • TensorFlow에서 제공하는 고수준 딥러닝 API.
  2. Model (모델)
    • 신경망 전체 구조.
    • 예) Sequential(), Functional API 방식으로 정의.
  3. Callback (콜백 함수)
    • 학습 중 특정 동작을 수행하는 함수.
    • 예) EarlyStopping(), ModelCheckpoint().
  4. TensorBoard (텐서보드)
    • 학습 과정을 시각화하는 도구.
  5. Checkpoint (체크포인트)
    • 모델을 저장하고 나중에 불러오는 기능.

정리

  1. Scikit-learn은 머신러닝을 위한 라이브러리로, 주요 개념으로 Estimator, Fit, Predict, Feature, Train/Test Split, Cross Validation 등이 있음.
  2. TensorFlow는 딥러닝을 위한 라이브러리로, Tensor, Layer, Activation Function, Loss Function, Optimizer, Backpropagation, Model 같은 용어를 이해하는 것이 중요.
  3. 두 라이브러리는 머신러닝과 딥러닝을 배우는 데 필수적이며, 각 개념을 정확히 이해하면 모델을 더 효과적으로 구현할 수 있음.
  4. 빠르고 간단한 머신러닝 모델→ Scikit-learn
  5. 복잡한 패턴을 학습하는 딥러닝 모델 → TensorFlow
  6. 데이터 크기와 문제 유형에 따라 선택

    즉, Scikit-learn은 간단하고 해석 가능한 모델이 필요할 때, TensorFlow는 이미지·자연어처럼 복잡한 패턴을 학습해야 할 때 사용하면 된다.


  7. 데이터로 가치를 만드는 Steven, Follow on LinkedIn