Kohorttien pysyvyystaulukko
Rakentakaa kohorttien pysyvyysmatriisi, joka näyttää, kuinka suuri prosenttiosuus viikon 0 käyttäjistä on aktiivisia seuraavina viikkoina, käyttämällä pivot_table-funktiota.
Kohorttien pysyvyystaulukko on ilmainen Pandas & NumPy Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Pandas & NumPy Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Pandas & NumPy Academy-kurssilla on yhteensä 4 oppituntia.
Mikä on kohortin pysyvyystaulukko?
Kohortin pysyvyystaulukko ryhmittelee käyttäjät sen viikon (tai kuukauden) mukaan, jolloin he käyttivät tuotetta ensimmäisen kerran, ja seuraa sitten, kuinka suuri prosenttiosuus kustakin kohortista on edelleen aktiivinen seuraavina viikkoina. Rivi 0 näyttää aina arvon 100 %, koska viikko 0 määritellään rekisteröitymisviikoksi. Myöhempien sarakkeiden arvot paljastavat, kuinka nopeasti tuote menettää käyttäjiä — mitä hitaammin arvot laskevat, sitä parempi pysyvyys on.
import pandas as pd
df = pd.read_csv('user_events.csv', parse_dates=['event_date'])
print(df.dtypes)
print(df.head())Kohdeviikon määrittäminen kullekin käyttäjälle
Kohdeviikko on kunkin käyttäjän ensimmäisen tapahtuman viikko. Etsikää kunkin käyttäjän ensimmäisen tapahtuman päivämäärä komennolla groupby('user_id')['event_date'].min() ja muuntakaa se ISO-viikoksi komennolla .dt.to_period('W'). Yhdistäkää tämä kohdetunniste takaisin tapahtumien pääasialliseen DataFrameen, jotta jokaisella rivillä tiedetään, mihin kohdeviikkoon sen käyttäjä kuuluu.
cohort_week = df.groupby('user_id')['event_date'].min().dt.to_period('W').rename('cohort_week')
df = df.join(cohort_week, on='user_id')
df['event_week'] = df['event_date'].dt.to_period('W')
print(df[['user_id', 'event_date', 'cohort_week', 'event_week']].head())Kohortista kuluneen viikkonumeron laskeminen
Viikkonumero (jota kutsutaan myös jaksonumeroksi tai iäksi) on tapahtumaviikon ja kohdeviikon välinen erotus. Pandasin Period-objektien vähennyslasku palauttaa kokonaislukusiirtymän. Viikko 0 tarkoittaa, että käyttäjä oli aktiivinen rekisteröitymisviikollaan; viikko 4 tarkoittaa, että hän palasi neljä viikkoa myöhemmin. Tästä siirtymäsarakkeesta tulee pysyvyysmatriisin sarakeakseli.
df['week_number'] = (df['event_week'] - df['cohort_week']).apply(lambda x: x.n)
print(df[['user_id', 'cohort_week', 'event_week', 'week_number']].head(10))Aktiivisten käyttäjien laskeminen kohdeviikon ja viikkonumeron yhdistelmää kohti
Ryhmitelkää tiedot sekä cohort_week- että week_number-sarakkeen mukaan ja laskekaa yksittäiset käyttäjät, jotta saatte pysyvyyden raakamatriisin. Jokainen solu kertoo, kuinka moni kohortin C käyttäjä oli aktiivinen viikolla N. Ylhäältä vasemmalta alas oikealle kulkeva lävistäjä (kunkin kohortin viikko 0) kertoo kohorttien koot, joita käytetään prosenttien laskennassa nimittäjinä.
retention_counts = (
df.groupby(['cohort_week', 'week_number'])['user_id']
.nunique()
.reset_index(name='active_users')
)
print(retention_counts.head(10))Pysyvyyden muuttaminen matriisimuotoon
Muuntaa pitkän muodon pysyvyyden lukumäärät leveäksi matriisiksi komennolla pivot_table(): rivit ovat kohdeviikkoja ja sarakkeet viikkonumeroita. aggfunc='sum' käsittelee mahdolliset päällekkäiset ryhmittelyavaimet. Täyttäkää solut arvolla 0 niiden viikkojen osalta, jolloin yksikään kyseisen kohortin käyttäjä ei ollut aktiivinen. Tämä matriisi on pysyvyysanalyysin ydin.
retention_matrix = retention_counts.pivot_table(
index='cohort_week',
columns='week_number',
values='active_users',
aggfunc='sum'
).fillna(0)
print(retention_matrix.iloc[:5, :8])Pysyvyysprosenttien laskeminen
Muuntakaa lukumäärät prosenteiksi jakamalla jokainen rivi sen viikon 0 arvolla. Viikon 0 sarake sisältää kohortin koon, joka on tallennettu kohteeseen retention_matrix[0]. Käyttäkää komentoa divide(cohort_sizes, axis=0) ja kertokaa tulos sadalla. Pyöristäkää tulos yhden desimaalin tarkkuuteen luettavuuden parantamiseksi. Tuloksena on tuoteanalytiikan raporteissa tavallisesti käytetty pysyvyyden lämpökartta.
cohort_sizes = retention_matrix[0]
retention_pct = retention_matrix.divide(cohort_sizes, axis=0) * 100
retention_pct = retention_pct.round(1)
print(retention_pct.iloc[:5, :8])Pysyvyyskäyrän tulkitseminen
Lukekaa pysyvyystaulukkoa diagonaalisesti: jokainen rivi laskee ajan myötä. Tuotteella, jonka pysyvyys on hyvä, arvot voivat olla esimerkiksi 100, 60, 50, 45, 42 — alussa tapahtuu nopea pudotus, jota seuraa vakaa tasanne. Heikon pysyvyyden tuotteella arvot voivat olla 100, 30, 15, 8, 4 — lasku jatkuu ilman tasannetta. Tasanteen tasoa (jos sellainen muodostuu) kutsutaan pitkän aikavälin pysyvyysasteeksi, ja se on tärkein pysyvyyden KPI-mittari.
# Average retention rate per week number across all cohorts
avg_retention = retention_pct.mean(axis=0)
print('Average retention by week:')
print(avg_retention.round(1))Parhaiden ja heikoimpien kohorttien tunnistaminen
Verratkaa kohorttien suoriutumista tarkastelemalla viikon 4 tai viikon 8 pysyvyyttä eri kohorteissa. Kohortti, jonka viikon 4 pysyvyys on korkein, hyötyi joko tuotteen parannuksesta tai tehokkaasta hankintakanavasta; heikoin kohortti on voitu hankkia heikkolaatuisen kanavan kautta. Järjestäkää kohortit viikon 4 pysyvyyden mukaan komennolla .loc[:, 4].sort_values(ascending=False).
if 4 in retention_pct.columns:
week4 = retention_pct[4].sort_values(ascending=False)
print('Cohorts ranked by week-4 retention:')
print(week4)Pysyvyyden visualisointi lämpökarttana
Värikoodattu lämpökartta on pysyvyystaulukoiden vakiovisualisointi. Käyttäkää komentoa sns.heatmap() yhdessä asetuksen annot=True kanssa, jotta prosenttiarvo näkyy jokaisessa solussa, sekä kaksisuuntaista värikarttaa (heikko pysyvyys = punainen, hyvä = vihreä). Asettakaa vmin=0 ja vmax=100, jotta värit ovat vertailukelpoisia eri pysyvyysasteikoilla.
import seaborn as sns
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(14, 6))
sns.heatmap(retention_pct.iloc[:, :13],
annot=True, fmt='.0f',
cmap='RdYlGn', vmin=0, vmax=100,
ax=ax, linewidths=0.5)
ax.set_title('Weekly Cohort Retention (%)')
ax.set_xlabel('Week Number')
ax.set_ylabel('Cohort Week')
plt.tight_layout()
plt.show()Pysyvyyskäyrän piirtäminen
Viikoittaisen keskimääräisen pysyvyyden viivakaavio ilmaisee kokonaislaskukäyrän lämpökarttaa selkeämmin, kun esityksen yleisö ei ole tekninen. Piirtäkää keskimääräinen pysyvyyskäyrä ja lisätkää varjostettu alue, joka näyttää yhden keskihajonnan kumpaankin suuntaan. Näin käy ilmi, kuinka paljon kohorttien välillä on vaihtelua. Tasanne — kohta, jossa viiva loivenee — on tuotteen luonnollinen pysyvyyden alaraja.
avg_ret = retention_pct.mean(axis=0)
std_ret = retention_pct.std(axis=0)
fig, ax = plt.subplots(figsize=(10, 5))
ax.plot(avg_ret.index, avg_ret.values, color='steelblue', linewidth=2, marker='o')
ax.fill_between(avg_ret.index, avg_ret - std_ret, avg_ret + std_ret, alpha=0.2)
ax.set_xlabel('Week Number')
ax.set_ylabel('Retention %')
ax.set_title('Average Cohort Retention Curve')
plt.tight_layout()
plt.show()Pysyvyystaulukon vieminen
Viekää pysyvyystaulukko Exceliin, jotta tuotepäälliköt voivat jakaa sen viikoittaisissa katsauksissa. Käyttäkää komentoa to_excel() ja lisätkää ehdollinen muotoilu manuaalisesti Excelissä tai käyttäkää Pandasissa komentoa Styler.background_gradient() värien lisäämiseksi suoraan vietyyn tiedostoon. Pysyvyystaulukko on yksi tuoteanalytiikan pyydetyimmistä tuloksista.
styled = retention_pct.style.background_gradient(cmap='RdYlGn', vmin=0, vmax=100)
styled.to_excel('retention_table.xlsx', engine='openpyxl')
print('Retention table saved to retention_table.xlsx')Pikatesti
Testatkaa tämän oppitunnin Data Analysis -käsitteiden ymmärtämistä.
Oppitunnin kertaus
Tässä oppitunnissa opitte: käyttäjien määrittämisen kohdeviikkoihin ja viikkosiirtymien laskemisen, pysyvyyden muuttamisen matriisimuotoon ja lukumäärien muuntamisen prosenteiksi sekä kohorttien pysyvyyden visualisoinnin lämpökarttana ja keskimääräisen pysyvyyskäyrän avulla. Seuraavaksi tutustumme käyttäjäpolkujen visualisointiin suppilopylväskuvioilla ja lämpökartoilla.
Opi Python tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 30
- Oppitunnit
- 120
Usein kysytyt kysymykset
Onko oppitunti ”Kohorttien pysyvyystaulukko” ilmainen?
Kyllä – oppitunnin ”Kohorttien pysyvyystaulukko” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Pandas & NumPy Academy-kurssin, päivitä CoddyKit PROhon. Pandas & NumPy Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Kohorttien pysyvyystaulukko”?
Rakentakaa kohorttien pysyvyysmatriisi, joka näyttää, kuinka suuri prosenttiosuus viikon 0 käyttäjistä on aktiivisia seuraavina viikkoina, käyttämällä pivot_table-funktiota. Harjoittelet Pandas & NumPy Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Pandas & NumPy Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Pandas & NumPy Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Kohorttien pysyvyystaulukko”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Pandas & NumPy Academy-oppitunnilla?
Kyllä. Jokainen Pandas & NumPy Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Sessiointi ja tapahtumien järjestäminen
- Suppiloanalyysi
- Kohorttien pysyvyystaulukko
- Käyttäjien polkujen visualisointi