22
правки
Изменения
→Примеры реализации алгоритмов с использованием 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(())
На данных графиках можно увидеть зависимость, к примеру, между возрастом и балансом на карте. Не будем учитывать эти корреляции при построении наших моделей, однако избавимся от дня и месяца рождения, так как эти параметры не влияют на желание клиента оформить быстрый кредит.
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))
Binary Classification
from pyspark.ml.evaluation import BinaryClassificationEvaluator
evaluator = BinaryClassificationEvaluator()
print('Площадь под ROC-кривойТочность: ', evaluator.evaluate(predictions))
Decision Tree
from pyspark.ml.classification import DecisionTreeClassifier
predictions = dtModel.transform(test)
evaluator = BinaryClassificationEvaluator()
print("Площадь под ROC-кривойТочность: " + str(evaluator.evaluate(predictions, {evaluator.metricName: "areaUnderROC"})))
Random Forest
predictions = rfModel.transform(test)
evaluator = BinaryClassificationEvaluator()
print("Площадь под ROC-кривойТочность: " + str(evaluator.evaluate(predictions, {evaluator.metricName: "areaUnderROC"})))
Gradient-Boosted Tree
from pyspark.ml.classification import GBTClassifier
predictions = gbtModel.transform(test)
evaluator = BinaryClassificationEvaluator()
print("Площадь под ROC-кривойТочность: " + str(evaluator.evaluate(predictions, {evaluator.metricName: "areaUnderROC"})))
== Практическое применение Big Data ==