StratifiedKFold TypeError: __init__() got multiple values for argument 'n_splits'

StratifiedKFold TypeError: __init__() got multiple values for argument 'n_splits'

这是我的进口商品

import numpy as np
import matplotlib.pyplot as plt
from sklearn.mixture import GaussianMixture
from sklearn import datasets
from sklearn.model_selection import KFold
from sklearn.model_selection import StratifiedKFold

iris = datasets.load_iris()

是折叠然后将其更改为拆分但出现以下错误

indices = StratifiedKFold(iris.target, n_splits=5)

train_index, test_index = next(iter(indices))

X_train = iris.data[train_index]
y_train = iris.target[train_index]

X_test = iris.data[test_index]
y_test = iris.target[test_index]
TypeError: __init__() got multiple values for argument 'n_splits'

根据 documnentation,您首先需要使用 n_splits 初始化 StratifiedKFold 对象,然后使用 skf.get_n_splits 方法,因此您的代码变为:

skf = StratifiedKFold(n_splits=5)

X = iris.data
y = iris.target 
for train_index, test_index in skf.split(X, y):
    print("TRAIN:", train_index, "TEST:", test_index)
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]