Aracılığıyla paylaş


Otomatik ML ve Python ile regresyon modelini eğitme (SDK v1)

ŞUNUN IÇIN GEÇERLIDIR: Python SDK azureml v1

Bu makalede, Azure Machine Learning Otomatik ML kullanarak Azure Machine Learning Python SDK'sı ile regresyon modelini eğitmeyi öğreneceksiniz. Regresyon modeli, New York City 'de (NYC) çalışan taksiler için yolcu ücretlerini tahmin eder. Hazırlanmış verilerle bir çalışma alanı yapılandırmak, modeli özel parametrelerle yerel olarak eğitmek ve sonuçları keşfetmek için Python SDK'sı ile kod yazarsınız.

bu işlem eğitim verilerini ve yapılandırma ayarlarını kabul eder. En iyi modele ulaşmak için farklı özellik normalleştirme/standartlaştırma yöntemleri, modelleri ve hiper parametre ayarlarının birleşimleri aracılığıyla otomatik olarak yinelenir. Aşağıdaki diyagramda regresyon modeli eğitimi için işlem akışı gösterilmektedir:

Makalede açıklanan regresyon modeli eğitimi için süreç akışını gösteren diyagram.

Önkoşullar

  • Azure aboneliği. Azure Machine Learning için ücretsiz veya ücretli bir hesap oluşturabilirsiniz.

  • Azure Machine Learning çalışma alanı veya işlem örneği. Bu kaynakları hazırlamak için bkz . Hızlı Başlangıç: Azure Machine Learning'i kullanmaya başlama.

  • Çalışma alanınıza bir not defteri yükleyerek öğretici alıştırmaları için hazırlanan örnek verileri alın:

    1. Azure Machine Learning stüdyosu çalışma alanınıza gidin, Not Defterleri'ni ve ardından Örnekler sekmesini seçin.

    2. Not defterleri listesinde Örnek>SDK v1>öğreticileri>regresyon-automl-nyc-taxi-data düğümünü genişletin.

    3. Regresyon-automated-ml.ipynb not defterini seçin.

    4. Her not defteri hücresini bu öğreticinin bir parçası olarak çalıştırmak için Bu dosyayı kopyala'yı seçin.

    Alternatif yaklaşım: İsterseniz, öğretici alıştırmalarını yerel bir ortamda çalıştırabilirsiniz. Öğretici, GitHub'daki Azure Machine Learning Not Defterleri deposunda kullanılabilir. Bu yaklaşım için gerekli paketleri almak için şu adımları izleyin:

    1. tam automl istemcisini yükleyin.

    2. pip install azureml-opendatasets azureml-widgets Gerekli paketleri almak için yerel makinenizde komutunu çalıştırın.

Verileri indirme ve hazırlama

Açık Veri Kümeleri paketi, indirmeden önce tarih parametrelerini kolayca filtrelemek için her veri kaynağını (örneğin NycTlcGreen) temsil eden bir sınıf içerir.

Aşağıdaki kod gerekli paketleri içeri aktarır:

from azureml.opendatasets import NycTlcGreen
import pandas as pd
from datetime import datetime
from dateutil.relativedelta import relativedelta

İlk adım, taksi verileri için bir veri çerçevesi oluşturmaktır. Spark olmayan bir ortamda çalışırken, Açık Veri Kümeleri paketi belirli sınıflarla aynı anda yalnızca bir aylık verilerin indirilmesine izin verir. Bu yaklaşım, büyük veri kümelerinde oluşabilecek sorunlardan kaçınmaya MemoryError yardımcı olur.

Taksi verilerini indirmek için her seferinde bir ay yinelemeli olarak getirin. Sonraki veri kümesini veri çerçevesine green_taxi_df eklemeden önce her ay 2.000 kaydı rastgele örnekleyin ve ardından verilerin önizlemesini izleyin. Bu yaklaşım, veri çerçevesini şişirmekten kaçınmaya yardımcı olur.

Aşağıdaki kod veri çerçevesini oluşturur, verileri getirir ve veri çerçevesine yükler:

green_taxi_df = pd.DataFrame([])
start = datetime.strptime("1/1/2015","%m/%d/%Y")
end = datetime.strptime("1/31/2015","%m/%d/%Y")

for sample_month in range(12):
   temp_df_green = NycTlcGreen(start + relativedelta(months=sample_month), end + relativedelta(months=sample_month)) \
      .to_pandas_dataframe()
   green_taxi_df = green_taxi_df.append(temp_df_green.sample(2000))

green_taxi_df.head(10)

Aşağıdaki tabloda örnek taksi verilerindeki birçok değer sütunu gösterilmektedir:

vendorID lpepPickupDatetime lpepDropoffDatetime passengerCount tripDistance puLocationId doLocationId pickupLongitude pickupLatitude dropoffLongitude ... paymentType fareAmount fazladan mtaTax improvementSurcharge tipAmount tollsAmount ehailFee totalAmount tripType
2 2015-01-30 18:38:09 2015-01-30 19:01:49 1 1,88 Hiçbiri Hiçbiri -73.996155 40.690903 -73.964287 ... 1 15.0 1.0 0,5 0.3 4,00 0,0 Hiçbiri 20.80 1.0
1 2015-01-17 23:21:39 2015-01-17 23:35:16 1 2.70 Hiçbiri Hiçbiri -73.978508 40.687984 -73.955116 ... 1 11.5 0,5 0,5 0.3 2.55 0,0 Hiçbiri 15.35 1.0
2 2015-01-16 01:38:40 2015-01-16 01:52:55 1 3,54 Hiçbiri Hiçbiri -73.957787 40.721779 -73.963005 ... 1 13.5 0,5 0,5 0.3 2.80 0,0 Hiçbiri 17.60 1.0
2 2015-01-04 17:09:26 2015-01-04 17:16:12 1 1.00 Hiçbiri Hiçbiri -73.919914 40.826023 -73.904839 ... 2 6.5 0,0 0,5 0.3 0,00 0,0 Hiçbiri 7.30 1.0
1 2015-01-14 10:10:57 2015-01-14 10:33:30 1 5.10 Hiçbiri Hiçbiri -73.943710 40.825439 -73.982964 ... 1 18.5 0,0 0,5 0.3 3.85 0,0 Hiçbiri 23.15 1.0
2 2015-01-19 18:10:41 2015-01-19 18:32:20 1 7.41 Hiçbiri Hiçbiri -73.940918 40.839714 -73.994339 ... 1 24.0 0,0 0,5 0.3 4.80 0,0 Hiçbiri 29.60 1.0
2 2015-01-01 15:44:21 2015-01-01 15:50:16 1 1,03 Hiçbiri Hiçbiri -73.985718 40.685646 -73.996773 ... 1 6.5 0,0 0,5 0.3 1.30 0,0 Hiçbiri 8.60 1.0
2 2015-01-12 08:01:21 2015-01-12 08:14:52 5 2.94 Hiçbiri Hiçbiri -73.939865 40.789822 -73.952957 ... 2 12.5 0,0 0,5 0.3 0,00 0,0 Hiçbiri 13.30 1.0
1 2015-01-16 21:54:26 2015-01-16 22:12:39 1 3.00 Hiçbiri Hiçbiri -73.957939 40.721928 -73.926247 ... 1 14.0 0,5 0,5 0.3 2.00 0,0 Hiçbiri 17.30 1.0
2 2015-01-06 06:34:53 2015-01-06 06:44:23 1 2.31 Hiçbiri Hiçbiri -73.943825 40.810257 -73.943062 ... 1 10.0 0,0 0,5 0.3 2.00 0,0 Hiçbiri 12.80 1.0

Eğitim veya diğer özellik oluşturma için ihtiyacınız olmayan bazı sütunları kaldırmak yararlı olur. Örneğin, otomatik ML zamana bağlı özellikleri otomatik olarak işlediğinden lpepPickupDatetime sütununu kaldırabilirsiniz.

Aşağıdaki kod örnek verilerden 14 sütunu kaldırır:

columns_to_remove = ["lpepDropoffDatetime", "puLocationId", "doLocationId", "extra", "mtaTax",
                "improvementSurcharge", "tollsAmount", "ehailFee", "tripType", "rateCodeID",
                "storeAndFwdFlag", "paymentType", "fareAmount", "tipAmount"
               ]
for col in columns_to_remove:
   green_taxi_df.pop(col)

green_taxi_df.head(5)

Verileri temizleme

Sonraki adım verileri temizlemektir.

Aşağıdaki kod, her alan için özet istatistikleri oluşturmak üzere yeni veri çerçevesinde işlevini çalıştırır describe() :

green_taxi_df.describe()

Aşağıdaki tabloda, örnek verilerdeki kalan alanların özet istatistikleri gösterilmektedir:

vendorID passengerCount tripDistance pickupLongitude pickupLatitude dropoffLongitude dropoffLatitude totalAmount
count 24000.00 24000.00 24000.00 24000.00 24000.00 24000.00 24000.00 24000.00
demek 1.777625 1.373625 2.893981 -73.827403 40.689730 -73.819670 40.684436 14.892744
CYBH 0.415850 1.046180 3.072343 2.821767 1.556082 2.901199 1.599776 12.339749
min 1,00 0,00 0,00 -74.357101 0,00 -74.342766 0,00 -120.80
%25 2.00 1.00 1.05 -73.959175 40.699127 -73.966476 40.699459 8,00
50% 2.00 1.00 1.93 -73.945049 40.746754 -73.944221 40.747536 11.30
75% 2.00 1.00 3.70 -73.917089 40.803060 -73.909061 40.791526 17.80
Max 2.00 8,00 154.28 0,00 41.109089 0,00 40.982826 425.00

Özet istatistikler, model doğruluğunu azaltan değerler olan aykırı değerler olan birkaç alanı ortaya çıkarır. Bu sorunu gidermek için enlem/boylam (lat/long) alanlarını filtreleyin; böylece değerler Manhattan alanının sınırları içinde olur. Bu yaklaşım, diğer özelliklerle ilişkileri bakımından aykırı olan daha uzun taksi yolculuklarını veya yolculuklarını filtreler.

Ardından, alanı sıfırdan büyük ancak 31 milden küçük değerler (iki lat/uzun çift arasındaki haversine uzaklığı) için filtreleyin tripDistance . Bu teknik, tutarsız seyahat maliyeti olan uzun aykırı yolculukları ortadan kaldırır.

Son olarak, totalAmount alanın taksi ücretleri için negatif değerleri vardır ve bu değerler model bağlamında anlamlı değildir. Bu passengerCount alan, minimum değerin sıfır olduğu hatalı veriler de içerir.

Aşağıdaki kod, sorgu işlevlerini kullanarak bu değer anomalilerini filtreler. Kod daha sonra eğitim için gerekli olmayan son birkaç sütunu kaldırır:

final_df = green_taxi_df.query("pickupLatitude>=40.53 and pickupLatitude<=40.88")
final_df = final_df.query("pickupLongitude>=-74.09 and pickupLongitude<=-73.72")
final_df = final_df.query("tripDistance>=0.25 and tripDistance<31")
final_df = final_df.query("passengerCount>0 and totalAmount>0")

columns_to_remove_for_training = ["pickupLongitude", "pickupLatitude", "dropoffLongitude", "dropoffLatitude"]
for col in columns_to_remove_for_training:
   final_df.pop(col)

Bu dizideki son adım, temizlemenin beklendiği gibi çalıştığından describe() emin olmak için işlevi veriler üzerinde yeniden çağırmaktır. Artık makine öğrenmesi modeli eğitimi için kullanılacak hazır ve temizlenmiş bir taksi, tatil ve hava durumu veri kümeniz var:

final_df.describe()

Çalışma alanını yapılandırma

Mevcut çalışma alanından bir çalışma alanı nesnesi oluşturun. Çalışma Alanı, Azure aboneliğinizi ve kaynak bilgilerinizi kabul eden bir sınıftır. Ayrıca model çalıştırmalarınızı izlemek ve izlemek için bir bulut kaynağı oluşturur.

Aşağıdaki kod, config.json dosyasını okumak ve kimlik doğrulama ayrıntılarını adlı wsbir nesneye yüklemek için işlevini çağırırWorkspace.from_config().

from azureml.core.workspace import Workspace
ws = Workspace.from_config()

ws nesnesi, bu öğreticideki kodun geri kalanı boyunca kullanılır.

Verileri eğitim ve test kümelerine bölme

scikit-learn kitaplığındaki train_test_split işlevini kullanarak verileri eğitim ve test kümelerine bölün. Bu işlev, verileri model eğitimi için x (özellikler) veri kümesine ve test için y (tahmin edilmesi gereken değerler) veri kümesine ayırır.

parametresi, test_size teste ayrılacak verilerin yüzdesini belirler. random_state parametresi rastgele oluşturucuya bir tohum ayarlar, böylece eğitim testi bölmeleriniz belirleyici olur.

Aşağıdaki kod x ve y veri kümelerini yüklemek için işlevini çağırır train_test_split :

from sklearn.model_selection import train_test_split

x_train, x_test = train_test_split(final_df, test_size=0.2, random_state=223)

Bu adımın amacı, modeli eğitmek için kullanılmayan tamamlanmış modeli test etmek için veri noktaları hazırlamaktır. Bu noktalar gerçek doğruluğu ölçmek için kullanılır. İyi eğitilmiş bir model, görünmeyen verilerden doğru tahminler yapabilen modeldir. Artık bir makine öğrenmesi modelini otomatik eğitme için hazırlanmış verileriniz var.

Modeli otomatik olarak eğit

Modeli otomatik olarak eğitmek için aşağıdaki adımları izleyin:

  1. Deneme çalıştırması için ayarları tanımlayın. Eğitim verilerinizi yapılandırmaya ekleyin ve eğitim sürecini denetleyen ayarları değiştirin.

  2. Modeli ayarlamak için denemeyi gönderin. Denemeyi gönderdikten sonra işlem, tanımlanan kısıtlamalarınıza bağlı olarak farklı makine öğrenmesi algoritmaları ve hiper parametre ayarları aracılığıyla yinelenir. Doğruluk ölçümünü iyileştirerek en uygun modeli seçer.

Eğitim ayarlarını tanımlama

Eğitim için deneme parametresini ve model ayarlarını tanımlayın. Ayarların tam listesini görüntüleyin. Denemenin bu varsayılan ayarlarla gönderilmesi yaklaşık 5-20 dakika sürer. Çalışma süresini azaltmak için parametresini experiment_timeout_hours azaltın.

Özellik Bu öğreticideki değer Açıklama
iteration_timeout_minutes 10 Her yineleme için dakika cinsinden süre sınırı. Her yineleme için daha fazla zamana ihtiyaç duyan daha büyük veri kümeleri için bu değeri artırın.
experiment_timeout_hours 0.3 Deneme sonlandırilmeden önce tüm yinelemelerin birleştirildiği saat cinsinden maksimum süre.
enable_early_stopping True Puan kısa vadede iyileşmiyorsa erken sonlandırmayı etkinleştirmek için bayrak ekleyin.
primary_metric spearman_correlation İyileştirmek istediğiniz ölçüm. En uygun model bu ölçüme göre seçilir.
featurization auto Otomatik değer, denemenin eksik verileri işleme, metni sayısala dönüştürme vb. dahil olmak üzere giriş verilerini önceden işlemesine olanak tanır.
verbosity logging.INFO Günlük düzeyini denetler.
n_cross_validations 5 Doğrulama verileri belirtilmediğinde gerçekleştirilecek çapraz doğrulama bölmelerinin sayısı.

Aşağıdaki kod denemeyi gönderir:

import logging

automl_settings = {
   "iteration_timeout_minutes": 10,
   "experiment_timeout_hours": 0.3,
   "enable_early_stopping": True,
   "primary_metric": 'spearman_correlation',
   "featurization": 'auto',
   "verbosity": logging.INFO,
   "n_cross_validations": 5
}

Aşağıdaki kod, tanımlı eğitim ayarlarınızı bir **kwargs AutoMLConfig nesneye parametre olarak kullanmanıza olanak tanır. Buna ek olarak, eğitim verilerinizi ve modelin regression türünü belirtirsiniz( bu durumda).

from azureml.train.automl import AutoMLConfig

automl_config = AutoMLConfig(task='regression',
                      debug_log='automated_ml_errors.log',
                      training_data=x_train,
                      label_column_name="totalAmount",
                      **automl_settings)

Not

Otomatik ML ön işleme adımları (özellik normalleştirme, eksik verileri işleme, metni sayısala dönüştürme vb.) temel alınan modelin bir parçası haline gelir. Modeli tahminler için kullandığınızda, eğitim sırasında uygulanan ön işleme adımları giriş verilerinize otomatik olarak uygulanır.

Otomatik regresyon modelini eğitme

Çalışma alanınızda bir deneme nesnesi oluşturun. Deneme, tek tek işleriniz için kapsayıcı görevi görür. Tanımlı automl_config nesneyi denemeye geçirin ve iş sırasında ilerleme durumunu görüntülemek için çıkışı True olarak ayarlayın.

Denemeyi başlattıktan sonra, deneme çalıştırılırken görüntülenen çıkış canlı olarak güncelleştirilir. Her yineleme için model türünü, çalıştırma süresini ve eğitim doğruluğunu görürsünüz. Alan BEST , ölçüm türünüz temelinde en iyi çalışan eğitim puanını izler:

from azureml.core.experiment import Experiment
experiment = Experiment(ws, "Tutorial-NYCTaxi")
local_run = experiment.submit(automl_config, show_output=True)

Çıkış şu şekildedir:

Running on local machine
Parent Run ID: AutoML_1766cdf7-56cf-4b28-a340-c4aeee15b12b
Current status: DatasetFeaturization. Beginning to featurize the dataset.
Current status: DatasetEvaluation. Gathering dataset statistics.
Current status: FeaturesGeneration. Generating features for the dataset.
Current status: DatasetFeaturizationCompleted. Completed featurizing the dataset.
Current status: DatasetCrossValidationSplit. Generating individually featurized CV splits.
Current status: ModelSelection. Beginning model selection.

****************************************************************************************************
ITERATION: The iteration being evaluated.
PIPELINE: A summary description of the pipeline being evaluated.
DURATION: Time taken for the current iteration.
METRIC: The result of computing score on the fitted pipeline.
BEST: The best observed score thus far.
****************************************************************************************************

 ITERATION   PIPELINE                              DURATION     METRIC     BEST
       0   StandardScalerWrapper RandomForest          0:00:16      0.8746   0.8746
       1   MinMaxScaler RandomForest                 0:00:15      0.9468   0.9468
       2   StandardScalerWrapper ExtremeRandomTrees      0:00:09      0.9303   0.9468
       3   StandardScalerWrapper LightGBM             0:00:10      0.9424   0.9468
       4   RobustScaler DecisionTree                 0:00:09      0.9449   0.9468
       5   StandardScalerWrapper LassoLars            0:00:09      0.9440   0.9468
       6   StandardScalerWrapper LightGBM             0:00:10      0.9282   0.9468
       7   StandardScalerWrapper RandomForest          0:00:12      0.8946   0.9468
       8   StandardScalerWrapper LassoLars            0:00:16      0.9439   0.9468
       9   MinMaxScaler ExtremeRandomTrees            0:00:35      0.9199   0.9468
      10   RobustScaler ExtremeRandomTrees            0:00:19      0.9411   0.9468
      11   StandardScalerWrapper ExtremeRandomTrees      0:00:13      0.9077   0.9468
      12   StandardScalerWrapper LassoLars            0:00:15      0.9433   0.9468
      13   MinMaxScaler ExtremeRandomTrees            0:00:14      0.9186   0.9468
      14   RobustScaler RandomForest                 0:00:10      0.8810   0.9468
      15   StandardScalerWrapper LassoLars            0:00:55      0.9433   0.9468
      16   StandardScalerWrapper ExtremeRandomTrees      0:00:13      0.9026   0.9468
      17   StandardScalerWrapper RandomForest          0:00:13      0.9140   0.9468
      18   VotingEnsemble                         0:00:23      0.9471   0.9471
      19   StackEnsemble                          0:00:27      0.9463   0.9471

Sonuçları keşfetme

Jupyter pencere öğesiyle otomatik eğitimin sonuçlarını keşfedin. Pencere öğesi, eğitim doğruluğu ölçümleri ve meta verilerinin yanı sıra tek tek tüm iş yinelemelerinin grafiğini ve tablosunu görmenize olanak tanır. Ayrıca, açılan menü seçici ile birincil ölçümden farklı doğruluk ölçümlerini filtreleyebilirsiniz.

Aşağıdaki kod sonuçları keşfetmek için bir grafik oluşturur:

from azureml.widgets import RunDetails
RunDetails(local_run).show()

Jupyter pencere öğesinin çalıştırma ayrıntıları:

jupyter pencere öğesi çalıştırma ayrıntılarını Azure Machine Learning stüdyosu gösteren ekran görüntüsü.

Jupyter pencere öğesinin çizim grafiği:

Azure Machine Learning stüdyosu Jupyter pencere öğesi çizim diyagramını gösteren ekran görüntüsü.

En iyi modeli alma

Aşağıdaki kod, yinelemelerinizden en iyi modeli seçmenize olanak tanır. işlevi, get_output son fit çağrısı için en iyi çalıştırmayı ve uygun modeli döndürür. İşlevdeki get_output aşırı yüklemeleri kullanarak, günlüğe kaydedilen herhangi bir ölçüm veya belirli bir yineleme için en iyi çalıştırma ve uygun modeli alabilirsiniz.

best_run, fitted_model = local_run.get_output()
print(best_run)
print(fitted_model)

En iyi model doğruluğunu test etme

Taksi ücretlerini tahmin etmek için test veri kümesinde tahmin çalıştırmak için en iyi modeli kullanın. predict işlevi en iyi modeli kullanır ve veri kümesinden x_test y(seyahat maliyeti) değerlerini tahmin eder.

Aşağıdaki kod, veri kümesinden y_predict tahmin edilen ilk 10 maliyet değerini yazdırır:

y_test = x_test.pop("totalAmount")

y_predict = fitted_model.predict(x_test)
print(y_predict[:10])

Sonuçların root mean squared error değerini hesaplayın. Veri çerçevesini y_test bir listeye dönüştürün ve tahmin edilen değerlerle karşılaştırın. mean_squared_error işlevi iki değer dizisi alır ve aralarındaki ortalama hata karesini hesaplar. Sonucun karekökünün alınması, y değişkeniyle (maliyet) aynı birimlerde hata verir. Taksi ücreti tahminlerinin gerçek ücretlerden ne kadar uzak olduğunu kabaca gösterir.

from sklearn.metrics import mean_squared_error
from math import sqrt

y_actual = y_test.values.flatten().tolist()
rmse = sqrt(mean_squared_error(y_actual, y_predict))
rmse

Tam y_actual ve y_predict veri kümelerini kullanarak ortalama mutlak yüzde hatasını (MAPE) hesaplamak için aşağıdaki kodu çalıştırın. Bu ölçüm, tahmin edilen ve gerçek değer arasındaki mutlak farkı hesaplar ve tüm farkları toplar. Ardından bu toplamı, gerçek değerlerin toplamının yüzdesi olarak ifade eder.

sum_actuals = sum_errors = 0

for actual_val, predict_val in zip(y_actual, y_predict):
   abs_error = actual_val - predict_val
   if abs_error < 0:
      abs_error = abs_error * -1

   sum_errors = sum_errors + abs_error
   sum_actuals = sum_actuals + actual_val

mean_abs_percent_error = sum_errors / sum_actuals
print("Model MAPE:")
print(mean_abs_percent_error)
print()
print("Model Accuracy:")
print(1 - mean_abs_percent_error)

Çıkış şu şekildedir:

Model MAPE:
0.14353867606052823

Model Accuracy:
0.8564613239394718

İki tahmin doğruluğu ölçümünden, modelin genellikle +- 4,00 ABD doları ve yaklaşık %15 hata içinde veri kümesinin özelliklerinden taksi ücretlerini tahmin etme konusunda oldukça iyi olduğunu görürsünüz.

Geleneksel makine öğrenmesi modeli geliştirme süreci oldukça yoğun kaynak kullanır. Onlarca modelin sonuçlarını çalıştırmak ve karşılaştırmak için önemli bir etki alanı bilgisi ve zaman yatırımı gerektirir. Otomatik makine öğrenmesini kullanmak, senaryonuz için birçok farklı modeli hızla test etmenin harika bir yoludur.

Kaynakları temizleme

Diğer Azure Machine Learning öğreticilerinde çalışmayı planlamıyorsanız, artık ihtiyacınız olmayan kaynakları kaldırmak için aşağıdaki adımları tamamlayın.

İşlemi durdurma

İşlem kullandıysanız, kullanmadığınız sanal makineyi durdurabilir ve maliyetlerinizi düşürebilirsiniz:

  1. Azure Machine Learning stüdyosu çalışma alanınıza gidin ve İşlem'i seçin.

  2. Listede, durdurmak istediğiniz işlem öğesini ve ardından Durdur'u seçin.

İşlemi yeniden kullanmaya hazır olduğunuzda sanal makineyi yeniden başlatabilirsiniz.

Diğer kaynakları silme

Bu öğreticide oluşturduğunuz kaynakları kullanmayı planlamıyorsanız, bunları silebilir ve ek ücret ödemekten kaçınabilirsiniz.

Kaynak grubunu ve tüm kaynakları kaldırmak için şu adımları izleyin:

  1. Azure portalda Kaynak grupları’na gidin.

  2. Listede, bu öğreticide oluşturduğunuz kaynak grubunu seçin ve ardından Kaynak grubunu sil'i seçin.

  3. Onay isteminde kaynak grubu adını girin ve Sil'i seçin.

Kaynak grubunu korumak ve yalnızca tek bir çalışma alanını silmek istiyorsanız şu adımları izleyin:

  1. Azure portalında, kaldırmak istediğiniz çalışma alanını içeren kaynak grubuna gidin.

  2. Çalışma alanını seçin, Özellikler'i ve ardından Sil'i seçin.

Sonraki adım