Линейная регрессия с использованием pyspark - PullRequest
0 голосов
/ 06 апреля 2020

Я новичок, и мне нужна помощь в обработке миллиардов записей, чтобы найти непоследовательность в наборе данных. В этом сценарии использования необходимо вычислить значение r2 для каждого уровня пользователя, поэтому нельзя использовать наборы данных test / train.

Я использую из pyspark.ml.regression import LinearRegression

Мой набор данных как это в таблице:

User_id  type rank_by_type sequence 
1        A      1           1
1        A      2           7
1        B      1           5
1        B      2           6

Так что мне нужно найти оценку r2, чтобы определить, не в порядке ли последовательность, то есть в приведенном выше примере 5,6 в последовательности, а 1,7 нет в послед. User_id и Type делают уникальную запись.

Подскажите, пожалуйста, как я могу использовать logi c для вычисления r2, а также как лучше всего обработать огромный набор данных с использованием spark.ml

1 Ответ

0 голосов
/ 07 апреля 2020

Сделайте так, и все должно работать нормально.

from pyspark.ml.regression import LinearRegression

# Load training data
training = spark.read.format("libsvm")\
    .load("data/mllib/sample_linear_regression_data.txt")

lr = LinearRegression(maxIter=10, regParam=0.3, elasticNetParam=0.8)

# Fit the model
lrModel = lr.fit(training)

# Print the coefficients and intercept for linear regression
print("Coefficients: %s" % str(lrModel.coefficients))
print("Intercept: %s" % str(lrModel.intercept))

# Summarize the model over the training set and print out some metrics
trainingSummary = lrModel.summary
print("numIterations: %d" % trainingSummary.totalIterations)
print("objectiveHistory: %s" % str(trainingSummary.objectiveHistory))
trainingSummary.residuals.show()
print("RMSE: %f" % trainingSummary.rootMeanSquaredError)
print("r2: %f" % trainingSummary.r2)

Ссылка:

https://spark.apache.org/docs/latest/ml-classification-regression.html#linear -регрессия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...