Python 3.x - AttributeError: у объекта 'function' нет атрибута 'Kfold' - PullRequest
0 голосов
/ 08 июня 2019

Я следую старому уроку с SVM, оптимизированным с помощью генетического алгоритма.Первоначально я думал, что проблема была только с версиями Python и / или Scikit, но теперь я не уверен, что проблема может быть, поскольку он продолжает отображать ту же ошибку.В настоящее время я использую python-scikit-learn 0.20.3-1 на Antergos и нашел ссылку здесь , которая, к сожалению, не помогла.

Пока я нашелНесколько ссылок и примеров, которые заставили меня изменить различные аспекты кода, что в целом просто перемешало все. Эта страница GitHub была полезна как минимум для понимания различия версий, как и первая ссылка. Этот пост в блоге также был аккуратным, но опять-таки не помог мне сузить точный вопрос о том, почему он считывает ошибку.Я даже попытался просмотреть документацию по sklearn , но все равно не смог ее получить.

Вот что я импортировал:

import numpy as np
import pandas as pd
import random as rd
from sklearn.model_selection import cross_validate
from sklearn import preprocessing
from sklearn import svm

У меня был "kfold"определено ранее в программе так:

kfold = 3

Кроме того, это именно та строка, с которой, похоже, возникают проблемы:

kf = cross_validate.KFold(Cnt1,n_splits=kfold)

То, что она должна делать, это простоприменяя перекрестную проверку.Тем не менее, ошибка гласит:

AttributeError: 'function' object has no attribue 'KFold'

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

1 Ответ

0 голосов
/ 08 июня 2019

Функция KFold находится в модуле sklearn.model_selection, а не в sklearn.model_selection.cross_validate

Так что вы можете импортировать

from sklearn import model_selection

, а затем использовать как

model_selection.KFold(...)

или вы можете импортировать функцию

from sklearn.model_selection import KFold

, как в примере KFold Doc .

...