0

У меня есть 26 статей, классифицированных по двоичным категориям, и я выполнил NB и 5-кратные анализы CV. Я импортировал мои данные с командой load_files() и я получил этот массив:Как импортировать собственные данные для однократного анализа CV scikit learn

target': array([0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1]), 
'target_names': ['negative', 'positive'] 

Несмотря на то, что я читал Лоо документацию и руководство пользователя на scikit узнать сайт я не могу понять, как использовать мои данные. Вот пример с сайта:

from sklearn import cross_validation 
X = np.array([[1, 2], [3, 4]]) 
y = np.array([1, 2]) 
loo = cross_validation.LeaveOneOut(2) 
len(loo) 
2 
print(loo) 
sklearn.cross_validation.LeaveOneOut(n=2) 
for train_index, test_index in loo: 
    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] 
    print(X_train, X_test, y_train, y_test) 

Например, что же у стоять в приведенном выше примере с scikit узнать сайт? Это категории? Что такое train_index/test_index? Откуда это?

Некоторая помощь будет оценена по достоинству.

С уважением,

guzdeh

UPDATE:

спасибо за ответ, Брэд. Если я понимаю ваш ответ, мне нужно разделить свои данные на тренировочный/тестовый набор? Я сделал это с моим анализом NB (75:25), но с моей 5-кратной CV-реализацией этот раскол (80:20) был выполнен по алгоритму. Это мой код (играет с 4-х различных классификаторов):

def evaluate_cross_validation(clf, X, y, K): 
    # create a k-fold cross validation iterator of k=5 folds 
    cv = KFold(len(y), K, shuffle=True, random_state=0) 
    # by default the score used is the one returned by score >>> method of the estimator (accuracy) 
    scores = cross_val_score(clf, X, y, cv=cv) 
    print scores 
    print ("Mean score: {0:.3f} (+/-{1:.3f})").format(np.mean(scores), sem(scores)) 

clfs = [clf_1, clf_2, clf_3, clf_4] 

for clf in clfs: 
    evaluate_cross_validation(clf, bunch.data, bunch.target, 5) 

Bunch.data мои статьи, загруженные load_files(), bunch.target мои два класса. Итак, если мое мышление верное, «Оставить-одно», являющееся N-кратным CV, тогда я мог бы провести анализ с вышеупомянутым кодом с K = количеством статей?

Тем не менее, я до сих пор не понимаю, что такое y = np.array([1, 2]) в приведенном выше примере и почему нужны наборы для тестирования и тестирования, поскольку все статьи, кроме одного, являются набором для обучения, а один - набором тестов.

+0

Хорошо, давайте начнем с небольшого разъяснения, у вас есть массив «target» и массив «target_names». Каковы ваши возможности? Где этот массив?Если я правильно понял вашу проблему, вы пытаетесь классифицировать статьи как отрицательные, так и позитивные. Без информации о статьях, переданных в алгоритм, нет никаких возможностей для изучения. Иначе говоря, у вас есть только значения «y» (цели) и значения 'X' (функции). –

+0

После импорта статей я получаю следующий массив: target ': array ([0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0 , 0, 0, 0, 1, 0, 0, 1, 1, 1]) и «target_names»: ['negative', 'positive']. Это используется в моем коде, массив - bunch.data, а имена целей - bunch.target. – guzdeh

ответ

0

Итак, для этих алгоритмов ML вам нужно понять разницу в «функции» «цель» и «набор тренировок» и «набор тестов». Похоже, что в вашем наборе данных есть только цель. Это будут те значения, которые вы пытаетесь предсказать. Таким образом, в случае этого алгоритма X_train должен быть информацией о статьях, y_train будет ассоциированным значением negative или positive массива, который вы предоставили. X_test и y_test - это функция, целевые пары, которые вы используете для прогнозирования, а затем оцениваете, насколько эффективна ваша настройка.

Подумайте о features как подсказки, есть список подсказок, и вы пытаетесь научиться ставить эти подсказки, чтобы предсказать target. Прямо сейчас все, что у вас есть, - это ответы (цели) без каких-либо подсказок, никакое обучение не может случиться так.

Насколько index идет, я бы рекомендовал использовать библиотеку как панды, чтобы создать dataframes со встроенными индексами

http://pandas.pydata.org/

Это чуть ли не на деталях, пока не тонна идти на , но это должно начать вводить вас в правильном направлении.

+0

спасибо за ответ – guzdeh

+0

Нет проблем guzdeh, см. Мой комментарий к вашему вопросу. Разделение на тренировочные и тестовые наборы является второстепенным для понимания функций и целей. –

Смежные вопросы