根据scikitlearn中的特定模型计算套索回归的R^2分数

2024-05-23 17:08:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我在sci kit learn中预先训练数据的基础上,基于四度(1、3、7、11)多项式回归特征,对套索模型进行了正则化。我在区间[0,20]上为100个均匀分布的点生成预测,并将结果存储在numpy数组中。我的任务是把钱还回去𝑅^每个套索模型相对于新的“金标准”测试集得2分,该测试集由真实的基本三次多项式模型生成,无噪声。我下面的代码所基于的初始模型包括一个噪声常数。我必须通过计算间隔[0,20]上100个均匀间隔点的每一个点的真实无噪声基础函数t^3/20 - t^2 - t来计算这个新的测试集,并最终选择R^2对给定函数的最佳拟合度。以下是我目前的代码:

degs = (1, 3, 7, 11)

las_r2 = []
    
preds = np.zeros((4,100))

for i, deg in enumerate(degs):
    poly = PolynomialFeatures(degree=deg)
    X_poly = poly.fit_transform(X_train)
    linlasso = Lasso(alpha=0.01, max_iter = 10000).fit(X_poly, y_train)
    y_poly = linlasso.predict(poly.fit_transform(np.linspace(0,20,100).reshape(-1,1)));
    preds[i,:] = y_poly.transpose()
        
    X_test_poly = poly.fit_transform(X_test)
    las_r2.append(linlasso.score(X_test_poly, y_test))
    
answer = las_r2.max()
    

我不知道的是如何将上面段落中提供的“黄金标准”函数合并到我的for循环中


Tags: 函数代码模型test标准间隔transform噪声