전체 글
-
[머신러닝] 클러스터링의 대표, K-means Algorithm머신러닝 배우기 2023. 12. 12. 12:13
▶︎ K-means Algorithm 이란? → 비지도 학습의 클러스터링 기법 중 하나로, K개의 클러스터로 그룹화 한다. → 같은 클러스터에서는 서로 가깝고, 다른 클러스터끼리는 멀다는 것이 기본 개념이다. ▶︎ 수행 방식 1. K개의 클러스터 중심값을 임의로 선택한다 2. 각 데이터 포인트들을 모든 중심값까지의 거리를 구한 뒤, 가장 가까운 중심값의 클러스터로 할당한다 (거리 계산 시, 보통 유클리디안 거리를 활용) 3. 각 클러스터에 속한 데이터 포인트들의 평균을 계산하여 중심값을 평균값으로 업데이트한다. 4. 데이터 포인트들에 대한 클러스터 할당이 변하지 않을 때까지 (= 업데이트하는 데이터들의 평균값이 거의 움직이지 않고 수렴할 때까지) 2,3을 반복한다. ▶︎ K-means Algorithm의..
-
[머신러닝] HPO 최적의 하이퍼 파라미터 찾기 GridSearch 예제머신러닝 배우기 2023. 12. 11. 22:50
▶︎ HPO (= Hyper-Parameter Optimization) → 하이퍼파라미터 튜닝이나 모델 튜닝으로 불리며, 사람이 지정해줘야하는 하이퍼파라미터를 최적의 조합으로 찾아주는 것을 뜻한다. → 하이퍼파라미터를 잘 찾아야 하는 이유는 하이퍼파라미터가 모델의 학습 과정을 제어하고(과적합을 방지하고) 모델의 성능에 영향을 미치기 때문이다. ▶︎ HPO 기법의 종류 1. Grid Search : 사용자가 후보값들을 정해주고, 모든 경우의 수를 조합하여 교차 검증을 수행하여 최적의 조합을 찾는 방법이다. 가장 널리 사용되고 직관적이다. 2. Random Search : 분포를 지정해주며 컴퓨터가 랜덤하게 파라미터 조합을 선택하여 탐색하는 방법이다. 전통적인 머신러닝보단 딥러닝에서 더 많이 활용된다. 3...
-
[머신러닝] Feature Scaling 피쳐 스케일링. 언제 어떤 Scaler를 써야할까? (Min-Max, 표준화, Robust Scaling)머신러닝 배우기 2023. 12. 11. 21:43
▶︎ 피쳐스케일링이 무엇인가요? → 여러 연속형 피쳐들의 값의 범위들을 일치시키거나 조절하는 것 ▶︎ 피쳐 스케일링을 왜 해야 하나요? → 피쳐들 간에 범위 차이가 클 경우, 일부 알고리즘은 큰 값을 갖는 특성에 민감하게 반응할 수 있습니다. 그래서 모든 특성들에 대해 비슷한 수치 구간 내로 이동시키는 작업을 진행합니다. → 특히 경사하강법을 사용하여 해를 구하는 모델에서는 정규화를 해야합니다. 그 이유를 범위 차이가 큰 두 피쳐의 목적함수에 대한 등치선도를 2차원으로 생각해봅시다. 한쪽으로 긴 타원 형태가 될 것입니다. 두 피쳐의 경사하강의 속도가 다르기 때문에 최적해를 찾기 위해 여러 작업을 거쳐야 합니다. 하지만 정규화하여 원의 형태가 되었다면 두 피쳐에 대한 갱신 속도가 같아지면서 경사하강법을 통..
-
[머신러닝] SVM 서포트벡터머신 쉽게 이해하기머신러닝 배우기 2023. 12. 11. 18:46
▶︎ SVM (Support Vector Machine) 이란? → 클래스를 잘 분류하도록 Margin을 최대화하는 결정 경계면을 찾는 기법 ※ SVM은 옆에 있는 그래프만 머리 속에 넣어두면 됩니다. - 마진 : 데이터 포인트와 결정 경계 사이의 거리 - 서포트 벡터 : 다른 클래스 간에 첨예하게, 가까이 붙어 있는 데이터 포인트. 로, 경계면의 방향과 위치를 정하여 모델의 학습 및 일반화에 중요한 역할을 함 그래프에 SVM 개념이 다 들어가 있습니다. 3개의 단어가 보이시죠? 1. support vectors 2. maximal margin 3. optimal separating hyperplane → 서포트 벡터들을 가장 잘 나누도록 마진을 최대화하는 초평면을 찾는 기법 ▶︎ SVM 쉽게 이해하기 ..
-
[머신러닝] 변수가 모델에 얼마나 큰 영향을 끼치니? 확인하는 두가지 방법 feature importance, permutation importance머신러닝 배우기 2023. 12. 11. 14:03
feature importance permutation importance 의미 각 피쳐가 분할(split)에 기여하는 정도를 계산한 값. 모델이 예측을 수행할 때 얼마나 중요하게 사용되었는지를 나타냄 하나의 피쳐를 무작위로 섞은 후, 섞기 전과 후의 예측 모델 성능이 얼마나 감소하는지를 기반으로 특성의 중요도를 측정. 성능 감소가 클수록 해당 특성이 중요하다고 판단. 사용 모델 주로 트리 기반 모델에서 사용 다양한 모델에 적용 가능 계산 순서 모델 학습 중, 각 피쳐가 분할에 기여한 정도를 계산 학습 이후에 모델의 성능 비교 장점 - 상대적으로 계산이 빠르다 - 각 트리의 분할에서 직접적으로 계산되므로 해석이 용이하다 - 모델의 내부 구조나 동작 방법에 대해 의존성이 낮음 - 다양한 모델에서 사용 가능..
-
[파이썬] 간단하게 라이브러리 버전 확인하는 두 가지 방법파이썬 배우기 2023. 12. 10. 13:54
1. ! pip show 명령으로 Python 패키지에 대한 정보하기 # 라이브러리 버전 확인 방법 1 ! pip show scikit-learn # Name: scikit-learn # Version: 1.3.0 # Summary: A set of python modules for machine learning and data mining # Home-page: http://scikit-learn.org # Author: # Author-email: # License: new BSD # Location: /Users/youjin/anaconda3/lib/python3.11/site-packages # Requires: joblib, numpy, scipy, threadpoolctl # Required-..
-
[파이썬] 한국어 텍스트 데이터 전처리 예제 (1) 토큰화, 클렌징, 빈도수 탐색파이썬 배우기 2023. 12. 10. 13:42
가장 기초적이며 기본적인 데이터 분석은 정형데이터로 부터 시작했습니다. 현재의 분석 기술이나 인프라가 없었을 때, 분석과 연산이 가능한 데이터와 프로그램을 가지고 진행이 되었으며, 판매량, 판매 갯수, 수익 등의 수치 데이터로 시작되었습니다. 하지만 다양한 기술이 발달하고 반정형, 비정형 데이터를 분석할 수 있게 되었습니다. 오늘은 텍스트 분석 예제를 다뤄보며 실습을 해보려고 합니다. 텍스트 데이터 분석은 수치 데이터 분석과는 다르다고 생각하지만, 분석 과정은 크게 다르지 않습니다. 오늘은 한국어 버전 텍스트 데이터 전처리 과정을 공부해보겠습니다. 수치 데이터 텍스트 데이터 문제 정의 회귀, 분류, 이상치 탐지, 시계열 예측 등 감성 분석, 텍스트 분류, 텍스트 생성, 토픽 모델링, 개체명 인식 등 데이..
-
[머신러닝] 하이퍼파라미터와 AutoML머신러닝 배우기 2023. 12. 8. 15:54
머신러닝을 배워서 모델을 학습하는 것은 코드상으로는 간단합니다. 몇 줄 되지 않는 코드로 머신러닝 모델을 사용했다고 할 수 있습니다. from sklearn.ensemble import GradientBoostingClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score, classification_report # (X와 y는 적절한 데이터셋을 사용하도록 수정하세요) # 데이터를 훈련 세트와 테스트 세트로 나눔 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) #..