Python-ML向后消除删除错误的数组

2024-09-27 00:20:37 发布

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

我在练习机器学习课程时,尝试用向后消元法建立优化模型,我想我的define代码有问题,请帮我找出问题所在

正确运行的函数应该是删除大于0.05的p值

我已经在控制台上一步一步地尝试了我的想法,当我试图将我的想法转换为define代码时,出现了一些问题

import numpy as np
import pandas as pd
import statsmodels.formula.api as sm

# Automatic Backward Elimination
def backwardelimination(x,sl):
    regressor_OLS=sm.OLS(y,x).fit()
    for i in range(0,len(x[0])):
        maxp=max(regressor_OLS.pvalues)  #Find the max P-value
        if maxp>sl:               #delete the max P-value which is greater than SL
            x = np.delete(x,maxp,axis=1)  
            regressor_OLS=sm.OLS(y,x).fit()
    return x

X=np.append(arr = np.ones((50,1)).astype(int) , values = X ,axis = 1)
X_opt=X[:,[0,1,2,3,4,5]]      
SL=0.05                                  #Significance Level
X_Modeled=backwardelimination(X_opt,SL)

这是original matrix,我希望是result,但不知怎么变成了this

X_opt=X[:,[0,1,2,3,4,5]]原始矩阵

X_opt=X[:,[0,3]]应该是什么(删除大于0.05的p值之后)


Tags: 代码importasnpmaxfitsmopt

热门问题