Scikit-learn
scikit-learn은 "사이-킷 런"으로 발음합니다. 여기서 'sci'는 'science(과학)'를 의미하며, 'sy-kit learn'으로 발음합니다.
많은 사람들이 'scikit'이나 'SciKit', 'sci-kit learn' 등으로 잘못 발음하거나 표기하지만, 정확한 프로젝트 이름은 'scikit-learn(사이킷런)'입니다. 과거에는 'scikits.learn'이나 'scikits-learn'으로 불리기도 했지만 현재는 그렇지 않다.
scikit-learn은 파이썬의 대표적인 머신러닝 라이브러리로, 다양한 머신러닝 알고리즘과 모델을 제공.
① 기본 개념
- Estimator (추정기)
- 머신러닝 모델을 의미하며, fit() 메서드를 사용해 학습.
- 예) LinearRegression(), DecisionTreeClassifier() 등.
- Fit (훈련)
- model.fit(X, y)처럼 사용하며, 주어진 데이터 X와 정답 y를 학습.
- Predict (예측)
- model.predict(X_test)처럼 사용하며, 새로운 데이터에 대해 예측 수행.
- Transform (변환)
- 데이터 전처리나 변환을 수행하는 메서드 (fit_transform(), transform()).
- 예) StandardScaler()로 정규화(scaler.fit_transform(X)).
- Pipeline (파이프라인)
- 여러 개의 전처리 과정과 모델을 순차적으로 실행하는 방법.
- 예) Pipeline([('scaler', StandardScaler()), ('model', LogisticRegression())])
② 데이터 관련 용어
- Feature (특징, 변수)
- 머신러닝 모델이 학습하는 입력 데이터.
- 예) 집값 예측 모델에서 방 개수, 면적 등이 Feature.
- Target (목표 변수, 레이블)
- 예측하려는 값 (지도학습에서 필요).
- 예) 집값 예측 모델에서 가격.
- Feature Scaling (특징 스케일링)
- 데이터를 일정한 범위로 변환하는 과정.
- 예) StandardScaler(), MinMaxScaler() 사용.
- Train / Test Split (훈련 / 테스트 분할)
- 데이터셋을 훈련용과 테스트용으로 나누는 과정.
- train_test_split(X, y, test_size=0.2)
- Cross Validation (교차 검증)
- 데이터를 여러 번 나누어 모델을 평가하는 기법.
- 예) cross_val_score(model, X, y, cv=5)
③ 모델 평가 관련 용어
- Accuracy (정확도)
- 전체 데이터 중 정답을 맞춘 비율 (분류 문제에서 사용).
- Precision (정밀도)
- 예측을 Positive로 한 것 중에서 실제 Positive인 비율.
- Recall (재현율)
- 실제 Positive 중에서 모델이 Positive라고 예측한 비율.
- F1-score (F1 점수)
- Precision과 Recall의 조화 평균.
- RMSE (Root Mean Squared Error, 평균 제곱근 오차)
- 회귀 모델에서 예측값과 실제값 차이를 측정하는 지표.
TensorFlow
TensorFlow는 딥러닝을 위한 라이브러리로, 주로 신경망 학습에 사용.
- Tensor: "텐서" (수학 및 컴퓨팅에서 다차원 배열을 의미)
- Flow: "플로우" (흐름이라는 뜻)
따라서 합쳐서 "텐서플로우"라고, TensorFlow는 텐서(데이터의 구조화된 표현)가 계산 그래프를 따라 흐르는 방식으로 동작하기 때문에 이런 이름이 붙었다.
① 기본 개념
- Tensor (텐서)
- 다차원 배열로 데이터를 표현하는 기본 단위.
- 예) 스칼라(0차원), 벡터(1차원), 행렬(2차원), 텐서(3차원 이상).
- Graph (그래프)
- TensorFlow 내부에서 연산이 실행되는 구조 (TF 1.x에서 중요, TF 2.x는 즉시 실행 방식 사용).
- Session (세션, TF 1.x 기준)
- 그래프를 실행하는 환경 (sess.run()을 사용했음, TF 2.x에서는 사용하지 않음).
- Eager Execution (즉시 실행)
- TF 2.x에서 기본 설정으로, 코드가 즉시 실행되는 방식.
② 신경망 관련 용어
- Layer (레이어)
- 신경망에서 뉴런들이 모여 있는 층.
- 예) Dense(128, activation='relu') → 128개 뉴런을 가진 완전연결층.
- Neuron (뉴런)
- 신경망을 구성하는 기본 단위로, 입력을 받아 가중치를 적용하고 활성화 함수를 통해 출력 생성.
- Activation Function (활성화 함수)
- 뉴런의 출력을 결정하는 함수.
- 예) ReLU, Sigmoid, Softmax 등.
- Loss Function (손실 함수)
- 모델이 얼마나 정확한지 평가하는 함수.
- 예) categorical_crossentropy, mse 등.
- Optimizer (최적화 함수)
- 손실을 최소화하는 알고리즘.
- 예) SGD, Adam, RMSprop 등.
- Epoch (에포크)
- 전체 데이터를 한 번 학습하는 과정.
- Batch (배치)
- 한 번에 학습할 데이터의 묶음 크기.
- Gradient Descent (경사 하강법)
- 손실을 최소화하기 위해 가중치를 조정하는 알고리즘.
- Backpropagation (역전파)
- 오차를 역으로 전파해 가중치를 업데이트하는 과정.
SMALL
③ TensorFlow API 관련 용어
- tf.keras (케라스 API)
- TensorFlow에서 제공하는 고수준 딥러닝 API.
- Model (모델)
- 신경망 전체 구조.
- 예) Sequential(), Functional API 방식으로 정의.
- Callback (콜백 함수)
- 학습 중 특정 동작을 수행하는 함수.
- 예) EarlyStopping(), ModelCheckpoint().
- TensorBoard (텐서보드)
- 학습 과정을 시각화하는 도구.
- Checkpoint (체크포인트)
- 모델을 저장하고 나중에 불러오는 기능.
정리
- Scikit-learn은 머신러닝을 위한 라이브러리로, 주요 개념으로 Estimator, Fit, Predict, Feature, Train/Test Split, Cross Validation 등이 있음.
- TensorFlow는 딥러닝을 위한 라이브러리로, Tensor, Layer, Activation Function, Loss Function, Optimizer, Backpropagation, Model 같은 용어를 이해하는 것이 중요.
- 두 라이브러리는 머신러닝과 딥러닝을 배우는 데 필수적이며, 각 개념을 정확히 이해하면 모델을 더 효과적으로 구현할 수 있음.
- 빠르고 간단한 머신러닝 모델→ Scikit-learn
- 복잡한 패턴을 학습하는 딥러닝 모델 → TensorFlow
- 데이터 크기와 문제 유형에 따라 선택
즉, Scikit-learn은 간단하고 해석 가능한 모델이 필요할 때, TensorFlow는 이미지·자연어처럼 복잡한 패턴을 학습해야 할 때 사용하면 된다.
데이터로 가치를 만드는 Steven, Follow on LinkedIn
'데이터 분석가:Applied Data Analytics > 용어편' 카테고리의 다른 글
P-value vs Posterior Tail-Area Probability (0) | 2025.03.17 |
---|---|
피어슨 상관계수 vs 스피어만 순위 상관계수 (0) | 2025.03.17 |
GCP란? (0) | 2025.01.19 |
CTE (Common Table Expression) 란? (0) | 2025.01.16 |
A/B 테스트 설계(A/B Test Design) 란? (1) | 2025.01.15 |