Выполнение регрессии при разделении выборки

#python #pandas #numpy #scikit-learn

#python #панды #numpy #scikit-learn

Вопрос:

Давайте возьмем данные

 import pandas as pd
import numpy as np
from sklearn.model_selection import StratifiedKFold
from sklearn.linear_model import LogisticRegression
df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/wdbc.data', header=None) 
 

И рассмотрим следующий код :

 #Defining X,y - independent variable and dependent variables
X=df.drop(df.columns[[1]], axis=1)
y = (df[1] == 'B').astype(int)
clf=LogisticRegression(solver="lbfgs")
        

kfold = StratifiedKFold(n_splits=10, shuffle=True)

for train, validation in kfold.split(X, y):
            # Fit the model
            clf.fit(X[train], y[train])
 

И возникает следующая ошибка :

введите описание изображения здесь

У вас есть какие-либо идеи, почему это происходит? Я думаю, что я действительно не делал сложных вещей, поэтому я не уверен, что именно я сделал неправильно.

Ответ №1:

X — это фрейм данных, который вам нужно использовать .iloc для выбора индексов:

 for train_index, validation_index in kfold.split(X, y):
    # Fit the model
    X_train = X.iloc[train_index]
    y_train = y[train_index]
    clf.fit(X_train, y_train)