본문 바로가기
728x90

AI월드/⚙️AI BOOTCAMP_Section 235

Section 2 종합 회고 SECTION 2 리뷰 01 - Linear Models 02 - Tree Based Model 03 - Applied Predictive Modeling 04 - Project (NBA 게임 결과 예측 머신러닝 모델) 01 - KEYWORD 선형회귀 (Linear Regression) 지도학습 (Supervised Learning) 기준모델 (Baseline Model) (분류문제-타겟의 최빈 클래스) (회귀문제-평균값) (시계열문제-이전 타임스탬프의값) 회귀선 잔차 RSS (Residual sum of squares) (Sum of Square Error) 비용함수 최소제곱회귀 (OLS , Ordinary least squares) 종속변수 (반응변수 , 레이블 , 타겟) 독립변수 (예측변수 , 설명.. 2021. 3. 2.
피드백)NBA 머신러닝 예측 모델 프로젝트_Day40 한줄평 : 모델과의 지나친 사랑은 집착이다 지난 섹션과는 다르게 이번 프로젝트는 개인이 직접 데이터를 선택하고 가설을 설정한 뒤, 머신러닝 모델까지 만드는 과정이였다. 따라서 자연스럽게 나의 평소 관심사를 기반으로 데이터를 선정한 뒤, 머신러닝 모델을 만들게 되었다. 너무 완벽한 모델을 만들고 싶었기 때문에 여러가지 데이터를 혼합하고 싶었고, 결과적으로 총 4일 기간중 데이터 수집과 전처리에 3일을 소요하였다. 마지막 하루동안 머신러닝 모델링을 진행하고, 발표자료를 만들고 발표녹화까지 하다 보니 결과적으로 용두사미의 프로젝트가 된 것 같아 매우 아쉽다. 제출하기 너무 부끄러운 모델과 자료였지만, 감사하게도 동기분들에게 피드백을 받아 회고해보고자 한다. 첫번째는 EDA에서 시각화 하셨던 몇개의 그래프 중,.. 2021. 3. 2.
프로젝트)NBA 머신러닝 예측 모델_Day36~39 ㅍ다시 돌아온 프로젝트 주간. 직접 선택한 데이터를 기반으로 가설을 세우고, 데이터 전처리 등을 통한 뒤 의미있는 머신러닝 예측 모델을 만드는 프로젝트이며 이번에도 중요한 핵심은 프로젝트 발표를 듣는 청자는 '비데이터, 비개발자 직군' 따라서 준비된 내용을 쉽게 잘 전달하는 것도 매우 중요하겠다. 또한 지난번 프로젝트에서 받았던 피드백들을 보완할 것이며, 시간 분배를 미리 하여 급하게 발표영상을 찍는 일이 없도록 하겠다. 자유롭게 데이터를 선택하고, 분석한 뒤 가설을 설정해야 하기 때문에 무엇보다도 해당 데이터에 대한 최소한의 관심과 흥미가 기본적으로 있어야 한다고 판단. 평소 스포츠에 관심이 많기 때문에, 지금 진행중인 미국농구 NBA 데이터를 활용하여 머신러닝 예측모델을 만들어 보고자 한다. 1. 상.. 2021. 2. 22.
부분의존도,Partial Dependence Plot (PDP)_Day34 복잡한 모델은 이해하기 어렵지만 성능이 좋고, 간단한 모델은 이해하기 쉽지만 성능이 부족합니다 복잡한 모델의 요소를 분석하기 위한 방법으로 '특성중요도'가 있는데, 특성중요도를 통하면 어떤 특성이 모델의 성능에 중요하다, 많이 쓰인다를 알 수있다를 알수있습니다 (다만 특성의 값에 따라 타겟값이 증가하는지 감소하는지 등의 어떻게 영향을 구체적으로 미치는지는 알수없습니다) 이를 파악하기 위한 방법이 '부분의존도(PDP)'입니다. 출처 : www.youtube.com/watch?v=21QAKe2PDkk 2021. 2. 21.
Gradient Boost,for Regression_Day33(3) Gradient Boost 는 와 Linear Regression 은 차이가 있으니 유의하기 (classification은 다른편 . part3) Gradient Boost는 Ada Boost와 다른 점이 있다 Gradient Boost는 먼저 타겟의 평균값을 기준으로 Tree를 만든다. Ada Boost 처럼 gradient boost 또한 tree size가 제한되어 있다 Ada boost (2) , Gradinet boost (4 , 8, etc) 이제 Gradient boost 를 활용하여 예측을 진행해보겠습니다 우선 'weight'의 평균값을 구한뒤 (71.2) 타겟값에서 예측값을 뺀 (residual) 값을 구한다 출처 : youtu.be/3CC4N4z3GJc 2021. 2. 21.
AdaBoost,아다부스트,decision tree,random tree_Day33(2) 랜덤포레스트와 다르게 'AdaBoost'는 오직 1개의 노드와 2개의 leaves만 갖는다 stump 의 정의 AdaBoost의 3가지 특징 1) 하나하나 개별로 보면 AdaBoost는 결정트리나 랜덤포레스트에 비해 약한 러닝일수있다. (한가지 조건만 표현할수있기 때문에) 2) 각각의 Stumps에 가중치를 줄 수 있다. 3) 앞의 stump는 뒤의 stump에 영향을 준다 (앞이 에러가 있다면 뒤도 영향을 받는다) AdaBoost를 만드는 방법 1) 우선 Sample Weight 특성을 만들고, 아래 이미지와 같이 모두 동일한 값을 적용한다 (Sample Weight는 가중치의 역할을 하는 듯 하다) 2) 어떤 특성을 가장 두어야 할까? (Sample Weight 값이 지금은 모두 같기 때문에 어떤 특.. 2021. 2. 16.
bootstrap,bagging 복습_Day33 - 오리지널 데이터에서 "랜덤"하게 데이터를 뽑아 새로운 데이터셋'들'을 만듬 - '중복'해서 오리지널 데이터에서 추출해도 상관없음 - n : 오리지널 데이터의 수 , n' : 랜덤하게 추출한 데이터셋의 수 , m : 새로 만든 데이터셋의 수 - n' < n / 보통 60% 정도 추출함 출처 : youtu.be/2Mg8QD0F1dQ 2021. 2. 16.
판다스 groupby 활용법_Day 32 When should I use a 'groupby' in pandas? import pandas as pd drinks = pd.read_csv("http://bit.ly/drinksbycountry") drinks.head() drinks.beer_servings.mean() 106.16062176165804 drinks.groupby('continent').beer_servings.mean() continent Africa 61.471698 Asia 37.045455 Europe 193.777778 North America 145.434783 Oceania 89.687500 South America 175.083333 Name: beer_servings, dtype: float64 drinks.gr.. 2021. 2. 16.
분류 정확도와 불균형, accuracy만 집중했을 때의 문제점_Day 31 정확도에만 모델을 집중하면 생기는 문제는 예를 들어 과학 출간물 중 노벨상을 예측하는 모델을 만든다고 할때 모두 no 라고 하면 99.99%의 정확도로 맞출수 있을 것이다 (수많은 과학 출간물 중 노벨상은 하나 이기 때문에 , 불균형의 문제) 이럴때 FP 와 FN (False Positive , False Negative) 의 가중치를 조정함으로써 모델을 개선시킬수 있다. A 와 B 중 더 맞다고 판단되는 모델은 ? "A" (비록 4개의 잘못된 답이 있지만) A 와 B 중 더 정확도가 높은 모델은 ? "B" (A는 4개의 에러 , B는 2개의 에러) 즉, 정확도와 에러빈도만으로 판단해서는 안될 문제들이 있고 이를 해결하기 위한 가중치, 조정들이 필요하다 출처 : youtu.be/XeJZbCT84Js 2021. 2. 15.
혼동행렬, 정확도, 정밀도, 재현율 한번더정리 분류모델에서 정확도만이 최적의 결정포인트가 아닌 이유는 모든 데이터가 공평하게 나뉘어 있지 않기 때문이다 예를들어 100개의 라벨중 A가 50개 , B가 50개라면 A와 B를 구분하는 분류모델에서 정확도가 중요한 평가지표가 된다 하지만 A가 90개, B가 10개 라벨의 모델이라면 무작정 A라고 분류해도 90%의 정확도를 나타내기 때문이다 그래서 필요한 개념이 혼동행렬, 정확도 , 정밀도 , 재현율의 개념이다 각 요소를 정확하게 이해하는 것이 가장 중요하다 포인트는 !!! 뒤에서 부터 해석 !!! !!!앞은 예측의 맞음과틀림, 뒤는 모델의 예측!!! 백신접종을 예로 들면 TP : 모델의 예측 positive = 백신 맞았을거야 , 예측 True = 예측 맞음 즉, 백신을 맞았을 거라고 예측했고 , 예측이 .. 2021. 2. 9.
결정트리,랜덤포레스트,혼동행렬,교차검증 키워드 개념정리 결정트리 , 랜덤포레스트 , 혼동행렬 , 교차검증 지금 배우고 있는 Section2 의 개념이 모두 새롭기 때문에 개념들이 뒤섞이기 시작했다 조금이나마 편안하게 , 마음의 안정을 위해 지금껏 공부한 키워드를 적고, 이해가 안가는 부분을 표시해보자 (붉은색으로 된 글씨는 한번에 이해가 가지 않아 다시 봐야겠다고 표시해둔 것. 중요하다는 뜻이아님) 01 - 결정트리 (Decision tree) 사이킷럿 파이프라인 from category_encoders import OneHotEncoder from sklearn.impute import SimpleImputer from sklearn.preprocessing import StandardScaler from sklearn.linear_model import .. 2021. 2. 8.
Precision,Recall,F-Measure,정밀도,재현율,정확도란?_Day28(2) 분류문제에서 95% 정확도는 명확하게 설명이 가능하나 회귀문제에서 95% 정확도는 과연 어떨까? 600,000$ 실제 가격 집을 400,000$ 로 예측했다면 틀린것인가? 그렇다면 599,999$로 예측했다면 이는 틀린것인가 맞은것인가? 이번 강의에서는 classification 만 다루기로 한다 아래와 같은 단순 정확도 계산은 모순 존재 만약 10,000 켤레의 신발을 모두 나이키 신발이 아니라고 구분한다고 가정하면 (10,000 켤레중 나이키 신발은 오직 10 , 나머지는 전부 다른 브랜드의 신발이라면 정확도는 99.9%) 잘못되었다. 그래서 아래와 같이 정밀도와 재현율을 사용한다 (Precision & Recall) 10,000켤레 (9,990 + 10) 신발을 모두 나이키 신발이 아니라고 했을경우.. 2021. 2. 8.
Confusion Matrix, 혼동행렬_Day28 혼동행렬이란 무엇인가? 혼동하지 말고 보자 혼동행렬이란? 규칙 집합에 의하여 임시적인 사례들에 대한 올바른 분류와 그릇된 분류의 수를 기록하는 데 사용된 행렬. True Positive , True Negative, False Positive , False Negative 4개의 의미 True와 False는 예측이 정확했는 지를 뜻 Positive와 Negative는 예측의 Y와 N을 의미합니다. 실제와 예측을 행렬로 만들어 표현한다는 건 알겠는데 어떤 식으로 활용되는지에 대해서는 나와있지 않다 우선 다음 강의로 넘어가자 출처 : youtu.be/wpp3VfzgNcI 2021. 2. 8.
Random Forest,랜덤포레스트_Day27 Step 1 : Create a "Bootstrapped" dataset. 주어진 데이터셋과 동일한 데이터셋을 만든다 내용은 랜덤하게 채운다 (포인트! 동일한 데이터셋이 중복되는걸 허락한다) Step 2 : Create a decision tree using the boostrapped dataset, but only use a random subset of variables(or columns) at each step. 원래 결정트리에서는 모든 열을 반영하지만, 랜덤포레스트에서는 랜덤하게 일부만 열 선택 가능 (나중에 얼마나, 어떤 열을 선택해야 하는지에 대해서도 배움) (첫번째 노드의 선택을 랜덤하게 했듯이, 두번째 노드도 첫번째를 제외한 항목중 랜덤하게 선택해서 넣는다) 한번더 정리하면 랜덤트리를 .. 2021. 2. 5.
결정트리,Decision Trees_Day26 결정트리 classification의 결과는 카테고리형이 될수도 , 숫자형이 될수도 있다 좌측의 질문순서와 우측의 질문순서가 꼭 같을 필요 없다 (우측에 도넛먹는지 물어봤다고 좌측에 도넛먹는지 먼저 물어볼 필요 없다는 뜻) Rood Node : The Root : 가장 상단의 시작점 (화살을 주기 시작하는 점) Internal Nodes : Nodes : 중간 지점의 연결점 (화살을 받기도 하고 , 주기도 한다) Leaf Nodes : Leaves : 가장 마지막의 최종점 ( 화살을 받기만 한다) = classification의 결과 (좌) 좌측에 주어진 데이터로 결정트리를 만들려고 한다. 어떤 조건이 가장 상단에 들어가야 하는가? (우) 각 조건별 타겟값의 분포를 보면 어느하나 100%로 구분되는 상황.. 2021. 2. 4.
Logistic Regression,Maximum Likelihood_Day24(4) Logistic regression 그래프의 y축을 log(Odd)로 바꿔 Linear regression 그래프의 모양처럼 바꾸는 작업 우선 진행 (방법 khalidpark2029.tistory.com/90) 최적의 모델을 찾기 위해서는 잔차를 활용하여 least square를 찾아야하지만 위쪽으로 무한대 , 아래쪽으로 무한대인 상황에서 잔차를 확이나기 어려움 그래서 사용하는 방법이 Maximum Likelihood 이다 가상의 직선 위 오리지널 데이터 투영 전부 투영한 y값을 가지고 p 값을 찾아 그래프화 파랑색은 obese , 빨간색은 obese가 아닌 (즉 1-파랑색) 따라서 총 likelihood는 파랑색의 likelihood * (1-파랑색의 likelihood) 모든 수를 곱해서 나온 수가 .. 2021. 2. 4.
Logistic Regression ,Coefficients_Day24(3) 로지스틱에서 Coefficient에 대해 알아보자 (좌) Linear regression에서 (이론상) 타겟y값은 어떤 값이든 될수있다 (우) Logistic regression의 y값은 0~1 사이의 확률값으로 표현된다 (좌) Linear regression 의 확률값을 log(Odd) 처리한뒤 우측그래프 (new y 축) (우) 최종적으로 좌측의 linear regression을 linear regression의 그래프처럼 변환됨 y = -3.48 + 1.83*weight 해당 그래프가 최적이라고 가정하였을때 Coefficient . 첫번째 계수 intercept : y절편/ 두번째 계수 : slope : 기울기 (최적의 그래프를 찾는 방법은 다음 장 "Maximum likelyhood"에서 확인) .. 2021. 2. 4.
Logistic Regression,로지스틱_Day24(2) 지금까지 배운 회귀종류는 다음과 같다 추가로 배울 회귀는 'Logistic regression' Regression -> Simple Linear , Multiple Linear Regression -> Ridge , Lasso , Elastic-Net Regression -> Logistic Regression (NEW) 로지스틱은 예측하고자 하는 결과값이 선형이 아니다 (예를 들면 True or False) Logistic regression은 결국 0 과 1 중 어떤값일지에 대한 확률 ,즉 classification 으로 쓰인다 로지스틱은 숫자형 데이터와 카테고리형 데이터 모두 사용가능하다 다만 데이터가 모두 예측에 적절히 사용되는지 확인하는 작업을 거친후 (와드 테스트?) 훈련에 들어간다 Line.. 2021. 2. 4.
Overfitting, train, validation and test_Day24 (영상의 내용을 잘 이해한게 맞다면) training과 validation set 을 지속적으로 오가면서 모델이 overfit 되지만 상관없다 해당 overfit과 error 결과값은 최종값이 아니므로 상관없다 train과 validation을 수없이 오가면서 최종모델을 찾고 마지막 단한번 test모델에 넣어 결과를 찾는다 용어설명 : knob (손잡이, 스위치) 옵션값들을 '다이얼'같은 걸로 조정한다는 뜻으로 사용된걸로 보인다 출처 : youtu.be/4wGquWG-vGw 2021. 2. 3.
Cross Validation(CV)와 lambda , Regression_Day23(5) Ridge , Lasso , Elastic-Net regression을 공부하면서 lambda와 cross validation에 대한 이야기가 계속 나오고 있다 정확하게 cross validation은 어떤 의미인지 알아보기 위해 조금더 플러스로 공부해보기로 하자 BAM!!! 아래와 같이 심장질환 관련 데이터가 주어져있고(좌측) 새로운 환자 정보가 있을때 심장질환 유무를 예측한다고 하자 이제 중요한 부분은 어떤 모델을 사용할 것인가? CV는 어떤 머신이 좋을지 비교할수있도록 도와준다 주어진 데이터를 전부 train으로 쓰고 다시 test로 쓰는 방법 => 테러블 아이디어 주어진 데이터의 75%는 train으로 쓰고 , 남은 25%는 test로 모델을 검증하는 방법 => 굿 아이디어 그럼 75%는 어떻게 .. 2021. 2. 3.
728x90