首页 > 解决方案 > 如何使用python根据输入值划分数组

问题描述

我们假设 KNN 中的折叠值为 N,我们需要将数组分成 N 等份,并且对于折叠值的每次迭代,我们需要划分训练并测试这样的方式

example :
fold is 5
1. In First iteration It Consider last means 5th part as test data and rest train data
2. In Second iteration It Consider second last means 4th part as test data and rest train data
3. In third iteration It Consider third last means 3rd part as test data and rest train data
... so on
5. In  Firth iteration It Consider first means 1st part as test data and rest train data

我们如何在 Python 中实现这一点你能解释一下吗?

标签: pythonmachine-learningdata-scienceknn

解决方案


我认为您需要 KFold https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.KFold.html

# you can declare number of splits here
kfold = model_selection.KFold(n_splits=5, random_state=42)
# your model goes here. 
model = NearestNeighbors(n_neighbors=2, algorithm='ball_tree')
# this will fit your model 5 times and use 1/5 as test data and 4/5 as training data
results = model_selection.cross_val_score(model, X_train,  y_train, cv=kfold)

推荐阅读