Numpy 为什么内置岭回归不能以任何合理的方式预测数据的真实值?

Numpy 为什么内置岭回归不能以任何合理的方式预测数据的真实值?,numpy,scikit-learn,regression,Numpy,Scikit Learn,Regression,我正在做家庭作业,目的是将自我实现的岭回归与ADMM与sklearn包的内置函数进行比较。尽管我自己的实现可能会很麻烦,但我仍然坚持解释内置函数输出 我正在Windows上使用Python的3.7版本。我的目标是预测模型Y=X*Beta+Epsilon中Y的值, 其中,Y是100个变量的向量,X是具有集合协方差矩阵的多元正态分布样本100x2000维数的矩阵,β是具有2000个位置中5、10或100个集合值的向量 在这一点上,我尝试了sklearn.linear_model.Ridge的可通过参

我正在做家庭作业,目的是将自我实现的岭回归与ADMM与sklearn包的内置函数进行比较。尽管我自己的实现可能会很麻烦,但我仍然坚持解释内置函数输出

我正在Windows上使用Python的3.7版本。我的目标是预测模型Y=X*Beta+Epsilon中Y的值, 其中,Y是100个变量的向量,X是具有集合协方差矩阵的多元正态分布样本100x2000维数的矩阵,β是具有2000个位置中5、10或100个集合值的向量 在这一点上,我尝试了sklearn.linear_model.Ridge的可通过参数的任何合理组合,以及一些用于验证的“更容易”的数据,但没有效果。任何帮助都将受到感谢

函数生成问题数据: def生成任务(n,p,cov_rho,b_val,b_k,op=0): “图塔吉·杰米·麦克耶兹·罗兹克拉杜·诺扎丹尼奇·帕拉梅特拉奇” 平均值=np.零(p) “Wersja IID” 如果op==0: cov=np.眼(p) “Wersja:malejące correlacje” 如果op==1: cov=np.from函数(λi,j:cov_ρ**np.abs(i-j),(p,p)); “Wersja:过时的关联” 如果op==2: cov=np.眼(p)+cov_rho-np.眼(p)*(cov_rho-1) Chol=np.linalg.cholesky(cov) X=np.随机.正态(0,1,(n,p)) X=X.dot(Chol) X=归一化(X) B=(n,p+1) B=np.ones(B) B[:,1:]=X X=B “Czesc Odpowiedzilana za Beta” β=np.零(p+1) m=np.arange(p+1) np.random.shuffle(m) 贝塔[m[1:b_k]]=b_val β=β。重塑(-1,1) “Na koncu generujemy Y zaburzone oε~N(0,1)” ep=np.随机多变量正态分布(np.零(n),np.眼(n),1) #Y=X.dot(β) Y=X.dot(β)+ep.T 返回Y,X,Beta,ep.T Y、 X,Beta,ep=生成任务(p,n,0.6,2,10) X_系列,X_测试,Y_系列,Y_测试=系列测试分割(X,Y,测试尺寸=0.33) clr=RINGE(α=0.1,拟合截距=False,规格化=False,复制=True,最大值=None,tol=0.001,解算器=auto') Y_tr=Y_train.ravel() Y_te=Y_test.ravel() clr.fit(X\U系列,Y\U tr) plt.绘图(Y_te,label='Original') plt.plot(clr.predict(X_检验),标签=‘估计’) 其结果是: 与我自己的职能相比: 在我看来,这是不太可能的,尤其是当所说的内置函数为不同的任务返回几乎相同的结果时。 编辑:正如所呈现的示例使用IID矩阵一样,但相关案例的问题是相同的