Ana içeriğe atla

TabPy ile Tableau’da K Means Kümeleri Eğitimi

TabPy’nin önemini ve Tableau’da Python betiği kullanarak bir K Means kümeleme modeli oluşturmayı öğrenin.
Güncel 3 Eki 2026  · 12 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

TabPy eğitimi

TabPy nedir

TabPy, Tableau’nun Python kodu çalıştırmasını sağlayan bir çerçevedir. Kullanıcıların Python betiklerini Tableau’nun hesaplanmış alanlarında çalıştırmasına veya Python API’siyle TabPy sunucusuna fonksiyonlar dağıtmasına olanak tanır.  

TabPy, çeşitli yapılandırmalar ve yardımcı araçlarla birlikte gelen güçlü bir araçtır. Tableau görselleştirmesiyle entegre edebilirsiniz; parametreler her değiştiğinde Python betiği otomatik olarak çalışır ve size dinamik bir görselleştirme deneyimi sunar. 

Neden TabPy? 

Tableau, veri alanları oluşturma, düzenleme ve temizleme için zengin işlevler sunsa da basit istatistiksel işlevlerle sınırlıyız. Makine öğrenmesi gibi ileri istatistikleri devreye almak için Tableau’yu güçlü Python kütüphaneleriyle entegre edeceğiz. 

Etkileşimli bir DataCamp kursuyla Tableau’da çeşitli istatistiksel teknikleri öğrenin.

Bu eğitimde bir TabPy sunucusu kurmayı ve basit bir makine öğrenmesi projesi üzerinde çalışmayı öğreneceğiz. AirBnB Amsterdam ilanlarını çeşitli kümelere ayırmak için K Means algoritmasını kullanacağız. 

TabPy’yi Kurma

TabPy sunucusu kurmak kolaydır. Terminalde `pip` veya Jupyter Notebook’ta `!pip` kullanarak TabPy’yi kurabilirsiniz. Python için sunucu ve istemci API’sini otomatik olarak kuracaktır.

pip install tabpy

Sunucuyu çalıştırmak için terminale `tabpy` yazacağız. Birkaç saniye içinde sunucunun yerelde 9004 portunda çalıştığını göreceksiniz. 

tabpy

Çıktı

... Password file is not specified: Authentication is not enabled
... Call context logging is disabled
... Initializing TabPy...
... Initializing TabPy Server...
... Done initializing TabPy.
... Setting max request size to 104857600 bytes
... Initializing models...
... Web service listening on port 9004

TabPy Sunucu Yapılandırması

TabPy sunucunuzu aşağıdaki komut ve yapılandırma dosyasıyla yapılandırabilirsiniz. 

tabpy --config=path/to/my/config/file.conf

Şunları yapılandırabilirsiniz:

  • HTTP ve HTTPS bağlantısı
  • Kullanıcı Yönetimi 
  • Günlükleme (Logging)

TabPy, sunucuyu güvenlik ve kalite güvencesine ilişkin şirket politikasına göre özelleştirme özgürlüğü sunar. Örnek yapılandırma dosyasına göz atabilir ve belirli gereksinimlerle bir sunucunun nasıl kurulacağını öğrenebilirsiniz. 

TabPy’yi Heroku’ya Dağıtma

Tableau Cloud veya Tableau Server kullanıyorsanız, bir TabPy sunucusunu buluta veya bir web barındırma platformuna dağıtmanız gerekir. Bunu bir Docker dosyası kullanarak veya sunucuyu doğrudan Heroku’ya dağıtarak gerçekleştirebilirsiniz. 

Uzaktaki sunucuyu Heroku’da çalıştırmak için:

  • Heroku hesabınıza bir tarayıcı üzerinden giriş yapın; hesabınız yoksa ücretsiz kaydolun.
  • GitHub’daki TabPy deposuna gidin ve Readme’deki "Deploy to Heroku" düğmesine tıklayın.

Heroku’ya dağıtın

  • Yönergeleri izleyin. Sunucu adını yazın ve sunucu konumunu seçin.
  • Ortam değişkenleri olarak kullanıcı adı ve parolayı ayarlayın.

Sunucunuz zahmetsizce dağıtılır. Tableau’yu URL ve port numarasıyla bağlayabilirsiniz. 

TabPy’ye Bağlanma

Tableau ile bağlamadan önce TabPy sunucunuzun yerelde veya uzaktan çalıştığından emin olun.  

Sunucuya bağlanmak için Yardım menüsüne tıklayıp Ayarlar ve Performans > Analitik Uzantısı Bağlantısını Yönet seçeneğini seçmemiz gerekir. TabPy, Einstein Discovery, RServe ve Analytics Extension API gibi çeşitli bağlantı türlerinin olduğu yeni bir pencere açılacaktır. 

Analitik Uzantısı Bağlantısını Yönet

TabPy seçeneğini seçeceğiz; bu da Ana Makine Adı, Port, Kullanıcı Adı ve Parola eklememizi isteyen başka bir pencere açacaktır. Kullanıcı adı ve parola seçeneğini henüz ayarlamadığımız için yok sayacağız.

Sonraki adımda Hostname olarak “localhost” ve Port olarak “9004” ekleyip Bağlantıyı Sınaya basacağız. Testi geçtikten sonra bağlantı yapılandırmasını kaydedeceğiz. 

Analitik Uzantıları Bağlantısını Yönet

Tableau Hesaplamalarında Python Kullanma

Bir hesaplanmış alanda Python betiği çalıştırmak için çıktınıza göre şu betik fonksiyonlarından birine ihtiyacınız vardır:

  • SCRIPT_BOOL
  • SCRIPT_INT
  • SCRIPT_REAL
  • SCRIPT_STR

Fonksiyonunuz boole değerleri döndürüyorsa SCRIPT_BOOL fonksiyonunu kullanın. Yerel fonksiyonlarla her zaman tamsayı alıp diğer türlere dönüştürebilirsiniz. 

Bu bölümde Kaggle’dan bir mağaza satış veri seti kullanacağız. Sales ve Profit veri alanı Pearson korelasyon katsayısını hesaplar. 

Mağaza satış veri seti

SCRIPT_REAL iki kısım gerektirir. İlki çift tırnak içinde Python betiği, ikincisi ise toplanmış argümanlardır. 

Numpy Python paketini Sales ve Profit argümanları arasındaki korelasyonu hesaplamak için kullanacağız. Argümanları doğrudan ekleyemeyiz. Bunun yerine “_arg1” ve “_arg2” gibi yer tutucular kullanırız. Örneğin, SUM([Profit]) sırada ikinci olduğundan “_arg2” ile ilişkilidir.

Tek bir sütun döndürmek için np.corrcoef matrisinden yalnızca korelasyon katsayısını çıkarıyoruz. 

SCRIPT_REAL("import numpy as np
return np.corrcoef(_arg1,_arg2)[0,1]",
SUM([Sales]),SUM([Profit]))

Betik “Correlation” hesaplanmış alanına eklendikten sonra uygula düğmesine tıklayın. Betik çalışacak ve Customer Name ile ilişkili değerleri döndürecektir. 

Tamam düğmesine basmadan önce “Varsayılan Tablo Hesaplaması” metnine tıklayın ve seçeneği Otomatikten Customer Namee değiştirin. 

Tablo Hesaplaması

Ürün kategorisi ve müşteri segmentasyonunun saçılım grafiğini görselleştirmek için: 

  1. Ürün Category ve Sales veri alanını Columns rafına sürükleyip bırakın.
  2. Ardından, Customer Segment ve Profit veri alanını Rows rafına sürükleyip bırakın. 
  3. Customer Namei Marks bölümündeki Detail düğmesine sürükleyip bırakın. 
  4. Son olarak, yeni oluşturulan Correlation hesaplanmış alanını Marks bölümündeki Label düğmesine sürükleyip bırakın. 

Ürün kategorisi ve müşteri segmentasyonu saçılım grafiği

Yukarıdaki grafik, ürün kategorisi ve müşteri segmentine göre müşterilerin korelasyon katsayısını göstermektedir. Furniture kategorisi ile Small Business müşterileri arasında yüksek bir korelasyon vardır.     

Tableau’da Kümeleme için Python Betiği

Bu bölümde, K-means kümeleme algoritması ve scikit-learn makine öğrenmesi çatısı kullanılarak kümeler oluşturmak için Airbnb Amsterdam veri setini kullanacağız. 

ilanlar

TabPy betiklemeye geçmeden önce veri setini Jupyter Notebook üzerinde analiz edip anlamamız gerekir. 

Proje Başlatma 

Veri alma ve temizleme için pandas, görselleştirme için matplotlib ve seaborn, veriyi işlemek ve kümeleme algoritmaları için ise scikit-learn kullanacağız.

Önce gerekli Python paketlerini içe aktaracak ve “listing.csv” dosyasını alacağız. Ardından .isna().sum() ile eksik değerleri inceleyeceğiz.

mport pandas as pd

import matplotlib.pyplot as plt
import seaborn as sns

from sklearn.preprocessing import LabelEncoder
from sklearn.cluster import KMeans


df = pd.read_csv("listings.csv")
df.isna().sum()

Gözlemleyebileceğimiz gibi, neighbourhood_group, last_review ve reviews_per_month sütunlarında çok sayıda eksik değer var. Bu sütunları atamak veya silmek yerine, modelimizi eğitirken dahil etmeyeceğiz. 

id                                    0
name                                 38
host_id                               0
host_name                             4
neighbourhood_group               20030
neighbourhood                         0
latitude                              0
longitude                             0
room_type                             0
price                                 0
minimum_nights                        0
number_of_reviews                     0
last_review                        2406
reviews_per_month                  2406
calculated_host_listings_count        0
availability_365                      0
dtype: int64

Veriyi İşleme

Eğitim için gerekli özellikleri içeren bir X veri çerçevesi oluşturacağız. Bu özelliklerde eksik değer, benzersiz kimlik veya yüksek korelasyon olmayacak. Örneğin id, name, host_id, host_name, latitude ve longitude’u dahil etmeyeceğiz.

Kategorik sütunlarımız var ve bunları sayısal değere dönüştürmek için LabelEncoder() kullanacağız. Birden çok kategorik sütuna uygulamak için Pandas .apply() işlevinden yararlanacağız.  

X = df[['neighbourhood',
        'room_type',
        'price',
        'minimum_nights',
        'number_of_reviews',
        'availability_365',
        'calculated_host_listings_count']]
LE = LabelEncoder()
cat = ['neighbourhood','room_type']

X[cat] = X[cat].apply(LE.fit_transform)
X.head()

nihai veri çerçevesi

Görüldüğü gibi nihai veri çerçevesi sayısal değerlere sahip yedi sütun içerir. 

K Means Dirsek Noktasını Arama

Dirsek yöntemi, belirli bir veri kümesinde en uygun küme sayısını belirlemek için kullanılır. Dirsek benzeri desenler sergileyen çizgi grafikleri göstermek için n_clusters ve .inertia_ kullanacağız. Eylemsizlik (Inertia), örneklerin en yakın küme merkezine olan kareli uzaklıklarının toplamıdır. 

Aşağıdaki kod 1’den 9’a kadar çalışacak ve eylemsizlik değerlerini clusters dizisine ekleyecek. Daha sonra bu bilgiyi kullanarak kümeler ile eylemsizlik grafiğini çizeceğiz. 

clusters = []

for i in range(1, 10):
    km = KMeans(n_clusters=i).fit(X)
    clusters.append(km.inertia_)
 
fig, ax = plt.subplots(figsize=(12, 8))
sns.lineplot(x=list(range(1, 10)), y=clusters, ax=ax)
ax.set_title('Searching for Elbow')
ax.set_xlabel('Clusters')
ax.set_ylabel('Inertia');

Dirsek benzeri desenlere sahip çizgi grafikleri

Grafik ilk kemerin 3’te, ikinci kemerin 4’te olduğunu gösteriyor. Tableau görsel analizine her iki küme sayısını da dahil edeceğiz. 

scikit-learn ile Python’da K Means kümelemeyi eğitimimizi takip ederek daha fazla öğrenebilirsiniz.  

N-Küme Parametresi Oluşturma

Koddaki küme sayısını elle eklemekten kaçınmak için 1’den 10’a kadar aralığı olan bir parametre oluşturacağız. 

Parametreleri Data bölümünde sağ tıklayıp Create Parameter seçeneğini seçerek oluşturabiliriz. Data typeı Integer, Current valueyu 1 olarak değiştirin ve Rangee tıklayıp Minimum 1 ve Maximum 10 değerlerini ekleyin. 

Parametre Oluşturma

Hesaplanmış Alanda Python Betiği

Şimdi kodu Jupyter Notebook’tan Tableau hesaplanmış alanına aktaracağız. Tableau hesaplanmış alanı bir veri seti yüklemeyi gerektirmez. Gerekli veri alanlarına zaten sahibiz ve bunları SCRIPT_INT argümanlarıyla kullanacağız. 

  1. Bir ve iki numaralı argümanları LabelEncoder kullanarak sayısal türe dönüştüreceğiz.
  2. Tüm argümanları alıp uygun değişken adları vereceğiz. 
  3. Girdi argümanlarının tümünü N hariç sütunlar halinde istifleyeceğiz. 
  4. “N” sayıda kümeye sahip bir model tanımlayacağız. Bu değişkeni N Clusters parametresiyle değiştirebiliriz.
  5. Son olarak özellikleri kullanarak kümeleri eğitip tahmin edeceğiz.  
  6. Çıktıyı tamsayı listesı olarak döndüreceğiz. 

Betikteki ikinci kısım, toplanmış veri alanları ve bir parametredir. 

Argümanlarla veri alanları arasındaki ilişkiyi anlamak için aşağıdaki koda göz atabilirsiniz. 

SCRIPT_INT("from sklearn.preprocessing import LabelEncoder
from sklearn.cluster import KMeans

LE = LabelEncoder()

neighbourhood = LE.fit_transform(_arg1)
room_type = LE.fit_transform(_arg2)

price = _arg3
minimum_nights = _arg4
number_of_reviews = _arg5
availability_365 = _arg6
calculated_host_listings_count = _arg7

N = _arg8[0]

X = np.column_stack(
    [
        neighbourhood,
        room_type,
        price,
        minimum_nights,
        number_of_reviews,
        availability_365,
        calculated_host_listings_count,
    ]
)

kmeans = KMeans(n_clusters=N, random_state=35)
return kmeans.fit_predict(X).tolist()

",
ATTR([Neighbourhood]),
ATTR([Room Type]),
AVG([Price]),
MEDIAN([Minimum Nights]),
SUM([Number Of Reviews]),
AVG([Availability 365]),
AVG([Calculated Host Listings Count]),
[N Clusters]
)

Yeni bir hesaplanmış alan (Kmean) oluşturup yukarıdaki kodu kopyalayıp yapıştırın. Sonuçlarınızın Host Id boyunca hesaplandığından emin olun. Bunu mavi renkli Varsayılan Tablo Hesaplaması metnine tıklayarak değiştirebilirsiniz.  

Kmean hesaplanmış alanı

Veri Görselleştirme

Aşağıdaki görselleştirmeyi oluşturmak için bir dizi adımı izlememiz gerekiyor.

  1. Price veri alanını Columns rafına, Number of Reviews’i Rows rafına sürükleyip bırakın. 
  2. Üstteki Analysis menüsüne gidip Aggregate Measures işaretini kaldırın. 
  3. Host Id veri alanını Marks bölümünde Detaila, Kmean hesaplanmış alanını Colora sürükleyip bırakın. 
  4. Sağ tıklayıp seçeneğe erişerek Kmean hesaplanmış alanını Discretee değiştirin.  
  5. Parameters bölümünde N Clusters’a sağ tıklayıp Show Parameters’ı seçerek sağda kaydırıcıyı gösterin. 
  6. N Clusters kaydırıcısını 3 veya 4’e ayarlayarak sonuçları gerçek zamanlı görün.   

Fiyat ile İnceleme Sayısı Kümeleme

Bir sonraki kısımda, veri alanlarını ve küme sayısını değiştirerek birden çok görselleştirme sayfası oluşturacağız.  

  1. Price v/s Availability: dört küme görebiliyoruz. Bu bilgiye dayanarak Airbnb veya herhangi bir otel işletmesi için bir öneri sistemi oluşturabiliriz. 
  2. Review v/s Availability: N Clusters 3 olmasına rağmen yalnızca iki büyük küme görebiliyoruz.  
  3. Listings v/s Price: kırmızı, mavi ve yeşil kümeleri görebiliyoruz. Köşedeki sarı ise yeşil ve maviler tarafından çevrelenmiş durumda. 

çeşitli kümeler

İleri analitik ve görselleştirme hakkında daha fazla bilgi edinmek için Tableau’da Verileri Analiz Etme kursumuzu alın. Bu kurs, veri hazırlama, keşif, haritalama analizi, gruplar, kümeler ve parametreleri anlamanıza yardımcı olacaktır.   

Kümeleme eğitiminden keyif aldıysanız, veri noktalarını bir haritaya dönüştürmeyi deneyin. Latitude ve Longitudeu sırasıyla Columns ve Rows raflarına sürükleyip bırakmanız yeterlidir. 

Coğrafi Kmean Kümeleme

TabPy olmadan da kümeler oluşturabilirsiniz; bunun için Tableau’da Küme Analizi eğitimimizi izleyin. 

Sonuç

TabPy’yi entegre ederek mevcut veri analitiği kurulumunuzu otomatikleştirmek ve geliştirmek için sonsuz olanakların kapısını aralarsınız. Ayrıca derin öğrenme modellerini bir analitik panosuna entegre etmek, karmaşık istatistiksel görevler gerçekleştirmek ve sürekli entegrasyon ile geliştirme uygulamak için de kullanabiliriz. 

TabPy entegrasyonu, tek çıktı gibi çeşitli kısıtlamalarla birlikte gelir. Bu kısıtlamalar yalnızca Veri Bilimci veya Makine Öğrenimi Mühendisi olan kişileri etkileyecektir. 

Bu yazıda TabPy’yi (Tableau için Python sunucusu) ve bunu kullanarak K Means kümeleri nasıl oluşturacağımızı öğrendik. Kümeler oluşturmak, e-ticaret, seyahat ve eğlence sektörleri için müşterilerin davranışlarını anlamada önemlidir. Biz K Means kümesini kullandık, ancak daha iyi sonuçlar için diğer algoritmaları da kullanabilirsiniz. 

Önde gelen kümeleme algoritmalarının listesi:

  • Affinity Propagation
  • Toplu Hiyerarşik Kümeleme (Agglomerative Hierarchical Clustering)
  • BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies)
  • DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
  • Gaussian Karışım Modelleri (GMM)
  • Mean Shift Kümeleme

Tableau’da yeniyseniz ve veri görselleştirme ile istatistiksel hesaplamayı baştan sona öğrenmek istiyorsanız, Tableau Fundamentals yetkinlik yolunu alın. 

Bu eğitim serisinin ikinci bölümünde, TabPy ile karmaşık Python betiklerini keşfediyoruz. Facebook Prophet tahmin modelini TabPy sunucusuna dağıtmayı ve dinamik zaman serisi görselleştirmesi oluşturmayı öğreneceğiz.

Konular
Tableau
Veri Bilimi
Python

Tableau Kursları

Kurs

Tableau'ya Giriş

6 sa
328.6K
Tableau yolculuğunuza Tableau'ya Giriş kursumuzla başlayın. Tableau'nun özellikleri ve gösterge tabloları gibi temel bilgilerini keşfedin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör