Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Lassocv的嵌套交叉验证_Python_Machine Learning_Cross Validation - Fatal编程技术网

Python Lassocv的嵌套交叉验证

Python Lassocv的嵌套交叉验证,python,machine-learning,cross-validation,Python,Machine Learning,Cross Validation,我是Python新手,正在学习ISLR书籍。在这本书中,我查看了波士顿数据集,并尝试了不同的模型。 其中一个是sklearn的LassoCV。 我在这里阅读了嵌套循环的重要性,并从训练数据集中找到了最佳lambda。 我试图理解如何使用这个特定的lambda来查看测试数据集的MSE。 请帮忙! 这是我的密码: ##importing packages import pandas as pd import numpy as np import matplotlib.pyp

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

您可以使用sklearn的指标

您可以使用以下代码:

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

您可以使用sklearn中的指标

您可以使用以下代码:

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

谢谢,但这是如何让我合并我从以前的交叉验证中找到的lambda的呢?请解释一下,汉克斯,但这是如何让我合并我从以前的交叉验证中找到的lambda的?请解释一下