728x90
반응형

전체 글 180

앙상블 - 보팅(Voting)

1. 보팅 방법 (voting methods) 하드 보팅(Hard Voting) 소프트 보팅(Soft Voting) 최빈값 평균값 예측한 결괏값들 중 다수의 분류기가 결정한 예측값을 최종 보팅 결괏값으로 선정 만약 레이블 값이 2개일 때, 레이블 1번 과 레이블 2번 중 다수의 레이블로 예측. 분류기들의 레이블 값 결정 확률을 모두 더하고 이를 평균해서 이들 중 확률이 가장 높은 레이블 값을 최종 보팅 결괏값으로 선정. 일반적으로 이 방법을 사용함. 만약 레이블 값이 2개일 때, 레이블 값이 1번인 경우의 확률의 평균과 레이블 값이 2번인 경우의 확률의 평균 중 높은 평균의 레이블로 예측. 일반적으로 하드 보팅보다는 소프트 보팅의 예측 성능이 좋아 더 많이 사용된다. 2. Result Aggregatin..

앙상블(Ensemble)

1. 앙상블 방법들(Ensemble methods) 앙상블은 분류에서 가장 각광받는 알고리즘 방법 중 하나입니다. 딥러닝을 제외한 정형 데이터의 예측 분석 영역에서는 앙상블이 매우 높은 예측 성능으로 인해 많은 분석가와 데이터 과학자들이 사용합니다. (* 딥러닝 : 이미지, 영상, 음성, NLP 영역에서 신경망에 기반한 머신러닝의 종류) 앙상블 학습을 통한 분류는 여러개의 분류기(Classifier)를 생성하고 그 예측을 결합함으로써 보다 정확한 최종 예측을 도축하는 기법을 말하며, 당연히 단일분류기보다 신뢰성이 높은 예측값을 얻는 것이 목표입니다. 배깅 방식의 대표인 랜덤 포레스트(Random Forest)는 뛰어난 예측 성능, 상대적으로 빠른 수행 시간, 유연성 등으로 많은 분석가가 애용하는 알고리즘..

결정 트리의 과적합 (Overfitting) 시각화로 이해하기

결정트리의 과적합 문제를 시각화해 더 자세히 알아보겠습니다. 1. 사이킷런 make_classification 으로 분류의 표본 데이터 생성하기 - hyperparameter = defalt # make_classification 분류를 위한 테스트용 데이터 만들기 from sklearn.datasets import make_classification import matplotlib.pyplot as plt %matplotlib inline plt.title("3 Class values with 2 Features Sample data creation") #2차원 시각화를 위해 피처는 2개, 클래스는 3가지 유형의 분류 샘플 데이터 생성. X_features, y_labels = make_classifi..

Decision Tree Graphviz

▶ Jupyter notebook 과 Google Colab에서 Graphviz 사용하기. (설치 및 사용법) velog.io/@gggggeun1/%EA%B2%B0%EC%A0%95%ED%8A%B8%EB%A6%AC-%EA%B7%B8%EB%9E%98%ED%94%84-exportgraphviz 결정트리 그래프 export_graphviz 1) 프로그램 설치하기https://graphviz.org/download/(설치 시 특별한 설치 디렉터리를 지정하지 않으면 C:\\Program Files\\Graphviz 와 같은 디렉터리에 Graphviz가 설치됨)2) Graphviz 파이썬 래퍼 모듈 velog.io 1. 결정 트리 그래프에 대한 설명 더 이상 자식 노드가 없는 노드는 레이블 값이 결정되는 Leaf n..

결정 트리 (Decision Tree)

결정트리는 머신러닝 알고리즘 중 직관적으로 이해하기 쉬운 알고리즘입니다. 데이터에 있는 규칙을 학습을 통해 자동으로 찾아내 트리(Tree) 기반의 분류 규칙을 만드는 것입니다. if/else를 기반으로 예측을 위한 규칙을 만드는 알고리즘으로 스무고개 게임을 생각해 볼 수 있습니다. 따라서, 데이터의 어떤 기준을 바탕으로 규칙을 만들어야 가장 효율적인 분류가 될 것인가가 알고리즘의 성능을 크게 좌우합니다. 1. 결정트리의 구조 각 가지의 특성에 따라 Node 이름이 있습니다. 데이터 세트에 피처가 있고 이러한 피처를 결합해 규칙 조건을 만들 때마다 규칙 노드가 만들어집니다. 하지만 많은 규칙이 있다는 것은 곧 분류를 결정하는 방식이 더욱 복잡해진다는 얘기고, 이는 곧 과적합으로 이어지기 쉽습니다. 즉, 트..

분류의 평가(Evaluation) (2) F1 score , ROC AUC

- 분류의 평가(Evaluation) (1) Confusion Matrix, Accuracy, Precision, Recall 분류의 평가(Evaluation) (1) Confusion Matrix, Accuracy 머신러닝은 데이터 가공/변환, 모델 학습/예측, 그리고 평가(Evaluation)의 프로세스로 구성되어있습니다. 머신러닝 모델은 여러 가지 방법으로 예측 성능을 평가 할 수 있는데, 이 성능 평가 지표(E gggggeun.tistory.com 🎯 회귀와 분류의 성능평가지표들 지도학습 Baseline (기준모델) Evaluation Metric (성능평가지표) Regression (회귀) 실제값과 예측값의 오차 평균값 MAE , MSE, R^2 Classification (분류) Majorit..

분류의 평가(Evaluation) (1) Confusion Matrix, Accuracy, Precision, Recall

머신러닝은 데이터 가공/변환, 모델 학습/예측, 그리고 평가(Evaluation)의 프로세스로 구성되어있습니다. 머신러닝 모델은 여러 가지 방법으로 예측 성능을 평가 할 수 있는데, 이 성능 평가 지표(Evaluation Metric)는 일반적으로 모델이 분류(Classification)이냐 회귀(Regression)이냐에 따라 다릅니다. 🎯 회귀와 분류의 성능평가지표들 지도학습 Baseline (기준모델) Evaluation Metric (성능평가지표) Regression (회귀) 실제값과 예측값의 오차 평균값 MAE , MSE, R^2 Classification (분류) Majority(최빈값) Accuracy (정확도) Confusion Matrix (오차행렬) Precision (정밀도) Reca..

타이타닉 (분석연습)

* 이번 타이타닉 데이터 분석은 오직 train/test data로만 나눴고, test 결과는 다소 test set에 과적합 되었습니다. 또한 평가지표는 정확도(Accuracy)만 측정되어 정확한 평가가 이루어지지 않았음을 미리 알려드립니다. 1. 분석 배경 1) 데이터 살피기 df = pd.read_csv('train (1).csv') df.head(3) PassengerId : 탑승자 데이터 일련번호 Survived : 생존여부 (0=사망 1=생존) Pclass : 티켓의 선실 등급 (1=일등석 2=이등석 3=삼등석) Name : 탑승자 이름 Sex : 탑승자 성별 Age : 탑승자 나이 SibSp : 같이 탑승한 형제자매 또는 배우자 인원수 Parch : 같이 탑승한 부모님 또는 어린이 인원수 Ti..

Model Selection 모듈(학습/테스트 분리,교차검증)

사이킷런 Model Selection 모듈 1. 학습데이터와 테스트 데이터 세트 분리(train_test_split()) 2. 교차 검증 분할 및 평가 3. 하이퍼 파라미터 튜닝을 위한 다양한 함수와 클래스 제공 >> 더 자세한 코드 github https://github.com/gggggeun/study/blob/main/1.%20%EC%82%AC%EC%9D%B4%ED%82%B7%EB%9F%B0(Scikit_learn)/3.%20Scikit-learn%20Model%20Selection%20%EB%AA%A8%EB%93%88.ipynb gggggeun/study Contribute to gggggeun/study development by creating an account on GitHub. githu..

사이킷런으로 데이터 전처리(결손값,인코딩,스케일)

데이터 전처리(Data Preprocessing)는 머신러닝 알고리즘만큼 중요합니다. 어떻게 전처리해서 어떤 데이터를 입력으로 가지느냐에 따라 결과가 크게 달라지기 때문입니다. 1. 결손값 이 값들은 다른 값으로 변환하던지 없애야합니다. 그럼 어떤 값을 변환해야 하고, 어떤 값을 없애야 할까요? 일반적으로는 아래와 같습니다. Null 값이 많지 않은 Feature : 평균값, 최빈값 등으로 대체 Null 값이 많은 Feature : 해당 Feature 삭제 하지만, 해당 피처의 중요도가 높을 경우엔 단순히 평균값으로 대체하거나 삭제해버리면 옳바른 예측을 할 수 없을 것 입니다. 이럴 경우에는 업무 로직 등을 상세히 검토해 더 정밀한 대체 값을 선정해야 합니다. 결손값은 경우에 따라 데이터 전처리 과정에서..

사이킷런 기반 프레임워크(3) 사이킷런에 내장된 예제 데이터 세트

내장된 예제 데이터 세트 사이킷런에는 별도의 외부 웹사이트에서 데이터 세트를 내려받을 필요 없이 예제로 활용할 수 있는 간단하면서도 좋은 데이터 세트가 내장되어 있습니다. 이 데이터는 datasets 모듈에 있는 여러 API를 호출해 만들 수 있습니다. fetch 계열의 명령은 데이터의 크기가 커서 패키지에 처음부터 저장돼 있지 않고 인터넷에서 내려받아 홈 디렉터리 아래의 scikit_learn_data라는 서브 디렉터리에 저장한 후 추후 불러들이는 데이터입니다. 따라서 최초 사용 시에 인터넷에 연결돼 있지 않으면 사용할 수 없습니다. 지도학습 예제 데이터의 구성 data는 피처의 데이터 세트를 가리킵니다. target은 분류 시 레이블 값, 회귀일 때는 숫자 결과값 데이터 세트입니다. target_na..

사이킷런 기반 프레임워크(2) 사이킷런의 주요 모듈

자주쓰이는 핵심 모듈 위주입니다. 분류 모듈명 설명 예제 데이터 sklearn.datasets 사이킷런에 내장되어 예제로 제공하는 데이터 세트 피처 처리 sklearn.preprocessing 데이터 전처리에 필요한 다양한 가공 기능 제공 (인코딩, 정규화, 스케일링 등) sklearn.feature_selection 알고리즘에 큰 영향을 미치는 피처를 우선순위대로 설렉션 작업을 수행하는 다양한 기능 제공 sklearn.feature_extraction sklearn.feature_extraction.text (텍스트데이터) sklearn.feature_extraction.image (이미지 데이터) 텍스트 데이터나 이미지 데이터의 벡터화된 피처를 추출하는데 사용함. (예를 들어 텍스트 데이터에서 Cou..

사이킷런 기반 프레임워크(1) Estimator, fit(), predict() 메서드

Estimator 이해 및 fit(), predict() 메서드 사이킷런은 API 일관성과 개발 편의성을 제공하기 위한 노력이 엿보이는 머신러닝학습에 최적인 패키지입니다. 사이킷런은 머신러닝 모델 학습을 위해서 fit() 메서드와 학습된 모델의 예측을 위해 predict() 메서드를 제공합니다. 사이킷런에서는 분류 알고리즘을 구현한 클래스를 Classifier로, 회귀 알고리즘을 구현한 클래스를 Regressor로 지칭하고, 이 둘을 합쳐 Estimator 클래스라고 부릅니다.(지도학습의 모든 알고리즘을 구현한 클래스를 통칭함) 이 Estimator 클래스는 fit()과 predcict()만을 이용해 간단하게 학습과 예측 결과를 반환합니다. Scikit-learn class 구현 클래스 Estimator..

사이킷런 특징과 설치법

사이킷런은 파이썬 머신러닝 라이브러리 중 가장 많이 사용되는 라이브러리이다. 파이썬 기반의 머신러닝은 곧 사이킷런으로 개발하는 것을 의미할 정도로 오랜 기간 파이썬 세계에서 인정받았으며, 사이킷런은 파이썬 기반의 머신러닝을 위한 가장 쉽고 효율적인 개발 라이브러리를 제공합니다. 사이킷런 사이트 https://scikit-learn.org/stable/modules/classes.html API Reference — scikit-learn 0.24.1 documentation scikit-learn.org 사이킷런 깃헙 github.com/scikit-learn/scikit-learn scikit-learn/scikit-learn scikit-learn: machine learning in Python. ..

분류(Classification)

1. 머신러닝(지도학습) 지도학습은 레이벨(Label) or 타겟(Target) 이라고 하는 명시적인 정답이 있는 데이터가 주어진 상태에서 학습하는 머신러닝 방식입니다. 지도학습은 2종류로 나뉘는데 회귀(Regression)과 분류(Classification) 입니다. 머신러닝(Machine Learning) 지도학습 분류(Classification) 이산 값 (class labels) 회귀(Regression) 연속 값 (number) 비지도학습 ※ 지도학습의 머신러닝 모델 만드는 과정 학습 데이터(Train data)로 주어진 데이터의 Feature와 Target을 머신러닝 알고리즘으로 학습해 모델을 생성(Fit) 하고, 이렇게 생성된 모델에 새로운 데이터 값(Test data)이 주어졌을 때 미지의..

선형 회귀 분석 종류와 유형 (feat.다중공선성)

여러 가지 회귀 중에서 선형 회귀가 가장 많이 사용됩니다. 이유는 모형의 내용을 사람이 직관적으로 이해할 수 있기 때문이죠! 선형 회귀는 실제 값과 예측값의 차이(오류의 제곱 값)를 최소화하는 직선형 회귀선을 최적화(optimize)하는 방식입니다. 선형모델 종류 선형 회귀 모델은 규제(Regularization) 방법에 따라 다시 별도의 유형으로 나뉠 수 있습니다. Regularization은 일반적인 선형 회귀의 과적합(overfitting) 문제를 해결하기 위해서 회귀 계수에 패널티(Penalty) 값을 적용하는 것을 말합니다. 대표적인 선형 모델은 다음과 같습니다. 선형모델 종류 특징 일반선형회귀모델 (Generalized Linear Regression Model, GLM) 예측값과 실제 값의 ..

회귀 분석을 하는 이유 (feat.회귀선, 회귀 계수)

회귀 분석을 하는 이유 관찰이나 실험으로 얻은 샘플자료(적은 수의 자료)를 분석하고 설명하기 위해서는 그 자료를 잘 표현할 수 있는 '방정식'을 예측해야 합니다. 자료를 가장 잘 설명하는 방정식이란, 원래 자료와의 오차(error)를 가장 적게 만든 식 입니다. 아래 그림의 x와 y의 분포도에 있는 저 선(Regression line)이 바로 '자료를 가장 잘 설명하는 방정식'이 됩니다. 회귀분석에서는 이 선을 '회귀선'이라고 하며, 이 회귀선의 '회귀(방정)식'을 이용하면 독립변수로 종속변수를 예측할 수 있게 됩니다. 아래 그림은 종속변수(price)와 독립변수(sqft_living)의 분포도와 회귀선을 나타낸 그래프입니다. 저 회귀선은 흩어져 있는 잔차들(산포도)을 가장 잘 대표하는 선이죠! 여기서 ..

머신러닝 모델 만들기 (분류분석과 회귀분석)

머신러닝(Machine Learning) 지도학습 분류(Classification) 이산 값 (class labels) 회귀(Regression) 연속 값 (number) 비지도학습 회귀분석(regression)은 머신러닝 알고리즘 중에서도 비교적 이해하기 쉽고, 널리 활용되고 있는 대표적인 알고리즘이며 연속 변수를 예측하는데 주로 활용됩니다. 머신러닝에서는 모형의 예측값인 종속변수에 대한 실제 데이터(답)를 알고 있는 상태에서 학습하기 때문에 지도학습(Supervised learning)으로 분류됩니다. (머신러닝의 지도학습과 비지도학습은 간단하게 예측하려는 답을 알고있나 알고있지 않나로 나뉩니다.) 회귀분석에서의 의미 같은 단어 종속변수 (Dependent) 분석 모델이 예측하고자 하는 목표 예측변수..

728x90
반응형