머신러닝
-
🤖 사이킷런으로 시작하는 머신러닝_01머신러닝 2024. 2. 26. 21:51
사이킷런(Scikit-learn)은 파이썬에서 사용할 수 있는 머신러닝 라이브러리로, 간단하고 효율적인 도구를 제공하여 머신러닝 알고리즘을 쉽게 적용하고 평가할 수 있다. - 사이킷런 특징 > 사이킷런은 일관된 API를 제공하여 모델의 학습, 예측 및 평가를 간단하게 수행할 수 있다. 이를 통해 사용자가 다양한 모델을 쉽게 비교하고 조정할 수 있다. 일관된 API를 제공한다는 것은 모든 머신러닝 모델이 동일한 형식으로 구현되어 일관된 방식으로 동작한다는 것을 의미한다. 1. 일관된 메서드 사용 : 모든 모델은 'fit()' 메서드를 사용하여 학습하고, 'predict()' 메서드를 사용하여 예측한다. 또한 모든 모델은 'score()' 메서드를 사용하여 성능을 평가한다. 이러한 일관된 메서드 사용으로 인..
-
🤖 ML 코드 입문 - 교차 검증 및 StartifiedKFold머신러닝 2024. 2. 26. 20:41
머신러닝에서 모델의 성능을 평가하기 위해선 교차 검증이 중요하다. 일반적으로 단순히 학습 데이터와 테스트 데이터를 나누어 모델을 평가하는 것보다 교차 검증을 사용하는 것이 더 신뢰할 수 있는 결과를 제공한다. 이를 통해 모델의 일반화 성능을 더 정확하게 예측할 수 있다. 교차 검증은 주어진 데이터를 여러 번 반복해서 나누고, 각 반복에서 모델을 학습 및 평가하는 방식이다. 이러한 반복적인 과정을 통해 모델의 성능을 평균화하여 보다 일반화된 성능을 추정할 수 있다. Stratifield K-Fold 교차 검증은 기존의 K-Fold 교차 검증에서 각 폴드가 원본 데이터의 클래스 비율을 유지하도록 보장한다. 이 방법은 데이터가 불균형하게 분포되어 있는 경우 모델 평가에 더 신뢰할 수 있는 결과를 제공한다. 특..
-
🤖 정확도, 정밀도, 재현율, 특이도, F1 점수?머신러닝 2024. 2. 26. 19:49
정확도, 정밀도, 재현율, 특이도 F1점수는 기계 학습 모델의 성능을 평가하는 데 사용되는 주요 지표들이다. 정확도(Accuracy)는 전제 예측 중 올바르게 예측된 비율을 나타낸다. (정확하게 분류된 샘플의 비율) 모델의 전반적인 성능을 측정하고 평가할 때 사용하며 클래스 간 데이터 불균형이 적고, 모든 클래스가 동등한 중요도를 가질 때 적합하다. -> 다중 클래스 분류 문제에 적합 ex) 암 진단 모델의 정확도는 전체 환자 중 정확하게 암을 예측한 비율을 의미한다. 만약 암 진단 모델의 정확도가 95%라면, 전체 환자 중에서 95%가 올바르게 암을 진단받았음을 의미한다. 정밀도(Precision)는 모델이 양성으로 예측한 것 중에서 실제도 양성인 비율을 나타낸다. 거짓 양성(FP)을 최소화하고자 할 ..
-
🤖 데이터 유출(Data Leakage)와 파이프라인(pipeline)머신러닝 2024. 2. 26. 18:49
일반적인 데이터 유출과 머신러닝에서의 데이터 유출은 각각의 의미와 영향을 가지고 있다. 일반적인 데이터 유출은 보안 위협으로, 개인정보 침해나 기업의 기밀 정보 누출과 같은 심각한 문제를 초래할 수 있는 반면, 머신러닝에서의 데이터 유출은 모델 훈련 과정에서의 문제로, 모델의 성능과 일반화 능력에 직접적인 영향을 미친다. 1. 의도와 발생 원인 : 일반적인 데이터 유출 > 악의적인 목적이나 부주의한 행위에 의해 발생, 해커의 공격, 내부자의 정보 유출, 실수로 인한 잘못된 공유 등의 이에 해당한다. 머신러닝에서의 데이터 유출 > 주로 모델 훈련 과정에서 발생, 훈련 데이터와 테스트 데이터 간의 정보 유출로 인해 모델의 성능이 과도하게 낙관적으로 평가되는 것을 의미한다. 2. 영향과 위협 : 일반적인 데이..
-
🤖Machine Learning_편향과 분산(Bias & Variance)머신러닝 2024. 2. 21. 13:16
마지막으로 회귀 문제를 풀 때, 발생하는 편향과 분산이라는 문제점을 공부하고 이 문제점들을 해결하기 위해 어떤 방법을 취할 수 있는지 알아보자. 01. 학습 데이터 vs 평가 데이터 데이터는 학습 데이터와 평가 데이터로 나눌 수 있는데 모델 학습에 사용되는 데이터 셋은 학습 데이터, 오직 모델의 평가만을 위해 사용되는 데이터셋은 평가데이터라고 한다. 💡평가 데이터는 절대로 모델 학습에 사용되서는 안된다. 학습 데이터셋에 대해 100%의 정확도로 학습하였다고 하더라도 평가 데이터에대해 100% 정확도를 낼 수 있을지는 확신할 수 없다. 그렇다면 평가 데이터에 대한 몇가지 궁금증이 생긴다. - 평가 데이터는 학습 데이터와 같은 분포를 가지는 데이터 셋일까? 우리가 데이터를 제공 받을 때 평가 데이터와 학습 ..
-
🤖Machine Learning_최적화(Optimization)머신러닝 2024. 2. 20. 18:32
최적화를 이해하기 위해 먼저 두 가지 수학적 원리를 간단하게 이해해 보자. 01. 고급 수학 먼저, 편미분은 미분과 같지만 원하는 변수에 대해서만 미분을 하는 것으로 원하는 변수 외의 모든 것들은 상수로 취급한다. 연쇄 법칙(chain rule)은 미분을 한다고 가정했을 때, 새로운 변수 u를 가정하고 dy/dx = dy/du * du/dx가 같다는 법칙이다. 이 두 가지 원리를 가지고 모델의 파라미터에 대해 최적화를 진행한다. 02. 손실 함수 지금까지 어떤 문제를 푸는지, 어떤 모델인지에 대해 정의를 했지만 그 문제에 맞는 손실함수에 대해서도 정의할 수 있어야 한다. 문제에 맞는 손실함수라 함은 회귀문제에 어울리는 손실함수와 분류문제에 어울리는 손실함수가 따로 존재를 한다는 것이다. 먼저, 회귀문제에..
-
🤖Machine Learning_Regression(회귀)머신러닝 2024. 2. 20. 17:30
머신러닝의 지도학습은 회귀와 분류라는 두 가지 문제로 나눌 수 있다. 회귀와 분류의 차이를 입력값, 출력값, 모델 형태로 살펴보자. 회귀(Regression)와 분류(Classification) 입력값에 연속적인 값(실수형), 이산값(범주형) 등 제한 조건이 따로 없지만, 회귀는 출력값으로 연속값(실수형)이 나왔을 때 회귀 문제를 푼다라고 표현하고, 출력값이 이산값(범주형)으로 나온다면 분류 문제를 푼다고 정의할 수 있다. 회귀모델은 연속값의 출력을 하기에 모델의 형태가 우리가 흔히 알고 있는 일반적인 함수의 형태(e.g. y = ax+b)가 되고, 분류 모델은 이산값(범주형)의 데이터를 출력하기에 이진 분류(e.g.'있다/없다'와 같이 클래스의 개수가 2개인 상황)라면 시그모이드(sigmoid) 함수,..
-
🤖Machine Learning?머신러닝 2024. 2. 20. 14:48
머신러닝을 공부하기 전에 머신러닝(Machine Learning)과 인공지능(Artificial Intelligence), 딥러닝(Deep Learning) 간의 차이와 특징이 무엇인지 알고 가자. 인공지능 ⊃ 머신러닝 ⊃ 딥러닝 순으로 포함되는 관계로 인공지능이 가장 큰 범주에 속한다. 인공지능은 사람을 표현하는 기계의 모든 것으로 사람을 흉내 낼 수 있는 기술이나 알고리즘 같은 모든 것을 인공지능이라고 한다. 반면 머신러닝은 전문가가 준 데이터를 기계가 학습하는 것으로 정의할 수 있다. 따라서 머신러닝은 전문가(사람), 데이터, 학습할 기계가 필요하고 사람이 준 데이터를 기계가 학습할 수 있도록 알고리즘을 설계하고 구현하는 것이다. 딥러닝은 머신러닝과 마찬가지로 전문가가 준 데이터를 기계가 학습하는 ..