출처: https://astrocosmos.tistory.com/202 [ASTROCOSMOS:티스토리] '데이터' 태그의 글 목록 :: 하나둘셋넷
728x90

[메타코드 강의 후기] 메타코드 머신러닝 입문 부트캠프 - "Validation Data"

메타코드M (metacodes.co.kr)

 

머신러닝 입문 부트캠프ㅣKAIST AI 박사과정

 

www.metacodes.co.kr

안녕하세요 메타코드 서포터즈 5기 송주영입니다.

요즘 날씨가 변덕이 심해서, 나갈 때 항상 작은 우산을 휴대해서 나가고 있네요

다들 몸조리 잘하시길 바랄게요!!

공부하려면 컨디션을 잘 관리하는 것도 필수적이라 느끼고 있어요

강의 리뷰 시작하겠습니다!!

 

Validation Data

하나의 데이터셋을 받는다면, 이를 Train, Valid, Test Data로 나눕니다.

데이터셋을 나누는 목적은 Overfitting Issue를 막기 위함입니다.

Valid Data와 Test Data는 둘다 학습된 모델의 성능을 평가할 때 사용되기 때문에 헷갈릴 수 있습니다.

이 둘의 차이는 학습 과정에 참여하는 지의 여부입니다.

Valid Data는 학습 중간에 검증용으로 사용하며, 모델의 적절한 파라미터를 찾을 때 활용됩니다.

Test Data는 최종 학습이 완료된 모델의 성능을 평가할 때 사용합니다.

 

LOOCV and K-fold cross validation

하나의 데이터셋에 대해서만 검증을 할 경우에는, 보편적으로 높은 성능을 나타내는 모델을 찾는 데에 어려움을 겪을 수 있습니다.

이를 위해 사용하는 것이 LOOCV 방법입니다.

모든 데이터 샘플에 대하여 검증을 하는 것이 목적이며, 이 경우에는 계산 비용이 매우 큰 단점을 갖습니다.

이를 보완하기 위해 고안된 방법이 K-fold cross validation입니다.

K개의 파트로 데이터를 나누어 학습, 검증을 진행하여 적절한 계산 비용 내에서 높은 성능의 모델을 찾는 것이 목적입니다.

 

Regularization

모델의 파라미터 숫자가 많아지면, 모델의 복잡도가 커지게 됩니다.

모델의 복잡도가 커진다면 Bias Error는 줄어들지만, 과적합이 발생하는 문제가 생깁니다.

따라서, 정규화를 통해 중요한 파라미터만 선택하고 모델의 복잡도를 줄입니다.

정규화의 종류에는 Ridge 회귀와 Lasso 회귀가 존재합니다.

 

Ridge Regression

Ride Regression은 제곱합을 활용합니다.

빨간색 원은 $\beta $ 값이 존재할  MSE 값을 표현하고, 중심에서 멀어질수록 Error가 커집니다.

빨간색 원과 파란색 원이 만난 지점이 MSE 값을 최소로 하는 지점입니다.

$\lambda $ 값을 조절하여 $\beta $를 남길 지 버릴지 선택합니다.

 

Lasso Regression

Lasso Regression에 대한 개념입니다.

Lasso Regression은 계수값이 0에 가까운지 여부를 확인하기 위해 정규화 식에 절댓값을 사용하며, 이는 Ridge Regression이 계수의 제곱을 사용하는 것과 차이점을 갖습니다.

Lasso Regression은 절댓값을 사용하므로, 마름모 형태를 보입니다.

빨간색 원과 맞닿은 지점에서 $\beta_{1}$은 값이 존재하지 않기 때문에, 적절한 $\lambda $ 값을 선택함으로써, $\beta_{1}$이 0에 가깝게 되도록 합니다.

 

파라미터 간소화

Lasso가 파라미터 갯수를 줄이는 데에 더 효과적인 모습을 보입니다.

파라미터 갯수를 줄이는 방법에는 $\lambda $ 값을 키우는 것과 지수 값을 낮추는 방법이 존재합니다.

$\lambda $ 값을 키우면 $\beta_{i}$ 값은 그만큼 작아지게 됩나다.

지수를 줄이는 경우, 마름모 그림이 더욱 움푹 패인 형태가 되어 $\beta_{i}$ 값을 최소로 하는 지점과 원이 맞닿게 됩니다.

 

이상으로 강의 리뷰 마치겠습니다!!

글 읽어주셔서 감사합니다

 

728x90
728x90

[메타코드 강의 후기] 메타코드 머신러닝 입문 부트캠프 - "강좌 소개 ~ 기초 수학"

메타코드M (metacodes.co.kr)

 

머신러닝 입문 부트캠프ㅣKAIST AI 박사과정

 

www.metacodes.co.kr

안녕하세요 메타코드 서포터즈 5기로 활동하고 있는 송주영입니다.

SQL과 Python을 연결한 데이터 분석 강의를 마치고 이번에는 머신러닝 입문 강의를 시작했습니다.

인공지능을 배울 때는 기초가 중요하다고 생각해서 만약에 이 분야에 관심이 있으시다면 이러한 입문 강의를 들어보시길 추천드려요!!

강의 리뷰 시작하겠습니다

 

강의목차

인공지능 학습에는 크게 지도 학습과 비지도 학습이 있습니다.

지도 학습은 다시 회귀와 분류 모델로 분류할 수 있습니다.

회귀 모델은 하나의 값을 예측하는 것으로, 입력된 값에 대해 연속형 값을 예측합니다.

분류 모델은 입력된 데이터를 이산형 데이터로 분류합니다.

 

회귀 모델, 분류 모델

회귀 모델과 분류 모델에 대한 보다 자세한 설명입니다.

회귀 모델과 분류 모델 모두 연속값, 이산값을 입력값으로 가질 수 있습니다.

회귀 모델은 출력값이 연속값, 분류 모델은 출력값이 이산값이라는 차이를 갖습니다.

분류의 경우 이진 분류이냐 다중 분류이냐에 따라 사용하는 함수가 각각 시그모이드 함수, 소프트맥스 함수로 나뉩니다.

 

용어 정리 - Feature, Label

데이터는 Feature와 Label로 구성됩니다.

Feature는 데이터의 특징으로 예시를 보면 혈압, 몸무게, 나이 등이 해당합니다.

라벨은 각 데이터에 대한 예측값을 의미합니다. 질병 예측으로 생각해보면, O와 X가 될 수 있습니다.

Feature와 Label은 독립 변수와 종속 변수로도 표현할 수 있습니다.

 

용어 정리 - 입출력, 모델

Input은 모델에 입력되는 값으로 데이터의 Feature 부분입니다.

Output은 모델로부터의 출력값으로 예측 결과를 말합니다.

모델에는 선형 회귀 모델과 비선형 회귀 모델이 있습니다.

비선형 회귀 모델식을 보면 선형 결합식으로 표현이 불가능함을 보입니다.

 

미분, 최솟값

미분은 함수에서 해당 지점의 순간 변화율을 의미합니다.

손실함수는 $(y- \hat{y})^2$ 형태로 표현될 수 있습니다.

손실함수에서 손실값을 최소로 하는 것이 목표입니다.

미분의 성질을 활용한다면 손실함수에서의 최솟값을 구할 수 있습니다.

 

자연상수 e

자연 상수를 이해하기 위하여 1원이 1년 뒤에 + 1원의 성장을 한다는 예시를 보여주셨습니다.

성장 구간을 쪼개지 않았을 때는 최종적으로 2원이 되고, 성장 구간을 한 번 쪼갠다면 2.25원이 됨을 볼 수 있습니다.

마찬가지의 과정을 무한히 수행한다면 값이 2.718에 수렴합니다.

수학에서 중요한 무리수 중 하나이므로 값과 값의 의미를 잘 이해해두어야 합니다.

 

이상으로, 강의 리뷰 마치겠습니다.

이번 수업에서는 인공지능 코딩에 앞서 기초 개념을 다지는 단계였습니다.

인공지능에 대한 깊은 이해를 위해서는 수학이 필수적임을 느낄 수 있는 수업이었습니다.

 

읽어주셔서 감사합니다!!

 

 

 

728x90
728x90

[메타코드 강의 후기] SQL과 Python 연결하고 데이터분석 실습 - "Python과 MySQL 연결, 데이터베이스 생성"

메타코드M (metacodes.co.kr)

 

SQL과 Python 연결하고 데이터분석 실습 - [ 데이터 전처리 / 시각화 ]

 

www.metacodes.co.kr

안녕하세요

메타코드 5기 서포터즈 송주영입니다.

 

저번 주에 통계 기초 올인원 강의를 모두 수강하여 이번에는 "SQL과 Python 연결하고 데이터 분석 실습" 강의를 수강하게 되었습니다.

이 강의는 SQL과 Python을 다룰 수 있는 분들에게 적합한 강의이므로 혹시 이 강의에 관심 있으시면 참고하시면 좋을거 같아요!!

 

강의 리뷰 시작하겠습니다.

 

Mysql.connector

먼저 이 수업을 시작하기에 앞서 Python에서 mysql을 사용할 수 있도록 라이브러리를 설치해야 합니다.

사용할 라이브러리는 Mysql.connector입니다.

"pip install mysql-connector-python" 명령어를 사용하여 라이브러리를 설치할 수 있습니다.

프롬프트 창에서 입력할 수도 있고, 저의 경우에는 VS code에서 설치했습니다.

 

데이터베이스 연결

위에서 라이브러리를 설치했으니 이제 데이터베이스를 연결할 순서입니다.

데이터베이스를 연결하기에 앞서 mysql.connector 를 import 합니다.

기본 코드 구조는 사진에서 확인이 가능합니다.

자신이 사용하던 MySQL의 주소, 이름, 비밀번호를 확인하여 입력하면 됩니다.

 

Python 환경에서의 SQL

Python 환경에서 SQL 질의를 사용하는 방법입니다.

SQL에서와 똑같은 문법을 작성하고 query 변수에 할당했습니다.

Python 환경에서는 데이터프레임을 통해 데이터를 다루었습니다.

데이터베이스의 데이터 또한 유사하게 다룰 것이기 때문에 df 변수에 할당했습니다.

 

데이터베이스 생성

수업에서 사용할 데이터베이스입니다. 주소는 아래와 같습니다.

https://www.mysqltutorial.org/getting-started-with-mysql/mysql-sample-database/

이전에 SQL 수업을 수강하신 분들은 익숙하실 것입니다.

이 수업을 처음으로 선생님을 뵙게 되셨다면 본격적인 수업에 앞서 데이터베이스를 세팅해야 합니다.

 

실행 전 쿼리 체크

Python 환경에서 SQL 질의를 통해 데이터프레임을 생성하기 전에는 항상 SQL 환경에서 쿼리문이 올바르게 동작하는지 확인한 이후에 실행하도록합니다.

Python 환경에서 코드 실행 이후에 확인하는 것보다 SQL 환경에서 점검하는 것이 보다 간편합니다.

쿼리문에서는 세 개의 컬럼을 출력합니다.

count, sum 집계 함수를 사용하여 customerNumber에 따른 원하는 집계 결과를 출력하였습니다.

 

VIP 고객 데이터 분석

고객 데이터를 분석함에 있어서는, 전체 데이터를 통째로 보는 것도 필요하지만 구간별로 나누어서 확인할 필요도 있습니다.

2004년에는 매우 큰 금액을 소비하고, 2005년에는 매우 적은 금액을 소비하였지만 전체 년도를 기준으로 집계를 수행하면 이러한 변화를 알아차리기 힘들게 됩니다.

전년 대비 구매 금액이 큰 구매 고객에게는 이들이 꾸준히 관심을 유지할 수 있도록 해야합니다.

전년 대비 구매 금액이 크게 감소한 고객들을 대상으로는, 이들이 다시 소비를 할 수 있도록 마케팅 전략을 수립해야 합니다.

 

MySQL을 Python에 연결하여 데이터베이스의 데이터를 가져와 분석을 진행하니 흥미로운 경험이었습니다.

Python에서 매번 csv 파일을 읽으면 시간이 오래 걸리는 경우가 생길 거 같기도 한데, 이러한 방법을 알아둔다면 상황에 맞게 보다 유연한 방법으로 데이터를 다룰 수 있을 거라 느꼈습니다.

 

이상으로 강의 리뷰를 마치도록 하겠습니다.

읽어주셔서 감사합니다!!

 

728x90
728x90

KT Aivle School 에이블스쿨 기자단] 12.18(월)~ 12.24(일) 빅프 진행, 산출물 제출, 컨설팅 진행

 

꾸준히 쌓여가는 산출물

 

매주 금요일에는 산출물에 대해 보고서를 제출하고 있다.

 

이번주는 데이터분석, 환경분석서 페이지를 작성하여 제출하는 것이었다.

 

데이터분석의 경우 현재 주제의 모델링 목적, 사용 알고리즘, 모델링 순서 등에 대해 작성하는 내용이었고 환경 분석의 경우에는 고객사, 시장 동향 등의 환경에 대해 작성하는 내용이었다.

 

말로 간단하게 대화를 나눌 때에는 쉽게 생각이 되었지만 글을 직접 작성하는 과정에서 부족한 부분을 찾고 보완할 수 있었던 점이 좋게 느껴졌다.

 

 

12.21(목) 컨설팅 진행

 

 

목요일에는 우리 조가 컨설팅을 진행하는 일자였기 때문에 과제를 진행하면서 중간중간 상담을 진행했고, 나는 3시 15분에 상담을 진행했다.

 

나의 경우 돌아오는 수요일에 면접 일정이 있었기 때문에 원래는 자소서에 대한 상담이 주로 진행되어야 했지만 현재 상황을 말씀을 드림으로써 면접에 대한 상담을 받을 수 있었다.

 

두괄식으로서 표현하는 것과, 1분 자기소개를 할 때 적정 시간과 담아야 할 내용에 대해 배울 수 있었고 예상 인성질문 및 이에 대한 답변의 방향성을 배울 수 있었다.

빅프 진행 중에 도움이 되는 나의 정리본들

 

빅프로젝트를 진행함에 있어서, 빠르게 일을 처리하면서 다음으로 넘어가고 싶은 마음이 있는데 그럴 때마다 내가 현재까지 블로그에 정리해둔 글들이 크게 도움이 되고 있다.

 

두서 없이 짧게 작성된 부분들이 있지만 정말 필요한 내용만 깔끔하게 담겨 있기 때문에 과제 진행에 큰 힘이 되고 있다.

728x90
728x90

SQL IS NULL] 이름이 없는 동물의 아이디

-- 코드를 입력하세요
SELECT ANIMAL_ID
    FROM ANIMAL_INS
    WHERE NAME IS NULL
728x90
728x90

SQL GROUP BY] 카테고리 별 도서 판매량 집계하기

 

-- 코드를 입력하세요
SELECT b.CATEGORY, sum(s.SALES) as TOTAL_SALES
    FROM BOOK b
    INNER JOIN(
        SELECT BOOK_ID, SALES, SALES_DATE
        FROM BOOK_SALES
    ) as s on b.BOOK_ID = s.BOOK_ID
    WHERE s.SALES_DATE >= '2022-01-01' AND s.SALES_DATE < '2022-02-01'
    GROUP BY b.CATEGORY
    ORDER BY b.CATEGORY

 

728x90

+ Recent posts