Oturumlaştırma ve Olay Sıralama
Olayları kullanıcı ve oturuma göre gruplandırın, zaman damgası aritmetiğiyle oturum süresini hesaplayın ve olayları kronolojik olarak sıralayın.
Oturumlaştırma ve Olay Sıralama, CoddyKit'te ücretsiz bir Pandas & NumPy Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Pandas & NumPy Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Pandas & NumPy Academy kursu toplamda 4 dersten oluşur.
Tıklama Akışı Verilerini Anlama
Bir tıklama akışı veri kümesi, her kullanıcı eylemini kaydeder: sayfa görüntülemeleri, düğme tıklamaları ve satın almalar — her biri kullanıcı_kimliği, oturum_kimliği, olay_türü ve zaman damgası içeren bir satır olarak tutulur. Herhangi bir ölçüm hesaplamadan önce şemayı anlamanız gerekir. Temsili satırları görmek ve zaman damgası sütununun metin yerine tarih-saat olarak ayrıştırıldığını doğrulamak için df.dtypes ve df.sample(5) komutlarını çalıştırın.
import pandas as pd
df = pd.read_csv('clickstream.csv', parse_dates=['timestamp'])
print(df.dtypes)
print(df.sample(5))Olayları Kronolojik Olarak Sıralama
Satırlar zaman sırasına göre düzenlenmemişse olay analizi anlamlı olmaz. Aynı kullanıcıya ait tüm olayların art arda ve doğru sırada görünmesi için önce kullanıcı_kimliğine, ardından zaman damgasına göre sıralayın. sort_values(['user_id', 'timestamp']) komutunu kullanın ve sıralanmış düzeni yansıtan temiz bir tamsayı dizisi elde etmek için dizini sıfırlayın.
df = df.sort_values(['user_id', 'timestamp']).reset_index(drop=True)
print(df[['user_id', 'session_id', 'event_type', 'timestamp']].head(10))Oturum Sınırlarını Tanımlama
Oturumlar önceden etiketlenmemişse, bunları 30 dakikalık etkinlik dışı kalma aralığı ile tanımlayabilirsiniz: aynı kullanıcıya ait önceki olaydan bu yana geçen süre 30 dakikayı aştığında yeni bir oturum başlar. Ardışık olaylar arasındaki aralığı hesaplamak için groupby('user_id')['timestamp'].diff() komutunu kullanın; ardından aralığın eşiği aştığı satırları oturum başlangıcı olarak işaretleyin.
threshold = pd.Timedelta('30min')
df['time_gap'] = df.groupby('user_id')['timestamp'].diff()
df['is_new_session'] = (df['time_gap'] > threshold) | (df['time_gap'].isna())
df['session_id_inferred'] = df.groupby('user_id')['is_new_session'].cumsum()
print(df[['user_id', 'timestamp', 'time_gap', 'session_id_inferred']].head(10))Oturum Süresini Hesaplama
Oturum süresi, bir oturumdaki ilk ve son olay arasındaki zamandır. kullanıcı_kimliği ve oturum_kimliğine göre gruplayın ve zaman damgası sütununda max - min işlemini gerçekleştirin. İnsanların kolayca yorumlayabileceği bir ölçüm elde etmek için sonuçtaki Timedelta değerini .dt.total_seconds() / 60 ile dakikaya dönüştürün. Süresi sıfır olan oturumlar tek olaylı ziyaretlerdir.
session_times = df.groupby(['user_id', 'session_id'])['timestamp'].agg(['min', 'max'])
session_times['duration_minutes'] = (session_times['max'] - session_times['min']).dt.total_seconds() / 60
print(session_times['duration_minutes'].describe())Oturum Başına Olayları Sayma
Bir oturumdaki olay sayısı, kullanıcı etkileşiminin yaklaşık bir göstergesidir. 20 olay içeren bir oturum, muhtemelen 2 olay içeren bir oturuma göre daha derin bir keşfe işaret eder. Grup başına satırları saymak ve sonucu event_count olarak adlandırmak için groupby(['user_id', 'session_id']).size() komutunu kullanın. Eksiksiz bir oturum düzeyi veri kümesi elde etmek için bu özeti oturumlar tablosuyla birleştirin.
event_counts = df.groupby(['user_id', 'session_id']).size().rename('event_count')
session_df = session_times.join(event_counts)
print(session_df.describe())İlk ve Son Olayları Belirleme
Bir oturumdaki ilk olay, giriş noktasını (ör. ana sayfa veya arama sonuçları sayfası) gösterir; son olay ise çıkış davranışını (satın alma veya hemen çıkma) gösterir. Sıralanmış DataFrame üzerinde groupby().first() ve groupby().last() komutlarını kullanın. Bu giriş ve çıkış sütunları, dönüşüm hunisi ve elde tutma analizleri için temel girdilerdir.
session_entry = df.groupby(['user_id', 'session_id'])['event_type'].first().rename('entry_event')
session_exit = df.groupby(['user_id', 'session_id'])['event_type'].last().rename('exit_event')
print(session_entry.value_counts().head())
print(session_exit.value_counts().head())Oturum İçindeki Olayları Numaralandırma
Her oturum içindeki olaylara ardışık numaralar vermek, yaygın olay dizilerinin analiz edilmesini sağlar. Bir event_rank sütunu oluşturmak için groupby(['user_id', 'session_id']).cumcount() + 1 komutunu kullanın. event_rank == 1 filtresi giriş olayını verir; en yüksek sıra numarasına göre filtreleme ise her oturumun çıkış olayını verir.
df['event_rank'] = df.groupby(['user_id', 'session_id']).cumcount() + 1
# First event of each session
landings = df[df['event_rank'] == 1]
print(landings['event_type'].value_counts())Olaylar Arasındaki Süreyi Hesaplama
Oturum içindeki ardışık olaylar arasındaki aralık olan olaylar arası süre, kullanıcıların ürün içinde ne kadar hızlı ilerlediğini gösterir. Bu süreyi groupby(['user_id', 'session_id'])['timestamp'].diff() ile hesaplayın. Belirli olay türleri arasındaki uzun aralıklar, kullanıcıların o adımda tereddüt ettiğini veya kafalarının karıştığını gösterebilir; bu da kullanıcı deneyimini iyileştirmek için bir işarettir.
df['inter_event_seconds'] = (
df.groupby(['user_id', 'session_id'])['timestamp']
.diff()
.dt.total_seconds()
)
print(df['inter_event_seconds'].describe())Kullanıcı Başına Oturum Sayısı
Kullanıcı başına oturum sayısı, her kullanıcının ne sıklıkla geri döndüğünü ölçer. Çok sayıda oturumu olan yoğun kullanıcılar, elde tutma temel performans göstergelerine önemli katkı sağlar. Kullanıcı başına oturum sayısını df.groupby('user_id')['session_id'].nunique() ile hesaplayın. Oturum sayısına pd.qcut() uygulayarak kullanıcıları tek seferlik ziyaretçiler, ara sıra kullananlar ve sık kullananlar olarak segmentlere ayırın.
sessions_per_user = df.groupby('user_id')['session_id'].nunique().rename('session_count')
print(sessions_per_user.describe())
print(sessions_per_user.value_counts().head(10))Haftanın Günlerine Göre Oturum Dağılımı
En çok oturumun hangi haftanın günlerinde gerçekleştiğini anlamak; ürün sürümlerinin, e-posta kampanyalarının ve sunucu ölçeklendirmesinin zamanlamasını planlamaya yardımcı olur. Oturum başlangıç zaman damgasından day_of_week değerini çıkarın ve buna göre gruplayın. Tamsayı değerlerini (0=Pazartesi, 6=Pazar) gün adlarıyla eşlemek, rapor ve grafiklerdeki çıktının daha okunabilir olmasını sağlar.
session_starts = df[df['event_rank'] == 1].copy()
session_starts['day_of_week'] = session_starts['timestamp'].dt.day_name()
sessions_by_day = session_starts.groupby('day_of_week').size()
print(sessions_by_day)Oturum Düzeyinde Özet Tablosu Oluşturma
Hesaplanan tüm ölçümleri — süre, olay sayısı, giriş olayı, çıkış olayı ve haftanın günü — tek bir oturum düzeyi özet DataFrame içinde birleştirin. Bu tablo, dönüşüm hunisi analizinin, elde tutma modellemesinin ve makine öğrenmesi özelliklerinin oluşturulmasının temelini oluşturur. Her satır, ham bir olay yerine bir oturumu temsil eder.
session_summary = session_df.join(session_entry).join(session_exit)
session_summary = session_summary.reset_index()
print(session_summary.columns.tolist())
print(session_summary.head())Hızlı Kontrol
Bu dersteki Veri Analizi kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: olayları kronolojik olarak sıralamayı ve zaman aralıklarından oturum sınırlarını çıkarsamayı, oturum süresini ve oturum başına olay sayılarını hesaplamayı ve sonraki analizler için oturum düzeyinde bir özet tablosu oluşturmayı. Sırada, ürün adımları arasındaki dönüşümü ölçmek için dönüşüm hunisi analizini inceliyoruz.
Sıkça Sorulan Sorular
“Oturumlaştırma ve Olay Sıralama” dersi ücretsiz mi?
Evet — “Oturumlaştırma ve Olay Sıralama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Pandas & NumPy Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Pandas & NumPy Academy kursu toplamda 4 dersten oluşur.
“Oturumlaştırma ve Olay Sıralama” dersinde ne öğreneceğim?
Olayları kullanıcı ve oturuma göre gruplandırın, zaman damgası aritmetiğiyle oturum süresini hesaplayın ve olayları kronolojik olarak sıralayın. Pandas & NumPy Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Pandas & NumPy Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Pandas & NumPy Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Oturumlaştırma ve Olay Sıralama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Pandas & NumPy Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Pandas & NumPy Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Oturumlaştırma ve Olay Sıralama
- Huni Analizi
- Kohort Elde Tutma Tablosu
- Kullanıcı Yolculuklarını Görselleştirme