반응형

PYTHON 33

[빅데이터분석기사] 20 투표기반 앙상블

투표기반 앙상블 여러 분류기를 학습시킨 후 각각의 분류기가 예측하는 레이블 범주가 가장 많이 나오는 범주를 예측하는 방법이다. 사용 방법은 개별 분류기의 최적 하이퍼파라미터를 찾은 후, 투표기반 앙상블로 모델을 만들어 좀 더 좋은 분류와 회귀 예측을 찾는 것이다. 로지스틱모델, 서포트벡터머신, 랜덤포레스트 등 여러 머신러닝 분류기를 수행한 후 예측 범주가 많이 나온 것을 최종 범주로 분류한다. 투표기반 앙상블의 옵션에는 범주 기반일 경우 'Hard Learner' 확률을 기반으로 결정할 경우 'Soft Learner'를 선택한다. scikit-learn 투표기반 앙상블은 사이킷런의 ensemble에 있다. 이 중 분류는 VotingClassifier, 회귀는 VotingRegressor을 사용한다. Vo..

자기계발/Python 2022.06.23

[빅데이터분석기사] 19 랜덤포레스트

랜덤포레스트(Random Forest) 학습 데이터로 여러 의사결정트리를 구성하여 분석하고 이를 종합하는 앙상블(ensemble) 기법이다. 의사결정나무 수십~수백개가 예측한 분류나 회귀값을 평균낸 모델로 이해하면 된다. 랜덤포레스트 과정은 ① 데이터에서 부트스트래핑 과정을 통해 N개의 샘플링 데이터 셋 생성 ② 각 샘플링된 데이터셋에서 임의의 변수 선택 후, M개의 총 변수들 중에서 sqrt(M) 또는 M/3개 ③ 의사결정트리들을 종합하여 앙상블 모델을 만들고 OOB error를 통해 오분류율을 평가 이다. scikt-learn 랜덤포레스트는 사이킷런의 ensemble 안에 있다. 이 중 RandomForestClassifier가 분류 알고리즘, RandomForestRegressor가 회귀 알고리즘이..

자기계발/Python 2022.06.22

[빅데이터분석기사] 18 의사결정나무

의사결정나무 의사결정 규칙을 나무구조로 도표화하여 관심대상이 되는 집단을 몇 개의 소집단으로 분류하거나 특정 값을 예측하는데 활용되는 방법이다. 결과를 직관적으로 도식화하여 볼 수 있고, 어떻게 분류되는지 알 수 있다는 장점이 있다. 하지만 분류되는 단계가 많아지면 이해하기 어려워지고, 데이터에 따라 결과가 안정적이지 못하다는 단점이 있다. 주로 특성치가 많지 않고 최종 알고리즘을 도출하기 전 탐색적으로 주요한 분류 변수가 어떤 것인지 확인하는데 사용된다. scikit-learn 의사결정나무는 사이킷런의 tree 안에 있다. 이 중 DecisionTreeClassifier가 분류 알고리즘, DecisionTreeRegressor를 회귀 알고리즘으로 사용한다. 의사결정나무분석에서 분류의 경우 기준은 'gi..

자기계발/Python 2022.06.22

[빅데이터분석기사] 17 서포트 벡터머신

서포트 벡터머신(Support Vector Machine) 일반적으로 성능이 뛰어난 알고리즘이다. 데이터 크기가 중간크기 이하, 여러 변수를 기준으로 분류하는 다소 복잡한 과제에 적합한 머신러닝 기법이다. 레이블 법주를 선형적으로 구분하거나 비선형적으로 분류하는 선 혹은 초평면을 찾는 것이 핵심 과제이다. 두 집단을 가장 멀리 떨어뜨리는 최적선을 찾는다. scikit-learn 서포트 벡터머신은 사이킷런의 svm안에 있다. 분류 알고리즘으로 SVC(Support Vector Classification) 회귀 알고리즘으로 SVR(Support Vector Regression)을 대표적으로 사용한다. SVC에서는 C가 가장 중요한 하이퍼파라미터이며, 'kernel'도 중요하다. kernel은 'kernel=..

자기계발/Python 2022.06.22

[빅데이터분석기사] 16 인공신경망

인공신경망 인간의 뉴런구조와 활성화 작동원리를 근간으로 input(자극)과 ouput(반응)과의 연관을 구현한 알고리즘이다. 중간에 은닉층(hidden layers)과 노드(nodes)들을 깊고(deep) 넓게(wide) 두어 특성치로부터 분류와 회귀를 더 잘할 수 있도록 특징추출 및 분류 단계를 확장하는 역할을 할 수 있도록 한 모델이다. 입력층과 출력층 사이에 은닉층을 몇 개를 둘 건지, 은닉층에 노드를 얼마나 둘 것인지, 학습률 등 많은 파라미터가 있다. 양이 굉장히 방대하기 때문에 모두 다루지 못하고 결과 돌려보면서 간단히 실습하는데 의의를 둔다. scikit-learn 인공신경망은 사이킷런의 neural_ntework 안에 있다. 이 중 분류 알고리즘은 MLPClassifier, 회귀 알고리즘은..

자기계발/Python 2022.06.21

[빅데이터분석기사] 15 나이브 베이즈

나이브베이즈(Naive Bayes) 사건 B가 주어졌을 때 사건 A가 일어날 확률인 P(A|B), 조건부 확률과 베이즈 정리를 이용한 알고리즘 나이브(Naive)는 예측에 사용되는 특성치(X)가 상호 독립적이라는 가정하에 확률 계산을 단순화하기 위해 나이브(단순/순진한 가정)이라고 이름이 붙은 것이다. (모든 특성치들이 동등한 역할) 베이즈(Bayes)는 특성치(X)가 클래스 전체의 확률 분포에 대비하여 특정 클래스에 속할 확률을 베이즈 정리를 기반으로 계산한 것이다. 설명이 어려워서 그냥 그러려니 하고 넘어감 scikit-learn 분류문제에 사용되는 나이브베이즈는 사이킷런의 naive_bayes에 있다. 그 중 분류 문제에서는 가우시안 나이브베이즈(GaussianNB) 알고리즘을 주로 사용한다. Ga..

자기계발/Python 2022.06.21

[빅데이터분석기사] 14 K-최근접이웃법(KNN)

K-최근접 이웃법(K-Nearest Neighbor) 데이터들 간의 거리를 측정하여 가까운 k개의 다른 데이터의 레이블을 참조하여 분류하는 방법 주로 유클리디안 거리 계산법 또는 민코브스키 방법을 사용한다. (민코브스키 방법이 디폴트) 최적의 K수는 일반적으로 3에서 10 범위 내에서 찾으며, K값이 작을수록 정교한 분류와 예측이 가능하다. K값이 너무 작으면 과대적합 문제가 발생할 수 있으며, 너무 커도 과소적합 문제가 발생할 수 있기 때문에 적절한 K값을 찾는 것이 중요하다. (K값을 찾기 위해 그리드탐색 혹은 랜덤탐색을 적용한다) KNN은 모델기반 알고리즘이 아닌 케이스기반 알고리즘이다. 입력되는 데이터에 따라 결과와 성능이 크게 달라지며, 새로운 데이터를 학습하는 시간이 오래 걸려 실시간 머신러닝..

자기계발/Python 2022.06.21

[Python] 기본16. 예외 고급

예외 객체 예외와 관련된 정보가 저장된 객체를 말한다. 다음과 같은 형태로 사용할 수 있다. try: 예외가 발생할 가능성이 있는 구문 except 예외의 종류 as 예외 객체를 활용할 변수 이름: 예외가 발생했을 때 실행할 구문 예외 구분하기 except 구문 뒤에 예외의 종류를 입력해서 예외를 구분할 수 있다. 예외가 발생했을 때 예외 정보를 수집하면 프로그램을 개선하는데 도움이 된다. Exception 객체를 사용하면 어떤 에러가 발생하는지 확인 가능하다. try: 예외가 발생할 가능성이 있는 구문 except 예외의 종류 A: 예외A가 발생했을 때 실행할 구문 except 예외의 종류 B: 예외B가 발생했을 때 실행할 구문 except 예외의 종류 C: 예외C가 발생했을 때 실행할 구문 excep..

자기계발/Python 2022.03.16

[Python] 기본15. 구문 오류와 예외

오류의 종류 1) 프로그램 실행 전에 발생하는 오류 → 구문 오류(syntax error) 문자열 따옴표를 제대로 닫지 않아 프로그램 시작이 아예 안되는 오류 2) 프로그램 실행 중에 발생하는 오류 → 예외(exception) 또는 런타임 오류(runtime error) 프로그램이 일단 실행된 다음 실행 중 발생하는 오류 기본 예외 처리 예외를 처리하는 방법에는 두 가지 방법이 있다. * 조건문을 사용하는 방법 → 기본 예외 처리라고 부름 * try 구문을 사용하는 방법 기본 예외 처리(조건문 사용) #정수입력 number_input_a = int(input("정수 입력> ")) #원 둘레, 넓이 구하기 print("원의 반지름:", number_input_a) print("원의 둘레:", number_..

자기계발/Python 2022.03.10

[Python] 기본14. 파일 처리 open(),close(),with 키워드

파일처리 파이썬엔 파일 관련된 처리를 하는 표준 함수가 기본으로 제공된다. 기본으로 제공되어 처리할 수 있는 파일은 2종류(텍스트 파일, 바이너리 파일)인데 텍스트 파일에 관련된 내용을 정리할 예정이다. 파일 열고 닫기 * open( ) 함수 파일 객체 = open(문자열: 파일 경로, 문자열: 읽기 모드) 모드 설명 w write 모드(새로 쓰기 모드) a append 모드(이어서 쓰기 모드) r read 모드(읽기 모드) * close( )함수 파일 객체.close( ) file = open("basic.txt", "w") file.write("Hello, Python Programming!") file.close() 위 코드는 txt파일을 열고 간단한 글을 작성하는 예제이다. 이 코드를 실행하면 내..

자기계발/Python 2022.03.09
반응형