paint-brush
Utambuzi wa Nje: Unachohitaji Kujuakwa@nataliaogneva
54,575 usomaji
54,575 usomaji

Utambuzi wa Nje: Unachohitaji Kujua

kwa Natalia Ogneva4m2024/04/23
Read on Terminal Reader
Read this story w/o Javascript

Ndefu sana; Kusoma

Wachambuzi mara nyingi hukutana na wauzaji wa nje katika data wakati wa kazi zao. Maamuzi kwa kawaida hutegemea sampuli ya wastani, ambayo ni nyeti sana kwa wauzaji wa nje. Ni muhimu kudhibiti wauzaji ili kufanya uamuzi sahihi. Hebu fikiria mbinu kadhaa rahisi na za haraka za kufanya kazi na maadili yasiyo ya kawaida.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Utambuzi wa Nje: Unachohitaji Kujua
Natalia Ogneva HackerNoon profile picture

Wachanganuzi mara nyingi hukutana na watoa huduma za nje katika data wakati wa kazi zao, kama vile wakati wa uchanganuzi wa jaribio la AB, kuunda miundo ya kubashiri au kufuatilia mitindo. Maamuzi kwa kawaida hutegemea sampuli ya wastani, ambayo ni nyeti sana kwa wauzaji wa nje na inaweza kubadilisha thamani kwa kiasi kikubwa. Kwa hivyo, ni muhimu kudhibiti wauzaji ili kufanya uamuzi sahihi.


Hebu fikiria mbinu kadhaa rahisi na za haraka za kufanya kazi na maadili yasiyo ya kawaida.

Uundaji wa Tatizo

Fikiria kuwa unahitaji kufanya uchanganuzi wa majaribio kwa kutumia thamani ya wastani ya agizo kama kipimo msingi. Wacha tuseme kwamba metriki yetu kawaida huwa na usambazaji wa kawaida. Pia, tunajua kuwa usambazaji wa metri katika kikundi cha majaribio ni tofauti na ule wa udhibiti. Kwa maneno mengine, maana ya usambazaji katika udhibiti ni 10, na katika mtihani ni 12. Kupotoka kwa kawaida katika vikundi vyote viwili ni 3.


Hata hivyo, sampuli zote mbili zina viambajengo vinavyopotosha njia za sampuli na mkengeuko wa kawaida wa sampuli.

 import numpy as np N = 1000 mean_1 = 10 std_1 = 3 mean_2 = 12 std_2 = 3 x1 = np.concatenate((np.random.normal(mean_1, std_1, N), 10 * np.random.random_sample(50) + 20)) x2 = np.concatenate((np.random.normal(mean_2, std_2, N), 4 * np.random.random_sample(50) + 1))

NB kwamba kuzingatia kipimo kunaweza kuwa na viambajengo kutoka pande zote mbili. Ikiwa kipimo chako kinaweza kuwa na wauzaji kutoka upande mmoja tu, njia zinaweza kubadilishwa kwa sababu hiyo kwa urahisi.

Kata Mikia

Njia rahisi ni kukata uchunguzi wote kabla ya asilimia 5 na baada ya 95% . Katika kesi hii, tulipoteza 10% ya habari kama mdanganyifu. Walakini, usambazaji unaonekana kuunda zaidi, na nyakati za sampuli ziko karibu na nyakati za usambazaji.

 import numpy as np x1_5pct = np.percentile(x1, 5) x1_95pct = np.percentile(x1, 95) x1_cutted = [i for i in x1 if i > x1_5pct and i < x1_95pct] x2_5pct = np.percentile(x2, 5) x2_95pct = np.percentile(x2, 95) x2_cutted = [i for i in x2 if i > x2_5pct and i < x2_95pct]


Njia nyingine ni kuwatenga uchunguzi nje ya masafa mahususi . Ukanda wa chini ni sawa na asilimia 25% toa nusu moja ya safu ya pembetatu, na bendi ya juu ni sawa na asilimia 75% pamoja na nusu. Hapa, tutapoteza 0.7% tu ya habari. Ugawaji unaonekana kuunda zaidi kuliko ile ya awali. Muda wa sampuli ni sawa zaidi na nyakati za usambazaji.

 import numpy as np low_band_1 = np.percentile(x1, 25) - 1.5 * np.std(x1) high_band_1 = np.percentile(x1, 75) + 1.5 * np.std(x1) x1_cutted = [i for i in x1 if i > low_band_1 and i < high_band_1] low_band_2 = np.percentile(x2, 25) - 1.5 * np.std(x2) high_band_2 = np.percentile(x2, 75) + 1.5 * np.std(x2) x2_cutted = [i for i in x2 if i > low_band_2 and i < high_band_2]

Bootstrap

Njia ya pili tuliyozingatia hapa ni bootstrap. Katika mbinu hii, maana inaundwa kama maana ya sampuli ndogo. Katika mfano wetu, wastani katika kikundi cha udhibiti ni sawa na 10.35, na kikundi cha mtihani ni 11.78. Bado ni matokeo bora ikilinganishwa na usindikaji wa ziada wa data.

 import pandas as pd def create_bootstrap_samples( sample_list: np.array, sample_size: int, n_samples: int ): # create a list for sample means sample_means = [] # loop n_samples times for i in range(n_samples): # create a bootstrap sample of sample_size with replacement bootstrap_sample = pd.Series(sample_list).sample(n = sample_size, replace = True) # calculate the bootstrap sample mean sample_mean = bootstrap_sample.mean() # add this sample mean to the sample means list sample_means.append(sample_mean) return pd.Series(sample_means) (create_bootstrap_samples(x1, len(x1), 1000).mean(), create_bootstrap_samples(x2, len(x2), 1000).mean())

Hitimisho

Utambuzi na usindikaji wa nje ni muhimu kwa kufanya uamuzi sahihi. Sasa, angalau mbinu tatu za haraka na za moja kwa moja zinaweza kukusaidia kuangalia data kabla ya uchanganuzi.


Hata hivyo, ni muhimu kukumbuka kuwa bidhaa za nje zilizogunduliwa zinaweza kuwa thamani zisizo za kawaida na kipengele cha athari mpya. Lakini ni hadithi nyingine :)