Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Databricks’te bir genelleştirilmiş doğrusal model (GLM) kullanarak doğrusal ve lojistik gerileme gerçekleştirmeyi öğrenin.
glm R'ninkine glm()benzer şekilde Genelleştirilmiş Doğrusal Modele uyar.
Söz dizimi: glm(formula, data, family...)
Parametreleri:
-
formula: Uydurılacak modelin sembolik açıklaması, örneğin:ResponseVariable ~ Predictor1 + Predictor2. Desteklenen işleçler:~,+,-ve. -
data: Herhangi bir SparkDataFrame -
family: Doğrusal regresyon veya"gaussian"lojistik regresyon için dize"binomial" -
lambda: Sayısal, Normalleştirme parametresi -
alpha: Sayısal, Elastic-net karıştırma parametresi
Çıkış: MLlib PipelineModel
Bu öğreticide elmas veri kümesinde doğrusal ve lojistik regresyon gerçekleştirme adımları gösterilmektedir.
Eşkenar dörtgen verilerini yükleme ve bunları eğitim ve test kümelerine bölme
require(SparkR)
# Read diamonds.csv dataset as SparkDataFrame
diamonds <- read.df("/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv",
source = "com.databricks.spark.csv", header="true", inferSchema = "true")
diamonds <- withColumnRenamed(diamonds, "", "rowID")
# Split data into Training set and Test set
trainingData <- sample(diamonds, FALSE, 0.7)
testData <- except(diamonds, trainingData)
# Exclude rowIDs
trainingData <- trainingData[, -1]
testData <- testData[, -1]
print(count(diamonds))
print(count(trainingData))
print(count(testData))
head(trainingData)
Kullanarak doğrusal regresyon modeli eğitme glm()
Bu bölümde, eğitim verilerini kullanarak doğrusal regresyon modeli eğiterek bir pırlantanın özelliklerinden fiyatını tahmin etme işlemi gösterilmektedir.
Kategorik özelliklerin (kesim - İdeal, Premium, Çok İyi...) ve sürekli özelliklerin (derinlik, karat) bir karışımı vardır. SparkR bu özellikleri otomatik olarak kodlar, böylece bu özellikleri el ile kodlamanız gerekmez.
# Family = "gaussian" to train a linear regression model
lrModel <- glm(price ~ ., data = trainingData, family = "gaussian")
# Print a summary of the trained model
summary(lrModel)
Modelin yeni verilerde ne kadar iyi çalıştığını görmek için test verilerinde kullanın predict() .
Sözdizimi:predict(model, newData)
Parametreleri:
-
model: MLlib modeli -
newData: SparkDataFrame, genellikle test kümeniz
Çıktı:SparkDataFrame
# Generate predictions using the trained model
predictions <- predict(lrModel, newData = testData)
# View predictions against mpg column
display(select(predictions, "price", "prediction"))
Modeli değerlendirin.
errors <- select(predictions, predictions$price, predictions$prediction, alias(predictions$price - predictions$prediction, "error"))
display(errors)
# Calculate RMSE
head(select(errors, alias(sqrt(sum(errors$error^2 , na.rm = TRUE) / nrow(errors)), "RMSE")))
Kullanarak lojistik regresyon modeli eğitme glm()
Bu bölümde, bazı özelliklerine göre bir elmasın kesimini tahmin etmek için aynı veri kümesinde lojistik regresyonun nasıl oluşturulacağı gösterilmektedir.
MLlib'deki lojistik regresyon ikili sınıflandırmayı destekler. Bu örnekteki algoritmayı test etmek için verileri iki etiketle çalışacak şekilde alt kümeleyin.
# Subset data to include rows where diamond cut = "Premium" or diamond cut = "Very Good"
trainingDataSub <- subset(trainingData, trainingData$cut %in% c("Premium", "Very Good"))
testDataSub <- subset(testData, testData$cut %in% c("Premium", "Very Good"))
# Family = "binomial" to train a logistic regression model
logrModel <- glm(cut ~ price + color + clarity + depth, data = trainingDataSub, family = "binomial")
# Print summary of the trained model
summary(logrModel)
# Generate predictions using the trained model
predictionsLogR <- predict(logrModel, newData = testDataSub)
# View predictions against label column
display(select(predictionsLogR, "label", "prediction"))
Modeli değerlendirin.
errorsLogR <- select(predictionsLogR, predictionsLogR$label, predictionsLogR$prediction, alias(abs(predictionsLogR$label - predictionsLogR$prediction), "error"))
display(errorsLogR)