프로그래밍 언어를 처음 배울 때 "Hello, World!"를 출력하듯, AI/ML을 처음 배울 때는 타이타닉의 생존자를 예측해야 한다. 언젠가 해야지 해야지 생각만 하다가 그냥 확 질러버렸다.
역시 Kaggle이 짱짱이다. 바로 이것을 해볼 것이다.
https://www.kaggle.com/competitions/titanic
근데 Kaggle을 한 번도 사용해 본 적이 없어서 아래 튜토리얼을 봤다. 여기서 기본 Kaggle 사용법을 알 수 있다. (코딩하는 법은 안 나온다.)
https://www.kaggle.com/code/alexisbcook/titanic-tutorial
"Join Competition"누르는 것부터, 데이터 불러오고, 아주 간단한 모델 사용해서(복붙해서) 답을 내고 제출하는 것까지 Kaggle 프로젝트에 "참여하는" 일반적인 과정을 보여주니 처음이라면 꼭 보자!
근데 이렇게 했는데도 완전 처음이라서 차라리 잘 만들어둔 것을 봐야겠다 싶었다.
역시 아주 좋은 예시가 있었다. 이제 우린 이걸 통해서 한 땀 한 땀 코드를 따라가며 Kaggle 프로젝트에서 "코드를 작성하는" 일반적인 과정을 알 수 있다.
https://www.kaggle.com/code/gusthema/titanic-competition-w-tensorflow-decision-forests
하나씩 살펴보자!
나 진짜 chatGPT 나온 이후로 코딩을 몇 주 전에 처음 했는데 진짜 신세계다,, 예전에는 어떤 블로그의 ㅈㄴ 옛날 글 뒤져가면서 가독성 개망한 거 읽느라 힘들었는데,,, 암튼
해당 글에서 여러분들은 이런 것들을 배울 수 있어용~
먼저 "Imports Dependencies"를 하자. (이번 글은 여기서 끝난다.)
Dependencies는 코드가 제대로 돌아가기 위해 필요한 외부 코드, 라이브러리, 모듈을 의미한다. 코드를 작성할 때 처음부터 끝까지 다 작성하는 것은 비효율적일 뿐만 아니라 가독성도 떨어지기 때문에 외부의 기능들을 끌어다가 내 코드에 가져다 쓰는 것이다.
모듈(Module)은 특정 기능을 수행하는 코드들을 하나의 파일로 묶은 것을 의미한다.
패키지(Package)는 여러 모듈을 모아놓은 디렉터리(폴더)를 의미한다.
라이브러리(Library)는 여러 모듈과 패키지를 합친 더 큰 집합이다.
이렇게만 보면 패키지랑 라이브러리의 경계가 모호해 보이는데 이를 어떻게 구분하는지 의문이 들 수 있다. 그래서 물어봤다!
지칭하기 편하려고 개발자들이 부르는 용어에 불과하다. 예시를 보면 알겠지만 그냥 더 큰 게 라이브러리라고 보면 된다.
아무튼 처음에 import를 주루룩 한다.
import numpy as np
numpy는 "사칙연산"을 하기 위해 사용하는 라이브러리다. 그럼 굳이 왜 얘를 가져다 쓰냐?
얘는 특별히 배열과 행렬 연산에 최적화되어 있기 때문이다. C로 구현됐기 때문에 파이썬으로 처리하는 것보다 빠르다.
게다가 벡터화 연산을 사용할 수 있기 때문에 반복문을 사용하지 않아서 코드의 간결성이 높아진다.
그냥 무식하게 곱하기 2를 해도 알아서 잘 적용된다.
물론 다양한 수학 및 통계 함수를 제공하고, 다차원 배열을 쉽게 사용할 수 있는 것도 장점이다. (이 역시 그냥 파이썬으로도 할 수 있는데 "빠르고", "간결"한 것이 장점이다.)
다음으로 pandas를 데려와야 한다.
import pandas as pd
pandas는 데이터 조작 및 분석에 사용되는 라이브러리다. 얘는 "구조화된 데이터(엑셀, SQL 등)"를 다룰 때 아주 좋다. 그러니까 2차원 구조인 "DataFrame"을 사용하는 데 제격이다.
이렇게 대충 슥슥 만들고 pd.DataFrame() 한 다음에 때려 넣으면 알아서 들어간다. 이렇게 만들어진 친구들의 데이터를 쉽게 바꿀 수 있고 시계열 처리도 좋다.
numpy랑 pandas는 그냥 일단 시작부터 바로 코드 윗줄에 박고 시작해도 된다.
다음으로 os를 데려온다.
import os
얘는 사실 잘 모르겠다기보다는
그냥 재미가 없으니 그만 알아보자.
그리고 우리의 tensorflow를 임포트한다.
import tensorflow as tf
tensorflow는 ML과 DL을 위해 구글에서 만든 오픈소스 라이브러리다. 모델을 만들고, 훈련하고, 테스트하기 위한 여러 기능을 사용할 수 있다
tensorflow_decision_forests도 데려와야 한다.
import tensorflow_decision_forests as tfdf
얘는 특별히 tensorflow를 사용할 때 Decision Forests을 위해 사용하는 라이브러리다.
Decision Forests는 특정 기법이나 모델이 아니라 Decision Trees를 여러 개 결합해서 사용하는 여러 기법들을 포괄하는 일반화된 이름이다. Decision Forests의 예시로는 Random Forests나 Gradient Boosting Machines 같은 것들이 있다.
'분명 전산학부 졸업 했는데 코딩 개못하는 조준호 > AI, ML, DL' 카테고리의 다른 글
Kaggle Competition - Binary Prediction of Poisonous Mushrooms (1) EDA 전까지 (1) | 2024.09.02 |
---|---|
역시 ML의 시작은 타이타닉 - (5) hyperparameter 튜닝 (8) | 2024.07.24 |
역시 ML의 시작은 타이타닉 - (4) GBT 모델 뜯어보기 (3) | 2024.07.20 |
역시 ML의 시작은 타이타닉 - (3) 모델 만들고 학습시키고 평가하기 (7) | 2024.07.20 |
역시 ML의 시작은 타이타닉 - (2) Preprocess 후 Tensorflow DataSet으로 전환 (0) | 2024.07.20 |
한국은행 들어갈 때까지만 합니다
조만간 티비에서 봅시다