๋จธ์ ๋ฌ๋์ ์์ํ๋ฉด์ NumPy, Pandas, Scikit-learn์ด๋ผ๋ 3๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ตํ์ต๋๋ค. ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ด๋ค ์ญํ ์ ํ๊ณ , ์ด๋ป๊ฒ ์ ๊ธฐ์ ์ผ๋ก ์ฐ๊ฒฐ๋๋์ง ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค.
1. NumPy: ๋ชจ๋ ๊ฒ์ ๊ธฐ๋ฐ, ์์น ์ฐ์ฐ
NumPy๋ ML์์ Python์ด ์ฌ์ฉ๋๋ ๊ทผ๋ณธ์ ์ธ ์ด์ ๋ค. ๋ค์ฐจ์ ndarray ๊ฐ์ฒด๋ฅผ ํตํด C์ธ์ด ์์ค์ ๋น ๋ฅธ ์๋๋ก ๋ฒกํฐ ๋ฐ ํ๋ ฌ ์ฐ์ฐ์ ์ํํ๋ค. ์ด๋ฏธ์ง ๋ฐ์ดํฐ(ํฝ์ ํ๋ ฌ), ํ ์คํธ ์๋ฒ ๋ฉ(๋ฒกํฐ) ๋ฑ ML์ ๋ชจ๋ ๋ฐ์ดํฐ๋ ๊ฒฐ๊ตญ NumPy ๋ฐฐ์ด๋ก ํํ๋๋ค.
import numpy as np # NumPy๋ก ๊ฐ๋จํ ๋ฐฐ์ด ์ฐ์ฐ arr = np.array([[1, 2, 3], [4, 5, 6]]) print("๋ฐฐ์ด์ ํํ:", arr.shape) print("๋ฐฐ์ด์ ์ฐจ์:", arr.ndim) # ๋ณต์กํ ๋ฐฐ์ด ์ฐ์ฐ matrix_mul = np.dot(arr, arr.T) print("ํ๋ ฌ ๊ณฑ์ ๊ฒฐ๊ณผ:\n", matrix_mul)
2. Pandas: ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ , ์ ์ ์ ๋ถ์
Pandas๋ NumPy ์์์ ๋์ํ๋ฉฐ, DataFrame์ด๋ผ๋ ์์ ๊ณผ ์ ์ฌํ 2์ฐจ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๋ค. SQL์ฒ๋ผ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋ง, ๊ทธ๋ฃนํ, ์กฐ์ธํ๋ ๋ฑ ML ๋ชจ๋ธ์ ๋ฃ๊ธฐ ์ ๋ฐ์ดํฐ๋ฅผ '์ ์ 'ํ๊ณ 'ํ์'ํ๋ ๋ฐ ํ์์ ์ด๋ค.
import pandas as pd # ๋ฐ์ดํฐํ๋ ์ ๊ธฐ๋ณธ ์กฐ์ df = pd.read_csv('my_dataset.csv') # ๊ฒฐ์ธก๊ฐ ์ฒ๋ฆฌ ๋ฐ ๊ณ ๊ธ ๋ถ์ df_cleaned = df.dropna() grouped_data = df_cleaned.groupby('category').agg({ 'value': ['mean', 'median', 'std'] }) print("์นดํ ๊ณ ๋ฆฌ๋ณ ํต๊ณ:\n", grouped_data)
3. Scikit-learn: ์ผ๊ด๋ ์ธํฐํ์ด์ค์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ
Scikit-learn์ ๋ค์ํ ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๊ธฐ ์ฌ์ด, ์ผ๊ด๋ ์ธํฐํ์ด์ค๋ก ์ ๊ณตํ๋ค. ์ด๋ค ๋ชจ๋ธ์ ์ฐ๋ .fit()์ผ๋ก ํ์ตํ๊ณ .predict()๋ก ์์ธกํ๋ ๊ตฌ์กฐ๋ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ ๋ค์ํ ๋ชจ๋ธ์ ๋น ๋ฅด๊ฒ ์คํํ ์ ์๊ฒ ํด์ค๋ค.
from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.metrics import classification_report # ๋ฐ์ดํฐ ๋ถํ ๋ฐ ์ ์ฒ๋ฆฌ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # ๋ฐ์ดํฐ ์ค์ผ์ผ๋ง scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test) # ๋ก์ง์คํฑ ํ๊ท ๋ชจ๋ธ ํ์ต model = LogisticRegression(max_iter=1000) model.fit(X_train_scaled, y_train) # ๋ชจ๋ธ ํ๊ฐ predictions = model.predict(X_test_scaled) print("๋ถ๋ฅ ๋ณด๊ณ ์:\n", classification_report(y_test, predictions))
4. ํ์ตํ๋ฉด์ ๋๋ ์
์ฝ๋๋ ๋ฌธ์๋ค
- ๊น๋ํ๊ณ ์ฝ๊ธฐ ์ฌ์ด ์ฝ๋๊ฐ ์ต๊ณ ์ ๋ฌธ์๋ค - ์ฃผ์์ ์ต์ํ์ผ๋ก, ์ฝ๋ ์์ฒด๊ฐ ์ค๋ช ํ๊ฒ ํ์
์ค์๋ ๋ฐฐ์์ ๊ธฐํ
- ์๋ฌ ๋ฉ์์ง๋ฅผ ๋๋ ค์ํ์ง ๋ง์ - ๋๋ฒ๊น ์ ์ค๋ ฅ ํฅ์์ ์ง๋ฆ๊ธธ
5. ์์ผ๋ก์ ๊ณํ
1. ๋ ๋ณต์กํ ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ ํ์ต 2. ์ค์ ํ๋ก์ ํธ์ ์ ์ฉํด๋ณด๊ธฐ 3. ๋ฅ๋ฌ๋ ๊ธฐ์ด ๋ค์ง๊ธฐ 4. Kaggle Competition ์์ 1% ๋์ ํ๊ธฐ