상황: 머신러닝 프로젝트에서는 대규모 데이터셋에 대해 모델을 학습시키기 위해 시간이 많이 소요됩니다. 이로 인해 전체 프로젝트의 진행이 지연될 수 있습니다.
해결방안: 학습 데이터의 크기를 줄이고 학습 시간을 단축하기 위해 데이터 샘플링 기법을 사용합니다.
1.
필요한 라이브러리 설치
먼저, 학습에 필요한 라이브러리인 pandas와 sklearn을 설치합니다.
bashCopy code
pip install pandas scikit-learn
Plain Text
복사
2.
데이터 불러오기 및 샘플링
pandas 라이브러리를 사용하여 데이터를 불러온 후, sample 함수를 사용해 데이터 샘플링을 수행합니다.
pythonCopy code
import pandas as pd
def load_and_sample_data(csv_file, sample_ratio=0.1):
data = pd.read_csv(csv_file)
sampled_data = data.sample(frac=sample_ratio)
return sampled_data
Python
복사
이 함수는 주어진 csv_file로부터 데이터를 불러오고, 설정된 sample_ratio에 따라 데이터를 샘플링합니다.
3.
머신러닝 모델 학습
샘플링된 데이터를 사용하여 머신러닝 모델을 학습시킵니다. 여기에서는 sklearn의 RandomForestClassifier를 예시로 사용합니다.
pythonCopy code
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
def train_model(sampled_data, target_column):
X = sampled_data.drop(target_column, axis=1)
y = sampled_data[target_column]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = RandomForestClassifier()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
return model, accuracy
Python
복사
이 함수는 샘플링된 데이터를 사용하여 랜덤 포레스트 모델을 학습시키고, 정확도를 반환합니다.
4.
스크립트 실행
위에서 정의한 함수를 사용하여 데이터를 불러오고, 샘플링한 후 모델을 학습시킵니다.
pythonCopy code
csv_file = "large_dataset.csv"
target_column = "target"
sampled_data = load_and_sample_data(csv_file, sample_ratio=0.1)
model, accuracy = train_model(sampled_data, target_column)
print(f"Model accuracy: {accuracy:.2f}")
Python
복사
이 방법을 사용하면, 학습 데이터의 크기를 줄이고 학습 시간을 단축할 쑤 있씁니다.