尝试在R中实现套索时出现“参数Y丢失”?

时间:2018-09-08 21:37:06

标签: r machine-learning glmnet

尝试在R中执行功能选择。我正在使用glmnet软件包来执行此操作。到目前为止,这是我的代码:

lasso_model = glmnet(as.matrix(x = lasso, y = lasso_target, 
standardize=TRUE, alpha=1))

套索是一个充满数字和分类预测变量的数据框。第一列是我删除的目标变量。

lasso_target是我删除的目标变量,它存储为自己的数据帧。

错误:

Error in drop(y) : argument "y" is missing, with no default

我的目标是在将数据馈入模型之前从数据框中删除非信息性功能。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您的关闭!但是输入和响应变量需要分别定义。您要做的就是将它们都组合成一个矩阵(除了glmnet的其他args),然后将整个函数传递给函数。由于默认情况下, x 是第一个参数,因此它假定这是输入矩阵,然后由于未定义 y 参数而找不到负责任的变量。因此,您会收到一条错误消息,告诉您。

这应该可以解决问题:

//loads maps according to an integer parameter, which depends on what map the player is in (Map1, Map2, Map3, etc.)
    public void loadMap(int MapNum){

    //attemps to load .txt file
        try{
        String s="Map"+MapNum+".txt";
        File file=new File(s);
        Scanner sc=new Scanner(file);       

        while(sc.hasNextLine())
        {          
            for( int i=0; i<5; i++){

                char currentCharacter=sc.next().charAt(0);
                map[i][i]=currentCharacter;                           
            }  
        }      
        }
        catch(IOException exception){
            System.out.println(exception);
        }
    }