Изменения

Перейти к: навигация, поиск

Обучение на больших данных

132 байта убрано, 19:12, 19 января 2021
Примеры реализации алгоритмов с использованием Spark MLlib
numeric_features = [t[0] for t in df.dtypes if t[1] == 'int']
df.select(numeric_features).describe().toPandas().transpose()
[[Файл:SparkMLSecondTable.png]]
Оценим корреляцию между оставшимися данными
h.xaxis.label.set_rotation(90)
h.set_xticks(())
[[Файл:SparkMLThirdTable.png]] 
На данных графиках можно увидеть зависимость, к примеру, между возрастом и балансом на карте. Не будем учитывать эти корреляции при построении наших моделей, однако избавимся от дня и месяца рождения, так как эти параметры не влияют на желание клиента оформить быстрый кредит.
df = df.select('age', 'job', 'marital', 'education', 'default', 'balance', 'housing', 'loan', 'contact', 'duration', 'campaign', 'pdays', 'previous', 'poutcome', 'deposit')
print("Training Dataset Count: " + str(train.count()))
print("Test Dataset Count: " + str(test.count()))
Построим модели и выведем точность(площадь под ROC-кривой ) для:
Logistic Regression
plt.title('ROC-кривая')
plt.show()
print('Площадь под ROC-кривойТочность: ' + str(trainingSummary.areaUnderROC))
Площадь под ROC-кривойТочность: 0.8865478305561797
Binary Classification
from pyspark.ml.evaluation import BinaryClassificationEvaluator
evaluator = BinaryClassificationEvaluator()
print('Площадь под ROC-кривойТочность: ', evaluator.evaluate(predictions))
Площадь под ROC-кривойТочность: 0.8837112925002687
Decision Tree
from pyspark.ml.classification import DecisionTreeClassifier
predictions = dtModel.transform(test)
evaluator = BinaryClassificationEvaluator()
print("Площадь под ROC-кривойТочность: " + str(evaluator.evaluate(predictions, {evaluator.metricName: "areaUnderROC"})))
Площадь под ROC-кривойТочность: 0.7808118726917547
Random Forest
predictions = rfModel.transform(test)
evaluator = BinaryClassificationEvaluator()
print("Площадь под ROC-кривойТочность: " + str(evaluator.evaluate(predictions, {evaluator.metricName: "areaUnderROC"})))
Площадь под ROC-кривойТочность: 0.8777131493473223
Gradient-Boosted Tree
from pyspark.ml.classification import GBTClassifier
predictions = gbtModel.transform(test)
evaluator = BinaryClassificationEvaluator()
print("Площадь под ROC-кривойТочность: " + str(evaluator.evaluate(predictions, {evaluator.metricName: "areaUnderROC"})))
Площадь под ROC-кривойТочность: 0.8935091626908479
== Практическое применение Big Data ==
22
правки

Навигация