Skip to content

Commit c28fd05

Browse files
committed
[SPARK-25623]LogisticRegressionSuite: multinomial logistic regressioN with intercept with L1 regularization 1 min 10 sec
1 parent d6be46e commit c28fd05

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

mllib/src/test/scala/org/apache/spark/ml/classification/LogisticRegressionSuite.scala

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,9 @@ class LogisticRegressionSuite extends MLTest with DefaultReadWriteTest {
7979
generateMultinomialLogisticInput(coefficients, xMean, xVariance,
8080
addIntercept = true, nPoints, seed)
8181

82-
sc.parallelize(testData, 4).toDF().withColumn("weight", rand(seed))
82+
val df = sc.parallelize(testData, 4).toDF().withColumn("weight", rand(seed))
83+
df.cache()
84+
df
8385
}
8486

8587
multinomialDataset = {
@@ -1130,9 +1132,9 @@ class LogisticRegressionSuite extends MLTest with DefaultReadWriteTest {
11301132
}
11311133

11321134
test("binary logistic regression with intercept with ElasticNet regularization") {
1133-
val trainer1 = (new LogisticRegression).setFitIntercept(true).setMaxIter(200)
1135+
val trainer1 = (new LogisticRegression).setFitIntercept(true).setMaxIter(120)
11341136
.setElasticNetParam(0.38).setRegParam(0.21).setStandardization(true).setWeightCol("weight")
1135-
val trainer2 = (new LogisticRegression).setFitIntercept(true)
1137+
val trainer2 = (new LogisticRegression).setFitIntercept(true).setMaxIter(30)
11361138
.setElasticNetParam(0.38).setRegParam(0.21).setStandardization(false).setWeightCol("weight")
11371139

11381140
val model1 = trainer1.fit(binaryDataset)
@@ -1174,7 +1176,7 @@ class LogisticRegressionSuite extends MLTest with DefaultReadWriteTest {
11741176
val coefficientsR = Vectors.dense(0.0, 0.0, -0.1846038, -0.0559614)
11751177
val interceptR = 0.5024256
11761178

1177-
assert(model1.intercept ~== interceptRStd relTol 6E-3)
1179+
assert(model1.intercept ~== interceptRStd relTol 6E-2)
11781180
assert(model1.coefficients ~== coefficientsRStd absTol 5E-3)
11791181
assert(model2.intercept ~== interceptR relTol 6E-3)
11801182
assert(model2.coefficients ~= coefficientsR absTol 1E-3)
@@ -1677,10 +1679,10 @@ class LogisticRegressionSuite extends MLTest with DefaultReadWriteTest {
16771679
// use tighter constraints because OWL-QN solver takes longer to converge
16781680
val trainer1 = (new LogisticRegression).setFitIntercept(true)
16791681
.setElasticNetParam(1.0).setRegParam(0.05).setStandardization(true)
1680-
.setMaxIter(300).setTol(1e-10).setWeightCol("weight")
1682+
.setMaxIter(160).setTol(1e-10).setWeightCol("weight")
16811683
val trainer2 = (new LogisticRegression).setFitIntercept(true)
16821684
.setElasticNetParam(1.0).setRegParam(0.05).setStandardization(false)
1683-
.setMaxIter(300).setTol(1e-10).setWeightCol("weight")
1685+
.setMaxIter(110).setTol(1e-10).setWeightCol("weight")
16841686

16851687
val model1 = trainer1.fit(multinomialDataset)
16861688
val model2 = trainer2.fit(multinomialDataset)
@@ -1767,7 +1769,7 @@ class LogisticRegressionSuite extends MLTest with DefaultReadWriteTest {
17671769
0.0, 0.0, 0.0, 0.0), isTransposed = true)
17681770
val interceptsR = Vectors.dense(-0.44215290, 0.76308326, -0.3209304)
17691771

1770-
assert(model1.coefficientMatrix ~== coefficientsRStd absTol 0.02)
1772+
assert(model1.coefficientMatrix ~== coefficientsRStd absTol 0.05)
17711773
assert(model1.interceptVector ~== interceptsRStd relTol 0.1)
17721774
assert(model1.interceptVector.toArray.sum ~== 0.0 absTol eps)
17731775
assert(model2.coefficientMatrix ~== coefficientsR absTol 0.02)
@@ -2145,10 +2147,10 @@ class LogisticRegressionSuite extends MLTest with DefaultReadWriteTest {
21452147
test("multinomial logistic regression with intercept with elasticnet regularization") {
21462148
val trainer1 = (new LogisticRegression).setFitIntercept(true).setWeightCol("weight")
21472149
.setElasticNetParam(0.5).setRegParam(0.1).setStandardization(true)
2148-
.setMaxIter(300).setTol(1e-10)
2150+
.setMaxIter(220).setTol(1e-10)
21492151
val trainer2 = (new LogisticRegression).setFitIntercept(true).setWeightCol("weight")
21502152
.setElasticNetParam(0.5).setRegParam(0.1).setStandardization(false)
2151-
.setMaxIter(300).setTol(1e-10)
2153+
.setMaxIter(90).setTol(1e-10)
21522154

21532155
val model1 = trainer1.fit(multinomialDataset)
21542156
val model2 = trainer2.fit(multinomialDataset)
@@ -2234,8 +2236,8 @@ class LogisticRegressionSuite extends MLTest with DefaultReadWriteTest {
22342236
0.0, 0.0, 0.0, 0.0), isTransposed = true)
22352237
val interceptsR = Vectors.dense(-0.38857157, 0.62492165, -0.2363501)
22362238

2237-
assert(model1.coefficientMatrix ~== coefficientsRStd absTol 0.01)
2238-
assert(model1.interceptVector ~== interceptsRStd absTol 0.01)
2239+
assert(model1.coefficientMatrix ~== coefficientsRStd absTol 0.05)
2240+
assert(model1.interceptVector ~== interceptsRStd absTol 0.1)
22392241
assert(model1.interceptVector.toArray.sum ~== 0.0 absTol eps)
22402242
assert(model2.coefficientMatrix ~== coefficientsR absTol 0.01)
22412243
assert(model2.interceptVector ~== interceptsR absTol 0.01)
@@ -2245,10 +2247,10 @@ class LogisticRegressionSuite extends MLTest with DefaultReadWriteTest {
22452247
test("multinomial logistic regression without intercept with elasticnet regularization") {
22462248
val trainer1 = (new LogisticRegression).setFitIntercept(false).setWeightCol("weight")
22472249
.setElasticNetParam(0.5).setRegParam(0.1).setStandardization(true)
2248-
.setMaxIter(300).setTol(1e-10)
2250+
.setMaxIter(75).setTol(1e-10)
22492251
val trainer2 = (new LogisticRegression).setFitIntercept(false).setWeightCol("weight")
22502252
.setElasticNetParam(0.5).setRegParam(0.1).setStandardization(false)
2251-
.setMaxIter(300).setTol(1e-10)
2253+
.setMaxIter(50).setTol(1e-10)
22522254

22532255
val model1 = trainer1.fit(multinomialDataset)
22542256
val model2 = trainer2.fit(multinomialDataset)

0 commit comments

Comments
 (0)