Вложенная перекрестная проверка для Lassocv - PullRequest
1 голос
/ 19 февраля 2020

Я новичок в Python и изучаю книгу ISLR. в нем я смотрю на набор данных Бостона и пробую разные модели. Одним из них является LassoCV от sklearn. Я прочитал здесь важность вложенности l oop и нашел оптимальную лямбду из набора обучающих данных. См. Здесь ссылку Я пытаюсь понять, как я могу использовать эту спецификацию c лямбда, чтобы увидеть MSE для набора тестовых данных. Пожалуйста помоги! Вот мой код:

##importing packages

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.linear_model import LinearRegression, LassoCV, RidgeCV
    import statsmodels.api as sm
    from sklearn.preprocessing import StandardScaler
    from sklearn.model_selection import cross_val_score, train_test_split
    from sklearn.datasets import load_boston
    bos = load_boston()

##creating the dataset

    boston = pd.DataFrame(bos.data)
    boston.columns = bos.feature_names

##defining X,y and spliting to train and test data

    y = boston['CRIM']
    X = boston.drop('CRIM',axis=1)
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

##Lassocv first loop function
    lassocv =LassoCV(alphas=np.logspace(-5,-2.5,300),cv=5,normalize=True,max_iter=10000) #normalize functions as scale
    scaler = StandardScaler()
    lassocv.fit(X_train,y_train)
    mses = np.mean(lassocv.mse_path_,axis=1)
    alphas = lassocv.alphas_
    min_alpha = lassocv.alpha_
    min_mse = np.min(mses)

Теперь, когда у меня есть правильная лямбда, как мне включить ее, чтобы проверить MSE для тестовых данных? Спасибо!

1 Ответ

0 голосов
/ 19 февраля 2020

Вы можете использовать метрики из sklearn.

MSE metri c

Вы можете использовать код:

from sklearn.metrics import mean_squared_error
y_pred = lassocv.predict(y_test)
print('MSE', mean_squared_error(y_test, y_pred)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...