我在练习机器学习课程时,尝试用向后消元法建立优化模型,我想我的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值之后)
目前没有回答
相关问题 更多 >
编程相关推荐