본문 바로가기
반응형

개발 Tools92

머신러닝 앙상블 보팅(Voting) 앙상블 학습은 보팅, 배깅, 부스팅 등 여러 기법이 있다. 그중에 보팅 기준으로 공부해보겠다. 보팅은 기본적으로 여러 개의 분류기를 사용하여 각각의 분류기 결과를 투표하여 예측을 한다. 보팅(Voting) 보팅이랑, 서로 다른 알고리즘을 가진 분류기의 조합이다. 무슨 말이냐, 여기서 알고리즘이란 우리가 흔히 알고 있는 결정 트리나, knn, 로지스틱 같은 걸 의미한다. 이렇게 다른 알고리즘을 사용하여 분류기를 조합한다. 보팅에는 하드 보팅과 소프트 보팅이 있다. 하드 보팅이란, 각각 분류기의 결괏값 중 가장 많은 걸 따른다. 즉, 다수결의 원칙을 따른다. 예를 들어 5개의 분류기 중에 3개가 "사람"이라 판단했고 2개가 "원숭이"이라고 판단했다면 최종 결론은 "사람"으로 내린다. 소프트 보팅이란, 분류기.. 2021. 8. 6.
머신러닝 결정트리 (지니계수, 정보 이득 지수, min_samples_split, min_samples_leaf, max_features, max_depth, max_leaf_nodes, graphviz) 결정 트리는 하나의 스무고개 같은 느낌이다. 하나하나 조건에 맞게 데이터를 나눈다. 한번 나눌 때마다 최대한 많이 나누야 적게 나누고 원하는 결과를 빨리 얻을 수 있다. 스무고개에서 20번 다 물어보고 맞추는 거보다. 10번째에 맞추는 게 더 빠르기 때문이다. 조금 다르게 예를 들면 0~100 사이의 숫자를 맞출 때 만약 정답이 32라 하면, 우린 첫 번째로 50보다 큰지 작은지 물어보는 게 합리적이다 생각한다. 10보다 큰지 작은지 묻는다면 도박을 하는 것과 같다. 이처럼 결정 트리에도 분류하는 방법이 있는데 기준은 2가지 방법이 있다. 지니 계수 첫번째로 지니 계수를 이용한다. 지니 계수란, 불평등 지수를 나타내는데 0~1 사이의 값으로 평가된다. 0이면 가장 평등하고 1은 불평등함을 나타낸다. 다시.. 2021. 8. 2.
pandas 행열 이름 바꾸기 (rename) 우린 행과 열의 이름을 바꾸고 싶을 때가 있다. 이때 pandas에서 아주 간단하게 바꿀 수 있다. 데이터 프레임 생성 먼저 임의로 데이터 프레임을 만들어 보겠습니다. import pandas as pd index = [2019, 2020, 2021] columns = {"계절": ["여름", "여름", "가을"], "온도": [36, 37, 40]} df = pd.DataFrame(columns, index=index) print(df) 출력 계절 온도 2019 여름 36 2020 여름 37 2021 가을 40 열을 딕셔너리로 주어집니다. 행 이름 변경 행을 우린 index라고 칭합니다. 우린 행 이름을 변경할 건데. "이름을 바꾸다 = rename"입니다. 행을 2019에서 "2019년"으로 2020.. 2021. 7. 27.
머신러닝 성능 평가 지표 종류 ( 정확도(accurcy), 혼돈 매트릭스(confusion_matrix), 재현률(recall), 정밀도(precision), F1 score, ROC, AUC ) 성능을 평가하는데 여러 지표를 사용합니다. 하나만 가지고 평가할 순 없기 때문입니다. 각각의 지표별 특징을 얘기하려 합니다. 혼돈 매트릭스 (confusion matrix) 혼돈 매트릭스 또는 오차 행렬이라고도 합니다 이건 성능 지표는 아니고 지표들이 이 혼돈 매트릭스의 조합으로 이루어집니다. 혼돈 매트릭스의 표는 이렇습니다. T = True F = False N = negative P = positive 이렇게 표로 주어집니다. 표를 보고 여주는 코드도 있습니다. from sklearn.metrics import confusion_matrix, classification_report confusion_matrix(정답, 예측) classification_report(y_test, y_predict) 정.. 2021. 7. 22.
머신러닝 preprocessing(데이터 전처리) ( classes_, LabelEncoder, get_dummies) 데이터를 보면 대부분은 쓸 수 없습니다. 정렬되지 않은 게 이 세상의 데이터이죠, 데이터 사이언스는 이런 데이터를 정제하는 능력을 갖춰야 합니다. 이런 업무를 데이터 전처리라고 합니다. 분석하고자 하는 모든 건 숫자로 바꿔줘야 합니다. 문자는 인식할 수 없기 때문입니다. 데이터 전처리에는 크게 두 가지가 있습니다. 1. 레이블 인코딩 2. 원핫 인코딩 레이블 인코딩 먼저 라이브러리를 불러옵니다. from sklearn.preprocessing import LabelEncoder import pandas as pd 예시를 리스트에 담아서 fit 시키고 transfrom 시켜보겠습니다. items = ["tv", "냉장고", "컴퓨터", "전자레인지", "믹서", "선풍기", "믹서"] encoder = L.. 2021. 7. 20.