본문 바로가기
728x90

Drawing (AI)112

Udemy - 머신러닝의 모든 것 (로지스틱 회귀) Logistic Regression 다양한 회귀들에 대해서 배웠다. 그러나 다음과 같은 경우에 어떤식으로 회귀를 진행해야할지 전혀 감이 잡히지 않는다. 원래알고있던 회귀를 이용하면 굉장히 이상한 결과가 나온다. 사실 이런 데이터는 기업에서 본인들의 상품을 선택한 사람에 대한 데이터와 같이 yes or no인 겨우 많이 보일 수 있는 데이터인데 지금까지 배운 지식으로는 어떤 모델을 써야할지 판단할 수 없다. 이때 아래의 sigmoid함수와 수학적 식을 이용하여 만들어진 logistic regression function을 이용할 수 있다. Customer Prediction 고객의 나이와 추정수입을 통해 제품을 구매할 손님인지 구매하지 않을 손님인지 예측을 해보도록 하자 이는 실제 세계에서도 있을 법한 모.. 2023. 3. 26.
Udemy - 머신러닝의 모든 것 (회귀 모델 선택) 최적 모델 선택 데이터 전처리과정은 생략하고 빠진 데이터나 범주 데이터가 없는 완전한 데이터셋을 이용하여 진행하도록한다. 이는 이전에 시계열 데이터 분석 책에서 다루었던 UCI 머신 러닝 저장소의 고전적인 데이터이다. 약 만개의 데이터로 이루어져있는 복합 발전소 데이터이다. 첫번째부터 엔진온도, 배기진공, 주변기압, 상대습도라는 독립 변수(features)와 에너지라는 종속 변수로 이루어진 데이터이다. Source Code 이전까지 배운 다양한 회귀 코드들의 끝에 R squared를 평가하는 코드를 추가하여 어떤 방식의 회귀가 가장 효율적인지 확인한다. from sklearn.metrics import r2_score r2_score(y_test, y_pred) 결과 # Multiple_linear [[.. 2023. 3. 23.
Udemy - 머신러닝의 모든 것 (회귀 모델 성능 평가) R Squared R Squared는 아래와 같이 회귀선 기준으로 계산한 잔차제곱합(SSres)과 평균Y값을 기준으로 계산한 총제곱합(SStot)으로 계산된다. 위의 그래프와 식을 보면 알 수 있듯이 총제곱합은 평균값에 의해 결정된 고정값이므로 R Squared값을 1에 가깝게 만들기 위해 잔차제곱합을 최소화하려고 노력할 것이다. Adjusted R Squared R Squared의 대표적인 문제점은 새로운 feature가 들어올때 발생한다. 예를들어 아래 그림과 같이 x1,x2 feature가 존재하던 다항회귀모델에 새로운 x3 feature가 들어오면 문제가 발생한다. y값에는 변화가 없으니 총제곱합은 일정할텐데 새로운 변수가 들어와 SSres값을 높여서 R Squared값을 높이니 모델은 x3의 가.. 2023. 3. 20.
Google ML crash course (8) Validation Training set과 test set을 이용해 모델 개발을 반복하는 방식은 반복할때마다 학습 데이터를 학습하고 테스트 데이터를 평가하여 그 평가 결과를 사용하여 learning rate와 feature과 같은 다양한 모델 초매개변수의 선택 및 변경사항을 결정한다. 이러한 반복은 비용이 많이 발생하지만 모델 개발에서 중요한 부분이다. 초매개변수 설정은 모델 품질을 크게 향상할 수 있으며, 가능한 한 최상의 품질을 얻을 수 있도록 항상 시간과 컴퓨팅 리소스에 예산을 투자해야 한다. 그러나 여기에는 문제가 있다. Training set에 반복하여 학습할 경우 과적합의 위험이 점점 증가한다는 것이다. 따라서 이러한 문제를 방지하기 위해 Validation set(검증데이터)를 구축한다. .. 2023. 3. 19.
Pytorch Basic Intro 4/1부터 데이터 인텔리전스 연구실에서 학부연구생으로 연구활동에 참여하게 되어서 해당 연구실에서 최소한의 연구를 진행하기 위해 필요한 배경지식을 쌓는 과정의 일환으로 Pytorch에 대해 공부를 하고자한다. 파이토치의 라이브러리나 모듈 문법같은 내용은 아래 첨부한 링크인 위키독스에서 굉장히 잘 정리되어있기 때문에 개념적인 내용이나 새롭게 알게된 내용들 위주로 정리하고자한다. Tensor 딥러닝에서 텐서란, 다차원 배열을 나타내는 데이터 구조이다. 텐서는 기본적으로 스칼라, 벡터, 행렬 등과 같은 다양한 차원의 배열을 나타낼 수 있으며, 딥러닝에서 입력 데이터, 가중치, 편향 등의 모든 데이터를 텐서로 표현한다. 예를들어 딥러닝에서 가중치와 편향을 표현할 때도 텐서를 사용하며, 이러한 텐서들은 .. 2023. 3. 18.
Udemy - 머신러닝의 모든 것 (Random Forest Regression) Random Forest 랜덤 포레스트는 앙상블 학습의 한 버전인데 앙상블 학습에는 그라데이션 부스팅 같은 다른 버전들도 있다. 앙상블 학습은 여러 알고리즘이나 같은 알고리즘을 여러개 조합하여 훨씬 더 강력한 알고리즘을 만드는 것을 의미한다. 이때 랜덤 포레스트는 여러 개의 의사 결정 트리를 결합한 앙상블 기법을 이용했다. 랜덤 포레스트를 단계별로 살펴보자. STEP1: Training set에서 랜덤한 K 데이터 포인트들을 고른다. STEP2: 고른 데이터들에 연관된 의사 결정 트리를 만든다. STEP3: 몇개의 트리를 만들지 결정하고 STEP1,2를 반복하여 여러개의 트리를 만든다. STEP4: 학습된 각각의 트리에서 결과를 받아서 예측 값을 도출한다. (적어도 500개정도의 트리, 즉 500개의 결.. 2023. 3. 18.
Udemy - 머신러닝의 모든 것 (Decision Tree) CART CART는 Classification Trees와 Regression Trees를 모두 포함한 개념이다. 회귀를 공부하고 있었던 만큼 이번에는 Regression Tree에 집중해서 공부해보고자 한다. 위와 같이 데이터들을 어떤 기준에 따라 나누어 가다가 정보 엔트로피라는 복잡한 수학적 개념에 따라 알고리즘이 split을 멈춰야할 때를 파악하고 정보추가를 멈춘다. 이 잎(위와 같은 데이터를 leaf라고 부름)들을 가르는 기준선의 수에 따라 알고리즘에 정보를 더 넣을 수도 있고 넣는 걸 멈출 수도 있다. 4가지 split을 통해 구성된 알고리즘이다. x1 < 20이 기준인 split1 이후에 20보다 큰 값들을 x2 < 170이 기준인 split2로 또 나누고 20보다 작은 값들은 x3 < 200.. 2023. 3. 17.
실전 시계열 분석 - 시계열 데이터 발견 및 다루기(1) 시계열 데이터는 어디서 찾는가 시계열 데이터를 찾기 위해서는 우선 어떤 데이터를 찾아야 하는지 정확히 아는 것이 중요하다. 어떤 자료가 제일 적합할지는 두 가지 목적에 따라 달라진다. 1. 학습과 실험 목적에 맞는 데이터셋 찾기 2. 시간 지향적인 형태가 아닌 데이터에서 시계열 데이터 생성하기 첫번째 목적의 경우 나의 분석이 옳은 것인지 판단할 수 있는 데이터셋을 찾아야한다. 보통 캐글과 같은 대회용 데이터셋이나 저장소 데이터셋이 적절하다. 반면 두번째 목적의 경우 타임스탬프가 찍힌 데이터를 식별하고, 이를 시계열로 변환하고, 다듬고, 또다른 데이터와 결합하여 흥미로운 시계열 데이터를 만들기 위해 다양한 방법을 고안해야한다. 미리 준비된 데이터셋을 찾으려면 시계열 데이터 저장소를 알고 있어야 한다. UC.. 2023. 3. 16.
Udemy - 머신러닝의 모든 것 (SVR) Support Vector Regression 기존의 최소 제곱법은 회귀선을 그리고 점과 회귀선 사이의 거리의 제곱의 합을 최소화하는 방법을 통해 적절한 회귀선을 찾았다면 SVR에서는 ε-Insensitive Tube를 이용한다. 이 튜브는 이름 그대로 튜브 내부의 점들의 오차는 무시한다. 튜브의 세로 길이가 중요하다. 이는 중심선에 수직이 아니라 x1축에 수직으로 측정한다. 모형에 일정 수준의 오차 허용 범위를 제공하는 것이다. 중요한 것은 튜브 외부의 점들이다. 해당 점들의 오차는 튜브중심이 아닌 튜브 그 자체까지의 거리를 통해 연산한다. Support Vector Regression이란 이름도 vector로 표현되는 오차점들이 튜브의 구조를 형성한다고 해서 붙혀진 이름이다. 계산 식은 다음과 같다... 2023. 3. 12.
728x90