1. Genel Bakış
Bu laboratuvarda, finansal veriler üzerinde eğitilmiş bir XGBoost modelini analiz etmek için What-if Tool'u kullanacaksınız. Modeli analiz ettikten sonra Cloud'un yeni Vertex AI'ına dağıtırsınız.
Öğrenecekleriniz
Öğrenecekleriniz:
- Barındırılan bir not defterinde herkese açık bir ipotek veri kümesi üzerinde XGBoost modeli eğitme
- What-If Aracı'nı kullanarak modeli analiz etme
- XGBoost modelini Vertex AI'a dağıtma
Bu laboratuvarı Google Cloud'da çalıştırmanın toplam maliyeti yaklaşık 1 ABD dolarıdır.
2. Vertex AI'a giriş
Bu laboratuvarda, Google Cloud'da sunulan en yeni yapay zeka ürünü kullanılmaktadır. Vertex AI, Google Cloud'daki makine öğrenimi tekliflerini sorunsuz bir geliştirme deneyimi için entegre eder. Daha önce, AutoML ile eğitilmiş modeller ve özel modeller ayrı hizmetler üzerinden erişilebiliyordu. Yeni teklif, diğer yeni ürünlerle birlikte bu iki ürünü tek bir API'de birleştirir. Mevcut projeleri de Vertex AI'a taşıyabilirsiniz. Geri bildiriminiz varsa lütfen destek sayfasına göz atın.
Vertex AI, uçtan uca makine öğrenimi iş akışlarını desteklemek için birçok farklı ürün içerir. Bu laboratuvarda, aşağıda vurgulanan ürünlere (Tahmin ve Not Defterleri) odaklanılacaktır.

3. XGBoost hakkında kısa bilgiler
XGBoost, tahmin modelleri oluşturmak için karar ağaçları ve gradyan artırma kullanan bir makine öğrenimi çerçevesidir. Bir ağaçtaki farklı yaprak düğümleriyle ilişkili puana göre birden fazla karar ağacını bir araya getirerek çalışır.
Aşağıdaki diyagram, hava durumuna göre bir spor müsabakasının oynanıp oynanmaması gerektiğini değerlendiren basit bir karar ağacı modelinin görselleştirilmiş halidir:

Bu modelde neden XGBoost kullanıyoruz? Geleneksel sinir ağlarının, resim ve metin gibi yapılandırılmamış verilerde en iyi performansı gösterdiği kanıtlanmış olsa da karar ağaçları, bu codelab'de kullanacağımız ipotek veri kümesi gibi yapılandırılmış verilerde genellikle son derece iyi performans gösterir.
4. Ortamınızı ayarlama
Bu codelab'i çalıştırmak için faturalandırmanın etkin olduğu bir Google Cloud Platform projesine ihtiyacınız vardır. Proje oluşturmak için buradaki talimatları uygulayın.
1. adım: Compute Engine API'yi etkinleştirin
Compute Engine'e gidin ve henüz etkinleştirilmemişse Etkinleştir'i seçin. Not defteri örneğinizi oluşturmak için bu bilgiye ihtiyacınız vardır.
2. adım: Vertex AI API'yi etkinleştirin
Cloud Console'unuzun Vertex bölümüne gidin ve Vertex AI API'yi etkinleştir'i tıklayın.

3. adım: Notebooks örneği oluşturun
Cloud Console'unuzun Vertex bölümünde Not Defterleri'ni tıklayın:

Buradan Yeni örnek'i seçin. Ardından, GPU'suz TensorFlow Enterprise 2.3 örnek türünü seçin:

Varsayılan seçenekleri kullanıp Oluştur'u tıklayın. Örnek oluşturulduktan sonra Open JupyterLab'i (JupyterLab'i aç) seçin.
4. adım: XGBoost'u yükleyin
JupyterLab örneğiniz açıldıktan sonra XGBoost paketini eklemeniz gerekir.
Bunu yapmak için başlatıcıdan Terminal'i seçin:

Ardından, Vertex AI tarafından desteklenen XGBoost'un en son sürümünü yüklemek için aşağıdakileri çalıştırın:
pip3 install xgboost==1.2
Bu işlem tamamlandıktan sonra başlatıcıdan bir Python 3 not defteri örneği açın. Not defterinizi kullanmaya başlayabilirsiniz.
5. adım: Python paketlerini içe aktarın
Not defterinizin ilk hücresine aşağıdaki içe aktarma işlemlerini ekleyin ve hücreyi çalıştırın. Bu işlemi, üst menüdeki sağ ok düğmesine veya command-enter tuşlarına basarak uygulayabilirsiniz:
import pandas as pd
import xgboost as xgb
import numpy as np
import collections
import witwidget
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, confusion_matrix
from sklearn.utils import shuffle
from witwidget.notebook.visualization import WitWidget, WitConfigBuilder
5. Verileri indirme ve işleme
XGBoost modelini eğitmek için ffiec.gov adresindeki bir ipotek veri kümesini kullanacağız. Orijinal veri kümesinde bazı ön işlemler yaptık ve modeli eğitmek için kullanabileceğiniz daha küçük bir sürüm oluşturduk. Model, belirli bir ipotek başvurusunun onaylanıp onaylanmayacağını tahmin eder.
1. adım: Önceden işlenmiş veri kümesini indirin
Veri kümesinin bir sürümünü Google Cloud Storage'da sizin için kullanıma sunduk. Aşağıdaki gsutil komutu Jupyter not defterinizde çalıştırarak indirebilirsiniz:
!gsutil cp 'gs://mortgage_dataset_files/mortgage-small.csv' .
2. adım: Veri kümesini Pandas ile okuyun
Pandas DataFrame'imizi oluşturmadan önce, Pandas'ın veri kümemizi doğru şekilde okuması için her sütunun veri türünün dict oluşturacağız:
COLUMN_NAMES = collections.OrderedDict({
'as_of_year': np.int16,
'agency_code': 'category',
'loan_type': 'category',
'property_type': 'category',
'loan_purpose': 'category',
'occupancy': np.int8,
'loan_amt_thousands': np.float64,
'preapproval': 'category',
'county_code': np.float64,
'applicant_income_thousands': np.float64,
'purchaser_type': 'category',
'hoepa_status': 'category',
'lien_status': 'category',
'population': np.float64,
'ffiec_median_fam_income': np.float64,
'tract_to_msa_income_pct': np.float64,
'num_owner_occupied_units': np.float64,
'num_1_to_4_family_units': np.float64,
'approved': np.int8
})
Ardından, yukarıda belirttiğimiz veri türlerini ileterek bir DataFrame oluşturacağız. Orijinal veri kümesi belirli bir şekilde sıralanmışsa verilerimizi karıştırmamız önemlidir. Bunu yapmak için ilk hücreye aktardığımız shuffle adlı bir sklearn yardımcı programını kullanırız:
data = pd.read_csv(
'mortgage-small.csv',
index_col=False,
dtype=COLUMN_NAMES
)
data = data.dropna()
data = shuffle(data, random_state=2)
data.head()
data.head(), Pandas'taki veri kümemizin ilk beş satırını önizlememize olanak tanır. Yukarıdaki hücreyi çalıştırdıktan sonra şuna benzer bir sonuç görürsünüz:

Modelimizi eğitmek için kullanacağımız özellikler şunlardır: En sona kaydırdığınızda, tahmin ettiğimiz şey olan son sütunu approved görürsünüz. 1 değeri, belirli bir uygulamanın onaylandığını, 0 değeri ise reddedildiğini gösterir.
Veri kümesindeki onaylanan / reddedilen değerlerin dağılımını görmek ve etiketlerin bir numpy dizisini oluşturmak için aşağıdakileri çalıştırın:
# Class labels - 0: denied, 1: approved
print(data['approved'].value_counts())
labels = data['approved'].values
data = data.drop(columns=['approved'])
Veri kümesinin yaklaşık% 66'sı onaylanmış uygulamaları içerir.
3. adım: Kategorik değerler için sahte sütun oluşturma
Bu veri kümesi, kategorik ve sayısal değerlerin bir karışımını içerir ancak XGBoost, tüm özelliklerin sayısal olmasını gerektirir. Kategorik değerleri one-hot kodlama kullanarak temsil etmek yerine, XGBoost modelimizde Pandas get_dummies işlevinden yararlanacağız.
get_dummies, birden çok olası değer içeren bir sütunu alır ve her biri yalnızca 0 ve 1 içeren bir sütun serisine dönüştürür. Örneğin, olası değerleri "mavi" ve "kırmızı" olan bir "renk" sütunumuz varsa get_dummies, bunu "color_blue" ve "color_red" adlı 2 sütuna dönüştürür ve tüm Boole değerleri 0 ve 1 olur.
Kategorik özelliklerimiz için sahte sütunlar oluşturmak üzere aşağıdaki kodu çalıştırın:
dummy_columns = list(data.dtypes[data.dtypes == 'category'].index)
data = pd.get_dummies(data, columns=dummy_columns)
data.head()
Bu kez verileri önizlediğinizde, tek özelliklerin (ör. aşağıda gösterilen purchaser_type) birden fazla sütuna bölündüğünü görürsünüz:

4. adım: Verileri eğitim ve test kümelerine bölme
Makine öğrenimindeki önemli kavramlardan biri eğitim / test ayrımıdır. Verilerimizin çoğunu alıp modelimizi eğitmek için kullanacağız. Geri kalanını ise modelimizi daha önce hiç görmediği verilerle test etmek için ayıracağız.
Verilerimizi bölmek için Scikit-learn işlevi train_test_split'yı kullanan not defterinize aşağıdaki kodu ekleyin:
x,y = data.values,labels
x_train,x_test,y_train,y_test = train_test_split(x,y)
Artık modelinizi oluşturup eğitmeye hazırsınız.
6. XGBoost modeli oluşturma, eğitme ve değerlendirme
1. adım: XGBoost modelini tanımlayın ve eğitin
XGBoost'ta model oluşturmak kolaydır. Modeli oluşturmak için XGBClassifier sınıfını kullanacağız ve belirli sınıflandırma görevimiz için doğru objective parametresini iletmemiz yeterli olacak. Bu durumda, ikili sınıflandırma problemimiz olduğu ve modelin (0,1) aralığında tek bir değer (onaylanmadı için reg:logistic, onaylandı için 1) vermesini istediğimiz için reg:logistic kullanıyoruz.0
Aşağıdaki kod, bir XGBoost modeli oluşturur:
model = xgb.XGBClassifier(
objective='reg:logistic'
)
fit() yöntemini çağırıp eğitim verilerini ve etiketlerini ileterek modeli tek bir kod satırıyla eğitebilirsiniz.
model.fit(x_train, y_train)
2. adım: Modelinizin doğruluğunu değerlendirin
Artık eğitilmiş modelimizi kullanarak predict() işleviyle test verilerimiz üzerinde tahminler oluşturabiliriz.
Ardından, modelimizin test verilerimizdeki performansına göre doğruluğunu hesaplamak için Scikit-learn'ün accuracy_score() işlevini kullanacağız. Bu işleme, test setimizdeki her örnek için kesin referans değerleri ve modelin tahmin edilen değerleri iletilir:
y_pred = model.predict(x_test)
acc = accuracy_score(y_test, y_pred.round())
print(acc, '\n')
Doğruluk oranı yaklaşık %87 olmalıdır ancak makine öğreniminde her zaman rastgelelik unsuru olduğundan bu oran sizde biraz farklılık gösterebilir.
3. adım: Modelinizi kaydedin
Modeli dağıtmak için aşağıdaki kodu çalıştırarak modeli yerel bir dosyaya kaydedin:
model.save_model('model.bst')
7. Modelinizi yorumlamak için What-If Aracı'nı kullanma
1. adım: Senaryo Analizi Aracı görselleştirmesini oluşturun
Ne Olursa Olsun Aracı'nı yerel modelinize bağlamak için bu araca, test örneklerinizin bir alt kümesini ve bu örneklerin kesin referans değerlerini iletmeniz gerekir. Şimdi, gerçek referans değer etiketleriyle birlikte 500 test örneğimizden oluşan bir NumPy dizisi oluşturalım:
num_wit_examples = 500
test_examples = np.hstack((x_test[:num_wit_examples],y_test[:num_wit_examples].reshape(-1,1)))
What-If Aracı'nı başlatmak, WitConfigBuilder nesnesi oluşturup analiz etmek istediğimiz modeli bu nesneye iletmek kadar basittir.
Ne Olursa Olsun Aracı, modelimizdeki her sınıf için bir puan listesi (bu örnekte 2) beklediğinden Ne Olursa Olsun Aracı ile XGBoost'un predict_proba yöntemini kullanacağız:
config_builder = (WitConfigBuilder(test_examples.tolist(), data.columns.tolist() + ['mortgage_status'])
.set_custom_predict_fn(model.predict_proba)
.set_target_feature('mortgage_status')
.set_label_vocab(['denied', 'approved']))
WitWidget(config_builder, height=800)
Görselleştirmenin yüklenmesinin bir dakika süreceğini unutmayın. Yüklendiğinde aşağıdakileri görmeniz gerekir:

Y ekseni, modelin tahminini gösterir. 1, yüksek güvene sahip bir approved tahmini, 0 ise yüksek güvene sahip bir denied tahminidir. X ekseni, yalnızca yüklenen tüm veri noktalarının dağılımıdır.
2. adım: Tek tek veri noktalarını inceleyin
Ne Olursa Olsun Aracı'ndaki varsayılan görünüm Veri noktası düzenleyici sekmesidir. Burada, özelliklerini görmek, özellik değerlerini değiştirmek ve bu değişikliğin modelin tek bir veri noktasıyla ilgili tahminini nasıl etkilediğini görmek için herhangi bir veri noktasını tıklayabilirsiniz.
Aşağıdaki örnekte, 0,5 eşiğine yakın bir veri noktası seçtik. Bu belirli veri noktasıyla ilişkili ipotek başvurusu CFPB'den gelmiştir. Bu özelliği 0 olarak değiştirdik ve bu kredinin HUD'dan alınması durumunda modelin tahmininde ne gibi değişiklikler olacağını görmek için agency_code_Department of Housing and Urban Development (HUD) değerini 1 olarak değiştirdik:

Ne Olursa Olsun Aracı'nın sol alt bölümünde görebileceğimiz gibi, bu özelliği değiştirmek modelin approved tahminini %32 oranında düşürdü. Bu durum, kredinin alındığı kurumun modelin çıktısı üzerinde büyük bir etkisi olduğunu gösterebilir ancak emin olmak için daha fazla analiz yapmamız gerekir.
Kullanıcı arayüzünün sol alt kısmında, her veri noktasının kesin referans değerini de görebilir ve modelin tahminiyle karşılaştırabiliriz:

3. adım: Karşı olgusal analiz
Ardından, herhangi bir veri noktasını tıklayın ve En yakın karşı olgusal veri noktasını göster kaydırma çubuğunu sağa hareket ettirin:

Bu seçeneği belirlediğinizde, seçtiğiniz orijinal veri noktasına en benzer özellik değerlerine sahip olan ancak tahmini ters yönde olan veri noktası gösterilir. Ardından, iki veri noktasının nerede farklılaştığını görmek için özellik değerleri arasında kaydırabilirsiniz (farklılıklar yeşil renkte ve kalın olarak vurgulanır).
4. adım: Kısmi bağımlılık grafiklerine bakın
Her özelliğin modelin genel tahminlerini nasıl etkilediğini görmek için Kısmi bağımlılık grafikleri kutusunu işaretleyin ve Genel kısmi bağımlılık grafikleri'nin seçili olduğundan emin olun:

Burada, HUD'dan alınan kredilerin reddedilme olasılığının biraz daha yüksek olduğunu görüyoruz. Grafiğin bu şekilde olmasının nedeni, ajans kodunun bir boole özelliği olmasıdır. Bu nedenle değerler yalnızca tam olarak 0 veya 1 olabilir.
applicant_income_thousands sayısal bir özelliktir ve kısmi bağımlılık grafiğinde daha yüksek gelirin, başvurunun onaylanma olasılığını biraz artırdığını ancak yalnızca yaklaşık 200.000 ABD dolarına kadar artırdığını görebiliriz. 200.000 ABD dolarından sonra bu özellik, modelin tahminini etkilemez.
5. adım: Genel performansı ve tarafsızlığı inceleyin
Ardından Performans ve Algoritmik Adalet sekmesine gidin. Bu bölümde, sağlanan veri kümesindeki modelin sonuçlarıyla ilgili genel performans istatistikleri (karmaşıklık matrisleri, PR eğrileri ve ROC eğrileri dahil) gösterilir.
Karışıklık matrisini görmek için Gerçek Doğru Özelliği olarak mortgage_status simgesini seçin:

Bu karışıklık matrisi, modelimizin doğru ve yanlış tahminlerini toplamın yüzdesi olarak gösterir. Gerçek Evet / Tahmin Edilen Evet ve Gerçek Hayır / Tahmin Edilen Hayır karelerini topladığınızda modelinizle aynı doğruluk oranını elde etmeniz gerekir (bu örnekte yaklaşık %87'dir ancak makine öğrenimi modellerinin eğitiminde rastgelelik unsuru olduğundan modeliniz biraz farklılık gösterebilir).
Ayrıca, modelin kredi için approved tahminine karar vermeden önce döndürmesi gereken pozitif sınıflandırma puanını yükseltip alçaltarak eşik kaydırıcısıyla denemeler yapabilir ve bunun doğruluğu, yanlış pozitifleri ve yanlış negatifleri nasıl değiştirdiğini görebilirsiniz. Bu durumda doğruluk, 0,55 eşiğinde en yüksektir.
Ardından, soldaki Dilimle açılır listesinde loan_purpose_Home_purchase simgesini seçin:

Artık verilerinizin iki alt kümesindeki performansı göreceksiniz: "0" dilimi, kredinin ev satın alma için olmadığı zamanı, "1" dilimi ise kredinin ev satın alma için olduğu zamanı gösterir. Performanstaki farklılıkları görmek için iki dilim arasındaki doğruluk, yanlış pozitif ve yanlış negatif oranını inceleyin.
Satırları genişleterek karmaşıklık matrislerine baktığınızda modelin, ev satın alma amaçlı kredi başvurularının yaklaşık% 70'i ve ev satın alma amaçlı olmayan kredilerin yalnızca% 46'sı için "onaylandı" tahmininde bulunduğunu görebilirsiniz (Kesin yüzdeler modelinize göre değişir):

Soldaki radyo düğmelerinden Demografik eşitlik'i seçerseniz modelin her iki dilimde de benzer bir başvuru yüzdesi için approved tahmin etmesi amacıyla iki eşik ayarlanır. Bu durum, her dilimin doğruluğunu, yanlış pozitiflerini ve yanlış negatiflerini nasıl etkiler?
6. adım: Özellik dağıtımını keşfedin
Son olarak, What-If Aracı'nda Özellikler sekmesine gidin. Bu, veri kümenizdeki her özelliğin değer dağılımını gösterir:

Veri kümenizin dengeli olduğundan emin olmak için bu sekmeyi kullanabilirsiniz. Örneğin, veri kümesindeki çok az sayıda kredinin Farm Service Agency'den alındığı görülüyor. Modelin doğruluğunu artırmak için veriler mevcutsa bu kuruluştan daha fazla kredi ekleyebiliriz.
Burada What-If Aracı ile ilgili keşif fikirlerinden yalnızca birkaçı açıklanmıştır. Aracı kullanmaya devam edebilirsiniz. Keşfedebileceğiniz daha birçok alan var.
8. Modeli Vertex AI'a dağıtma
Modelimiz yerel olarak çalışıyor ancak her yerden (yalnızca bu not defterinden değil) tahminlerde bulunabilmek güzel olurdu. Bu adımda, modeli buluta dağıtacağız.
1. adım: Modelimiz için Cloud Storage paketi oluşturun
Öncelikle, codelab'in geri kalanında kullanacağımız bazı ortam değişkenlerini tanımlayalım. Aşağıdaki değerleri Google Cloud projenizin adı, oluşturmak istediğiniz Cloud Storage paketinin adı (global olarak benzersiz olmalıdır) ve modelinizin ilk sürümünün sürüm adıyla doldurun:
# Update the variables below to your own Google Cloud project ID and GCS bucket name. You can leave the model name we've specified below:
GCP_PROJECT = 'your-gcp-project'
MODEL_BUCKET = 'gs://storage_bucket_name'
MODEL_NAME = 'xgb_mortgage'
Artık XGBoost model dosyamızı depolamak için bir depolama paketi oluşturmaya hazırız. Dağıtım sırasında Vertex AI'ı bu dosyaya yönlendireceğiz.
Bölgesel bir depolama paketi oluşturmak için not defterinizden şu gsutil komutu çalıştırın:
!gsutil mb -l us-central1 $MODEL_BUCKET
2. adım: Model dosyasını Cloud Storage'a kopyalayın
Ardından, XGBoost kaydedilmiş model dosyamızı Cloud Storage'a kopyalayacağız. Aşağıdaki gsutil komutunu çalıştırın:
!gsutil cp ./model.bst $MODEL_BUCKET
Dosyanın kopyalandığını doğrulamak için Cloud Console'unuzdaki depolama tarayıcısına gidin:

3. adım: Modeli oluşturun ve bir uç noktaya dağıtın
Modeli buluta dağıtmaya neredeyse hazırız. Vertex AI'da bir model birden fazla uç nokta içerebilir. Önce bir model oluşturacağız, ardından bu modelde bir uç nokta oluşturup dağıtacağız.
Öncelikle modelinizi oluşturmak için gcloud KSA'yı kullanın:
!gcloud beta ai models upload \
--display-name=$MODEL_NAME \
--artifact-uri=$MODEL_BUCKET \
--container-image-uri=us-docker.pkg.dev/cloud-aiplatform/prediction/xgboost-cpu.1-2:latest \
--region=us-central1
artifact-uri parametresi, XGBoost modelinizi kaydettiğiniz depolama konumunu gösterir. container-image-uri parametresi, Vertex AI'a sunma için hangi önceden oluşturulmuş kapsayıcının kullanılacağını bildirir. Bu komut tamamlandıktan sonra yeni modelinizin kimliğini almak için Vertex konsolunuzun modeller bölümüne gidin. Bu bilgiyi burada bulabilirsiniz:

Bu kimliği kopyalayın ve bir değişkene kaydedin:
MODEL_ID = "your_model_id"
Şimdi bu modelde bir uç nokta oluşturabilirsiniz. Bu işlemi aşağıdaki gcloud komutuyla yapabiliriz:
!gcloud beta ai endpoints create \
--display-name=xgb_mortgage_v1 \
--region=us-central1
Bu işlem tamamlandığında, uç noktanızın konumu not defteri çıkışımıza kaydedilir. Aşağıdakine benzer bir yolla uç noktanın oluşturulduğunu belirten satırı bulun: projects/project_ID/locations/us-central1/endpoints/endpoint_ID. Ardından, aşağıdaki değerleri yukarıda oluşturduğunuz uç noktanızın kimlikleriyle değiştirin:
ENDPOINT_ID = "your_endpoint_id"
Uç noktanızı dağıtmak için aşağıdaki gcloud komutunu çalıştırın:
!gcloud beta ai endpoints deploy-model $ENDPOINT_ID \
--region=us-central1 \
--model=$MODEL_ID \
--display-name=xgb_mortgage_v1 \
--machine-type=n1-standard-2 \
--traffic-split=0=100
Uç nokta dağıtımının tamamlanması yaklaşık 5-10 dakika sürer. Uç noktanız dağıtılırken konsolunuzun modeller bölümüne gidin. Modelinizi tıkladığınızda uç noktanızın dağıtıldığını görürsünüz:

Dağıtım başarıyla tamamlandığında yükleme döner simgesinin yerinde yeşil bir onay işareti görürsünüz.
4. adım: Dağıtılan modeli test edin
Dağıtılan modelinizin çalıştığından emin olmak için gcloud'u kullanarak tahmin oluşturarak modeli test edin. Öncelikle, test setimizden bir örnek içeren bir JSON dosyası kaydedin:
%%writefile predictions.json
{
"instances": [
[2016.0, 1.0, 346.0, 27.0, 211.0, 4530.0, 86700.0, 132.13, 1289.0, 1408.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0]
]
}
Aşağıdaki gcloud komutunu çalıştırarak modelinizi test edin:
!gcloud beta ai endpoints predict $ENDPOINT_ID \
--json-request=predictions.json \
--region=us-central1
Çıkışta modelinizin tahminini görmeniz gerekir. Bu örnek onaylandığı için 1'e yakın bir değer görmeniz gerekir.
9. Temizleme
Bu not defterini kullanmaya devam etmek istiyorsanız kullanmadığınız zamanlarda kapatmanız önerilir. Cloud Console'unuzdaki Notebooks kullanıcı arayüzünde not defterini ve ardından Durdur'u seçin:

Bu laboratuvarda oluşturduğunuz tüm kaynakları silmek istiyorsanız not defteri örneğini durdurmak yerine silmeniz yeterlidir.
Dağıttığınız uç noktayı silmek için Vertex konsolunuzun Uç Noktalar bölümüne gidin ve silme simgesini tıklayın:

Cloud Console'unuzdaki gezinme menüsünü kullanarak depolama paketini silmek için Storage'a gidin, paketinizi seçin ve Sil'i tıklayın:
