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.
Bu öğreticide synapseML kullanarak seçilen sınıflandırıcılar için en iyi hiper parametre bileşimini belirleme ve daha doğru ve güvenilir modeller oluşturma işlemleri gösterilmektedir. Eğitimde, meme kanserini tanımlayan bir model oluşturmak için rastgele dağıtılmış ızgara arama hiperparametre ayarlamasının nasıl gerçekleştirildiği gösterilmektedir.
Bağımlılıkları ayarlama
Pandas'ı içeri aktarma ve Spark oturumu ayarlama:
import pandas as pd
from pyspark.sql import SparkSession
# Bootstrap Spark Session
spark = SparkSession.builder.getOrCreate()
Verileri okuyun ve ayarlama ve test kümelerine bölün:
data = spark.read.parquet(
"wasbs://publicwasb@mmlspark.blob.core.windows.net/BreastCancer.parquet"
).cache()
tune, test = data.randomSplit([0.80, 0.20])
tune.limit(10).toPandas()
Kullanılacak modelleri tanımlayın:
from synapse.ml.automl import TuneHyperparameters
from synapse.ml.train import TrainClassifier
from pyspark.ml.classification import (
LogisticRegression,
RandomForestClassifier,
GBTClassifier,
)
logReg = LogisticRegression()
randForest = RandomForestClassifier()
gbt = GBTClassifier()
smlmodels = [logReg, randForest, gbt]
mmlmodels = [TrainClassifier(model=model, labelCol="Label") for model in smlmodels]
En iyi modeli bulmak için AutoML kullanma
SynapseML AutoML sınıflarını synapse.ml.automl
içeri aktarın. Hiperparametreleri HyperparamBuilder
ile belirtin.
DiscreteHyperParam
veya RangeHyperParam
hiper parametreleri ekleyin.
TuneHyperparameters
tekdüzen dağılımdan rastgele değerler seçer:
from synapse.ml.automl import *
paramBuilder = (
HyperparamBuilder()
.addHyperparam(logReg, logReg.regParam, RangeHyperParam(0.1, 0.3))
.addHyperparam(randForest, randForest.numTrees, DiscreteHyperParam([5, 10]))
.addHyperparam(randForest, randForest.maxDepth, DiscreteHyperParam([3, 5]))
.addHyperparam(gbt, gbt.maxBins, RangeHyperParam(8, 16))
.addHyperparam(gbt, gbt.maxDepth, DiscreteHyperParam([3, 5]))
)
searchSpace = paramBuilder.build()
# The search space is a list of params to tuples of estimator and hyperparam
print(searchSpace)
randomSpace = RandomSpace(searchSpace)
En iyi modeli elde etmek için TuneHyperparameters komutunu çalıştırın:
bestModel = TuneHyperparameters(
evaluationMetric="accuracy",
models=mmlmodels,
numFolds=2,
numRuns=len(mmlmodels) * 2,
parallelism=1,
paramSpace=randomSpace.space(),
seed=0,
).fit(tune)
Modeli değerlendirme
En iyi modelin parametrelerini görüntüleyin ve temel alınan en iyi model işlem hattını alın:
print(bestModel.getBestModelInfo())
print(bestModel.getBestModel())
Test kümesine göre puan ve ölçümleri görüntüleyin:
from synapse.ml.train import ComputeModelStatistics
prediction = bestModel.transform(test)
metrics = ComputeModelStatistics().transform(prediction)
metrics.limit(10).toPandas()
İlgili içerik
- SynapseML ile LightGBM kullanma
- SynapseML ile Azure AI hizmetlerini kullanma
- SynapseML ile ve synapseML olmadan aynı sınıflandırma görevini gerçekleştirme