我正在尝试使用Spark(1.6.0)ml.LogisticRegression进行纯L1正则化(elasticNetParam = 1.0,regParam = 0.1)模型,用于以libsvm格式保存的大型((2920874行,2564827要素))数据集。由于这是纯L1,因此正在为优化部分调用OWLQN优化器。但是,在生成的模型中,回归权重保持在其初始状态,并且迭代次数似乎只有一次,这意味着优化器在初始化之后由于某种原因退出。此外,优化器不会打印任何信息消息,这是另一个证据,它不会超出初始化步骤。我的代码附在此处:
private void Form1_Load(object sender, EventArgs e)
{
PictureBox picture = new PictureBox();
picture.Image = WindowsFormsApplication1.Properties.Resources.pineapple;
}
几个相关点:
此代码是从spark-shell(1.6.0)运行的,包含40个内核(10个执行器,每个4个内核),4GB驱动程序内存和4GB执行程序内存。
L2正则化(elasticNetParam = 0.0)的相同代码运行没有任何问题。
在LogisticRegression测试用例中使用较小矩阵格式数据的相同代码(纯L1)运行没有问题。