본문 바로가기
728x90
반응형

머신러닝16

[데이터 불균형][해결방안] Random UnderSampling 분류문제에서 우리가 예측하고자 하는 값(target)이 불균형이라면, 그 상태로 모델을 학습시킨다면 recall, precision 성능지표가 매우 낮게 나올 것입니다. 이진분류로 예를 들면 target : 0의 값이 target : 1의 값보다 압도적으로 많다면 0에 대해서는 충분히 학습이 되겠지만 1에 대해서는 충분히 학습되지 못해 1을 잘 예측하지 못하게 되고 recall, precision이 낮아지게 되는 것입니다. 따라서 Target이 불균형이라면 균형을 맞춰 균형있는 학습을 할 수 있게 해야합니다. 그 방법으로는 크게 2가지가 있습니다. - oversampling : 낮은 비중을 차지하는 클래스의 값을 더 많이 생성해 높은 비중의 클래스 값에 맞추는 기법 - undersampling : 높은 .. 2022. 2. 11.
[변수선택법] 릿리(Ridge) 라쏘 (Lasso) 엘라스틱 넷(Elastic Net) 1. 릿지, 라쏘, 엘라스틱 넷이란? 회귀모델에 규제를 가하는 방식인데요!! 규제를 통해 설명력이 좋은 변수는 남기고 좋지 않은 변수는 버리는 방식의 변수선택 개념입니다. 릿지: L2 규제를 사용!! -> 설명력이 낮은 변수를 0으로, 특성 무력화 라쏘: L1 규제를 사용!! -> 설명력이 낮은 변수를 0에 가깝게, 특성들의 영향력 감소 엘라스틱: 릿지 + 라쏘 적절히 조합!! 일부 특성이 중요하다면 릿지모델을!!, 특성의 중요도가 전체적으로 비슷하다면 라쏘 모델을!! 애매하면 둘을 적절히 조합해서 엘라스틱 넷을!! 사용하면 됩니다. 2. 릿지, 라쏘, 엘라스틱 넷 회귀모델 구현 - 데이터 확인- 데이터는 캐글에 있는 NBA 파이널 경기 데이터를 사용했어요!! 총 220개의 데이터이고 변수는 24개이고 .. 2022. 2. 2.
[머신러닝][파이썬] Random Forest Regressor(회귀) 안녕하세요. 오늘은 파이썬을 통해 RandomForestRegressor를 구현해 보도록하겠습니다. 데이터는 야구 데이터이며, 종속변수는 팀의 득점입니다. 사실 득점을 예측하는 것은 안타수나 타점이나 기타 등등 다른 변수와 상관관계가 높아 쉽게 예측할 수 있을 것이라고 생각하실 수도 있습니다. 하지만 여기서 팀의 득점은 앞으로의 미래, 즉 아직 경기정보가 없는 팀의 득점을 예측하는 것입니다. 따라서 그날의 경기정보로 그날의 결과를 학습하는 것이 아니라 이전의 경기정보로 그 후의 결과를 매칭해서 학습하는 것입니다. 이렇게 하면 전날 경기정보로 다음날 혹은 그 후 미래의 예측값을 뽑아낼 수 있습니다. 1. 모듈 불러오기 1 2 3 4 5 6 7 8 from sklearn.ensemble import Rand.. 2022. 1. 26.
[머신러닝][파이썬] Random Forest Classifier(분류) 안녕하세요. 오늘은 파이썬을 통해 RandomForestClassifier를 구현해 보도록하겠습니다. 데이터는 2017-2018년 쏘카의 고객정보와이용내역을 병합한 데이터입니다. 1. 데이터 불러오기 1 2 3 import pandas as pd pd.options.display.max_columns = 100 data = pd.read_csv("crm.csv") cs 전체적인 코딩은 이전 DecisionTreeClassifier 글과 비슷합니다. 먼저 pandas를 활용해 display 옵셥을 바꿔서 더 많은 컬럼을 보여주도록한 후 csv파일을 불러왔습니다. 2. 레이블 인코딩, Train/Test 분리, 불균형 처리 1 2 3 4 5 6 7 8 9 10 #레이블 인코딩 from sklearn.prep.. 2022. 1. 25.
[머신러닝][앙상블/배깅][개념] 랜덤포레스트(Random Forest) 1. 랜덤포레스트 랜덤포레스트란? 랜덤포레스트의 사전적 의미는 "다수의 결정 트리들을 학습하는 앙상블 방법"입니다. 조금 더 쉽게 얘기하면 포레스트(Forest), 숲을 이용한 분석방법이죠. 의사결정나무가 하나의 결정 트리라면 랜덤 포레스트는 무작위로 수많은 나무들을 만들고 학습하는 알고리즘입니다. 집단지성이라는 말이 있듯이, 한 명보다는 두 명이 낫고 두 명보다는 여러명이 낫겠죠? 따라서 하나의 의사결정나무에서 생기는 과적합이나 낮은 성능의 문제점을 보완할 수 있습니다. 2. 배깅 앙상블 기법에는 크게 세 가지 종류가 있습니다. (보팅, 배깅, 부스팅) 이 중 랜덤포레스트는 배깅의 대표적인 알고리즘입니다. 배깅이란? bootstrap aggregating의 줄인말로 bootstrap을 통해 resamp.. 2022. 1. 20.
[머신러닝][파이썬]의사결정나무(DecisionTreeRegressor) 오늘은 캐글의 CarPrice_Assignment data를 가지고 회귀트리(DecisionTreeRegressor)를 구현해보겠습니다. 1. 모듈 및 데이터 불러오기 1 2 3 4 5 6 7 8 9 import pandas as pd import numpy as np from pydotplus import graph_from_dot_data from sklearn.tree import export_graphviz from IPython.display import Image # CART Tree 그림 import pydotplus import os df= pd.read_csv("CarPrice_Assignment.csv") cs 기본적으로 pandas, numpy 와 모델 시각화를 위한 모듈만 불러오고 .. 2022. 1. 19.
728x90
반응형