어제 첫 베이스라인코드가 동작을 안해서 수정!
그리고 우리 데이터셋과 과제에 맞게 로직 수정중..
# 학습/테스트 데이터 분할
X = rating_df[["user", "anime"]].values
y = rating_df["rating"].values
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=test_size, random_state=random_state
)
# 사용자별 train-test split
train_data = []
test_data = []
for user, group in rating_df.groupby("user"):
group = group.sample(frac=1, random_state=random_state) # 데이터 섞기
n_test = max(1, int(len(group) * test_size)) # 최소 1개는 test에 포함
test_data.append(group.iloc[:n_test])
train_data.append(group.iloc[n_test:])
train_df = pd.concat(train_data)
test_df = pd.concat(test_data)
# 학습/테스트 데이터 준비
X_train = train_df[["user", "anime"]].values
y_train = train_df["rating"].values
X_test = test_df[["user", "anime"]].values
y_test = test_df["rating"].values