728x90
반응형

머신러닝 16

[pythonML] 회귀- LinearRegression

# LinearRegression 클래스 LinearRegression 클래스는 예측값과 실제값의 RSS 를 최소화해 OLS 추정 방식으로 구현한 클래스이다. class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True,n_jobs=1) -입력파라미터 fit_intercept : intercept(절편) 값을 계산할 것인지 말지를 지정함. (False이면 y축좌표가 0) normalize: True이면 회귀를 수행하기 전에 데이터 세트를 정규화 함. -속성 coef_ : fit() 메서드를 수행했을 때 회귀 계수가 배열 형태로 저장되는 속성. shape =( Target값 개수, 피처 개수) inte..

pythonML 2022.05.09

[pythonML] 부스팅(Boosting) - GBM /AdaBoost

# 부스팅(Boosting) : 여러 개의 약한 학습기를 순차적으로 학습,예측 하면서 잘못 예측한 데이터에 가중치 부여를 통해 오류를 개선해 나가면서 학습하는 방식. 즉, 약한 알고리즘 => 강한 알고리즘 # 부스팅의 대표적인 구현 2가지 1. 에이다 부스트 AdaBoost (Adaptive Boosting) : 오류 데이터에 가중치를 부여하면서 부스팅을 수행하는 알고리즘. 잘못 분류된 오류데이터에 가중치를 계속하여 부여함 => 부여한 가중치들을 결합하여 예측을 수행 2. 그래디언트 부스트 (GBM-Gradiant Boost Machine) : 가중치 업데이트를 경사 하강법(Gradiant)을 이용함 - 경사하강법 : 반복 수행을 통해 오류를 최소화할 수 있도록 가중치의 업데이트 값을 도출하는 기법 분류..

pythonML 2022.04.01

[pythonML] 레이블 인코딩(label encoding) / 원-핫 인코딩(one hot encoding)- 데이터 전처리

# 데이터 전처리 기본 데이터 전처리 사항 결손값 / 문자열 값 처리 이상치 제거 피처 선택 데이터 인코딩 레이블 인코딩 원-핫 인코딩 피처 스케일링 StandardScaler MinMaxScaler # 결측값 -Null값이 얼마 되지 않는다면=> 피처의 평균값, 중앙값, 최빈값 같은 값 넣기 -Null값이 대부분 => 해당 피처 drop 만약 중요도가 높은 피처이고, Null을 피처의 평균값으로 대체할 경우 예측 왜곡이 심할 수 있다면 더 정밀한 대체 값을 선정해야 함 사이킷런의 머신러닝 알고리즘은 문자열 값을 입력 값으로 허용X => 모든 문자열(카테코리형, 텍스트형) 값을 인코딩해서 숫자형으로 변환필수 # 데이터 인코딩 : 레이블 인코딩(label encoding) / 원-핫 인코딩(one hot ..

pythonML 2022.03.04

[pythonML] K-fold / stratifiedKFold - 교차검증

# 교차검증은 언제 사용하는가? 1) 데이터셋이 부족할 때 2) 데이터 클래스가 불균형 할 때 3) 하나의 학습/ 검증 데이터로 이루어진 모델은 학습데이터에만 과적합되었을 가능성이 높음 하지만 여러차례 나누는 교차검증 방식을 통해 전체 데이터 전 범위를 학습하고, 검증 데이터로 성능을 평가함으로써보다 일반화된 모델을 생성할 수 있음. # 과적합 : 모델이 학습데이터에만 과도하게 최적화되어, 실제 예측을 다른 데이터로 하게 되면 예측 성능이 과도하게 떨어지는 것을 의미함 # 교차검증(cross validation) - 과적합 방지! 1. k폴드 교차 검증(K-fold cross vaildation): k개의 데이터 폴드 세트를 만들어서 k번만큼 각 폴드 세트에 학습과 검증 평가를 반복적으로 수행하는 방법이..

pythonML 2022.03.02

[python] 파이썬 클래스 python class

1) 클래스란? 클래스를 이용해 프로그래밍하면 데이터를 조작하는 함수를 하나의 묶음으로 관리할 수 있으므로 복잡한 프로그램도 더욱 쉽게 작성할 수 있다. name="마린" hp=40 damage=5 tank_name="탱크" tank_hp=150 tank_damage=35 def attack(name, location , damage): print("{0} : {1} 방향으로 적군을 공격 합니다. [공격력 {2}]".format(name,location,damage)) attack(name, "1시", damage) attack(tank_name, "1시", tank_damage) 매번 이런식으로 name, hp, damage 를 입력할 수 없으니 class를 이용하여 더욱 쉽게 할 수 있다. ​ 1-1..

python 2022.02.22

[pythonML] 데이터셋분리/학습/예측/평가 - 붓꽃 품종 예측

사이킷런(Scikit-learn)은 파이썬에서 사용할 수 있는 강력한 머신러닝 라이브러리입니다. 사이킷런은 다양한 머신러닝 알고리즘과 유틸리티 함수들을 제공하여 데이터 분석과 예측 모델링을 쉽게 할 수 있도록 도와줍니다. 분류(Classification)는 지도학습(Supervised Learning)의 한 종류로, 주어진 데이터를 미리 정의된 클래스 레이블 중 하나로 분류하는 문제를 말합니다. 이를 위해 분류 모델은 입력 데이터와 해당 데이터의 정답인 클래스 레이블 사이의 관계를 학습하여 새로운 데이터에 대한 클래스를 예측합니다. 붓꽃이란? 붓꽃은 세포핵을 둘러싼 꽃받침(sepal)과 꽃잎(petal)으로 구성되어 있으며, 이러한 특징을 기반으로 붓꽃의 품종을 식별할 수 있습니다. 붓꽃의 품종은 주로 ..

pythonML 2022.02.22
728x90
반응형