1. 캐글(Kaggle)
구글에서 운영하는 전세계 AI개발자, 데이터 사이언티스트들이 데이터를 분석하고 토론할 수 있는 자료 등을 제공데이터 분석 및 머신러닝, 딥러닝 대회를 개최데이터셋, 파이썬 자료, R 자료 등을 제공
캐글사이트
2. 데이콘(Dacon)
국내 최초의 AI 해커톤 플랫폼전문 인력 채용과 학습을 할 수 있는 여러가지 AI자료 등을 제공
데이콘
3. AI허브
한국지능정보사회진흥원이 운영하는 AI통합 플랫폼AI기술 및 제품 서비스 개발에 필요한 AI 인프라를 제공
4. 타이타닉 데이터
https://bit.ly/fc-ml-titanic
import pandas as pd
df = pd.read_csv('https://bit.ly/fc-ml-titanic')
df
PassengerId: 승객 아이디
Survived: 생존여부(0: 사망, 1: 생존)
Pclass: 좌석 등급
Name: 이름
Sex: 성별
Age: 나이
SibSp: 형제, 자매, 배우자 수
Parch: 부모, 자식 수
Ticket: 티켓 번호
Fare: 요금
Cabin: 선실
Embarked: 탑승 항구
5. 데이터 전처리
데이터 정제 작업을 뜻함필요없는 데이터를 삭제하고, null이 있는 행을 처리하고, 정규화/표준화 등의 많은 작업들을 포함한 과정
머신러닝, 딥러닝 실무에서 전처리가 차지하는 중요도는 50%이상이라고 봄
5-1. 독립변수와 종속변수 나누기
# feature = ['Pclass', 'Sex', 'Age', 'Fare'] # 독립변수
# label = ['Survived'] # 종속변수
columns = ['Pclass', 'Sex', 'Age', 'Fare', 'Survived']
# 생존과 관련있는 컬럼 찾아보는 것이 목표
df['Survived'].head()
df['Survived'].value_counts()
5-2. 결측치 처리
df.info()
df.isnull().sum()
df.isnull().mean() # null의 비율
# Age는 생존과 밀접관련이 있을 수도 있으므로, null값은 평균값으로 대입하여 분석에 이용한다.
df['Age'] = df['Age'].fillna(df['Age'].mean())
df['Age']
5-3. 라벨 인코딩(Label Encoding)
문자(Categorical)를 수치(Numerical)로 변환
df.info()
# 성별을 수치화
df['Sex'].value_counts()
# 남자는 1, 여자는 0으로 변환하는 함수
def convert_sex(data):
if data == 'male':
return 1
elif data =='female':
return 0
df['Sex'] = df['Sex'].apply(convert_sex)
df.head()
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
df['Embarked'].value_counts() # null은 제거
embarked = le.fit_transform(df['Embarked']) # 0: S, 1: C, 2: Q
embarked # null: 3
le.classes_ # 0: S, 1: C, 2: Q
5-4. 원 핫 인코딩(One Hot Encoding)
독립적인 데이터는 별도의 컬럼으로 분리하고 각각 컬럼에 해당 값에만 1, 나머지는 0의 값을 갖게 하는 방법
df['Embarked_num'] = LabelEncoder().fit_transform(df['Embarked'])
df.head()
pd.get_dummies(df['Embarked_num'])
df = pd.get_dummies(df, columns=['Embarked'])
df.head()
df = df[columns]
df
df = pd.get_dummies(df, columns=['Pclass', 'Sex'])
df.head()
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(df.drop('Survived', axis=1), df['Survived'], test_size=0.2, random_state=2024)
'■ 공부 > ML DL' 카테고리의 다른 글
딥러닝 학습순서 (0) | 2024.07.02 |
---|---|
머신러닝 알고리즘 정리 (0) | 2024.06.22 |
3. 아이리스 데이터 셋 (0) | 2024.06.13 |
2. 사이킷런 (0) | 2024.06.12 |
1. 머신러닝 (1) | 2024.06.12 |