Недообучение, переоснащение, хорошее_обобщение

Итак, в рамках моего задания я применяю линейную регрессию и регрессию лассо, и вот вопрос 7.

Основываясь на результатах ответа на вопрос 6, какое значение гаммы соответствует неподходящей модели (и имеет наихудшую точность тестового набора)? Какое значение гаммы соответствует модели с переоснащением (и имеющей наихудшую точность тестового набора)? Какой выбор гаммы был бы лучшим выбором для модели с хорошими характеристиками обобщения в этом наборе данных (высокая точность как для обучающего, так и для тестового набора)?

Подсказка: попробуйте нанести на график баллы из вопроса 6, чтобы визуализировать взаимосвязь между гаммой и точностью. Не забудьте закомментировать строку import matplotlib перед отправкой.

Эта функция должна возвращать один кортеж со значениями степеней в следующем порядке: (недостаточная подгонка, переобучение, хорошее_обобщение). Обратите внимание, что существует только одно правильное решение.

Мне очень нужна помощь, я не могу придумать, как решить этот последний вопрос. Какой код следует использовать для определения (недообучение, переоснащение, хорошее_обобщение) и почему???

Спасибо,

Набор данных: http://archive.ics.uci.edu/ml/datasets/Mushroom?ref=datanews.io

Вот мой код из вопроса 6:

from sklearn.svm import SVC
from sklearn.model_selection import validation_curve

def answer_six():
    # SVC requires kernel='rbf', C=1, random_state=0 as instructed
    # C: Penalty parameter C of the error term
    # random_state: The seed of the pseudo random number generator 
    # used when shuffling the data for probability estimates
    # e radial basis function kernel, or RBF kernel, is a popular 
    # kernel function used in various kernelized learning algorithms, 
    # In particular, it is commonly used in support vector machine 
    # classification

    model = SVC(kernel='rbf', C=1, random_state=0)

    # Return numpy array numbers spaced evenly on a log scale (start, 
    # stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)

    gamma = np.logspace(-4,1,6)

    # Create a Validation Curve for model and subsets.
    # Create parameter name and range regarding gamma. Test Scoring 
    # requires accuracy. 
    # Validation curve requires X and y.

    train_scores, test_scores = validation_curve(model, X_subset, y_subset, param_name='gamma', param_range=gamma, scoring ='accuracy')

    # Determine mean for scores and tests along columns (axis=1)
    sc = (train_scores.mean(axis=1), test_scores.mean(axis=1))                                                 

    return sc

answer_six() 

person Preston    schedule 09.02.2019    source источник


Ответы (2)



Переобучение = ваша модель ложна, если модель ложна, разброс ее изменяется линейно на поли или опорный вектор с работающим ядром... Недообучение = ваш набор данных ложен, добавьте новые данные, идеально коррелированные...

проверьте по количеству баллов / точности теста и тренируйтесь, если тест и тренировка высоки и нет большой разницы, вы делаете хорошо ... если тест низкий или тренировка низкая, то вы сталкиваетесь с переоснащением / недообучением

надеюсь объяснила тебе...

person Matej Štulrajter    schedule 24.12.2020