Я новичок в Sklearn и python; У меня есть этот фрагмент кода для проекта, который я пытаюсь расшифровать. Надеюсь, вы, ребята, можете мне помочь.use подходит для sklearn gridsearchcv
from repository import Repository
from configuration import config
repository = Repository(config)
dataset, labels = repository.get_dataset_and_labels()
import numpy as np
from sklearn.cross_validation import train_test_split
from sklearn.svm import SVC
from sklearn.cross_validation import ShuffleSplit
from sklearn.grid_search import GridSearchCV
# Ensure that there are no NaNs
dataset = dataset.fillna(-85)
# Split the dataset into training (90 \%) and testing (10 \%)
X_train, X_test, y_train, y_test = train_test_split(dataset, labels, test_size = 0.1)
cv = ShuffleSplit(X_train.shape[0], n_iter=10, test_size=0.2, random_state=0)
# Define the classifier to use
estimator = SVC(kernel='linear')
# Define parameter space
gammas = np.logspace(-6, -1, 10)
# Use Test dataset and use cross validation to find bet hyper-p rameters.
classifier = GridSearchCV(estimator=estimator, cv=cv, param_grid=dict(gamma=gammas))
classifier.fit(X_train, [repository.locations.keys().index(tuple(l)) for l in y_train])
То, что я не могу обернуть, - это использование метода подгонки классификатора. Во всех примерах, которые я нашел в Интернете, «fit» получает данные обучения и соответствующие метки. В приведенном выше примере «fit» получает данные обучения и индексы меток (а не метки). Как классификатор принимает индексы, а не метки и все еще работает
Если вы не возражаете, я спрашиваю, откуда вы это взяли? Только причина, о которой я спрашиваю, - это то, что вы сказали, что это работает. У меня нет 'repository', поэтому я не могу проверить его, посмотрев, что такое' dataset', это ссылка на – Leb
@Leb Это фрагмент кода из академического проекта, которому я был назначен. набор данных состоит из отпечатков пальцев wifi (адрес mac, уровень сигнала), метки содержат координаты этого отпечатка пальца в здании. – Amani
Хорошо, * моя догадка * есть: 'from sklearn.cross_validation import ShuffleSplit' возвращает [индексы] (http://scikit-learn.org/stable/modules/generated/sklearn.cross_validation.ShuffleSplit.html). Таким образом, по внешнему виду они сделали это первым и использовали это в «GridSearchCV». Вот почему индекс используется для 'y_train', который, как я предполагаю, имеет форму (y) (т.е. только столбцы) – Leb