【问题标题】:Nested cross validation for LassocvLassocv 的嵌套交叉验证
【发布时间】:2020-02-19 16:11:34
【问题描述】:

我是 Python 新手,正在学习 ISLR 书籍。在其中,我正在查看波士顿数据集并尝试不同的模型。 其中之一是 sklearn 的 LassoCV。 我在这里阅读了嵌套循环的重要性,并从训练数据集中找到了最佳 lambda。 See here the link 我试图了解如何使用这个特定的 lambda 来查看测试数据集的 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)

现在我有了正确的 lambda,如何将其合并到 MSE 中以检查测试数据? 谢谢!

【问题讨论】:

    标签: python machine-learning cross-validation


    【解决方案1】:

    您可以使用 sklearn 中的指标。

    MSE metric

    你可以使用代码:

    from sklearn.metrics import mean_squared_error
    y_pred = lassocv.predict(y_test)
    print('MSE', mean_squared_error(y_test, y_pred)
    

    【讨论】:

    • 谢谢,但是这如何让我合并我从之前的交叉验证中找到的 lambda?请解释
    猜你喜欢
    • 1970-01-01
    • 2013-12-13
    • 2020-03-03
    • 2021-02-10
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    相关资源
    最近更新 更多