paint-brush
გარე ამოცნობა: რა უნდა იცოდეთმიერ@nataliaogneva
54,626 საკითხავი
54,626 საკითხავი

გარე ამოცნობა: რა უნდა იცოდეთ

მიერ Natalia Ogneva
Natalia Ogneva HackerNoon profile picture

Natalia Ogneva

@nataliaogneva

Statistics lover

4 წთ read2024/04/23
Read on Terminal Reader
Read this story in a terminal
Print this story
Read this story w/o Javascript
Read this story w/o Javascript
tldt arrow
ka-flagKA
წაიკითხეთ ეს ამბავი ქართულად!
en-flagEN
Read this story in the original language, English!
ln-flagLN
Tanga lisolo oyo na lingala!
lo-flagLO
ອ່ານເລື່ອງນີ້ເປັນພາສາລາວ!
ps-flagPS
دا کیسه په پښتو ژبه ولولئ!
lt-flagLT
Skaitykite šią istoriją lietuvių kalba!
hr-flagHR
Pročitajte ovu priču na hrvatskom!
lv-flagLV
Izlasi šo stāstu latviešu valodā!
ht-flagHT
Li istwa sa a an kreyòl ayisyen!
hu-flagHU
Olvasd el ezt a történetet magyarul!
hy-flagHY
Կարդացեք այս պատմությունը հայերեն։
uk-flagUK
Читайте цю історію українською!
mg-flagMG
Vakio amin'ny teny malagasy ity tantara ity!
More
KA

Ძალიან გრძელი; Წაკითხვა

ანალიტიკოსები ხშირად აწყდებიან მონაცემებს მათი მუშაობის დროს. გადაწყვეტილებები, როგორც წესი, ეფუძნება შერჩევის საშუალოს, რომელიც ძალიან მგრძნობიარეა გარედან. სწორი გადაწყვეტილების მისაღებად გადამწყვეტი მნიშვნელობა აქვს ამომწურავ ფაქტორების მართვას. განვიხილოთ რამდენიმე მარტივი და სწრაფი მიდგომა უჩვეულო მნიშვნელობებთან მუშაობისთვის.

Companies Mentioned

Mention Thumbnail
effect
Mention Thumbnail
Series
featured image - გარე ამოცნობა: რა უნდა იცოდეთ
Natalia Ogneva HackerNoon profile picture
Natalia Ogneva

Natalia Ogneva

@nataliaogneva

Statistics lover

ანალიტიკოსები ხშირად აწყდებიან მონაცემებს მათი მუშაობის დროს, მაგალითად, AB ტესტის ანალიზის დროს, პროგნოზირებადი მოდელების შექმნისას ან ტენდენციების თვალყურის დევნებისას. გადაწყვეტილებები, როგორც წესი, ეფუძნება საშუალების შერჩევისას, რომელიც ძალიან მგრძნობიარეა გარედან და შეუძლია მკვეთრად შეცვალოს მნიშვნელობა. ასე რომ, გადამწყვეტი მნიშვნელობა ენიჭება გარე ფაქტორების მართვას სწორი გადაწყვეტილების მისაღებად.


განვიხილოთ რამდენიმე მარტივი და სწრაფი მიდგომა უჩვეულო მნიშვნელობებთან მუშაობისთვის.

პრობლემის ფორმულირება

წარმოიდგინეთ, რომ თქვენ უნდა ჩაატაროთ ექსპერიმენტის ანალიზი საშუალო შეკვეთის მნიშვნელობის გამოყენებით, როგორც პირველადი მეტრიკა. ვთქვათ, რომ ჩვენს მეტრიკას ჩვეულებრივ აქვს ნორმალური განაწილება. ასევე, ჩვენ ვიცით, რომ სატესტო ჯგუფში მეტრიკული განაწილება განსხვავდება კონტროლისგან. სხვა სიტყვებით რომ ვთქვათ, კონტროლში განაწილების საშუალო არის 10, ტესტში კი 12. სტანდარტული გადახრა ორივე ჯგუფში არის 3.


თუმცა, ორივე ნიმუშს აქვს ამომწურავი ნიშნები, რომლებიც ახდენენ ნიმუშის საშუალებებს და ნიმუშის სტანდარტულ გადახრას.

image

 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))

გაითვალისწინეთ , რომ მეტრიკის გათვალისწინება შეიძლება ჰქონდეს გამოკვეთილები ორივე მხრიდან. თუ თქვენს მეტრულს მხოლოდ ერთი მხრიდან შეიძლება ჰქონდეთ გამოკვეთილები, ამ მიზნით მეთოდები ადვილად გარდაიქმნება.

მოჭრილი კუდები

უმარტივესი მეთოდია ყველა დაკვირვების შეწყვეტა 5% პროცენტულამდე და 95% პროცენტის შემდეგ . ამ შემთხვევაში, ჩვენ დავკარგეთ ინფორმაციის 10% როგორც condi. თუმცა, განაწილებები გამოიყურება უფრო ჩამოყალიბებული და ნიმუშის მომენტები უფრო ახლოს არის განაწილების მომენტებთან.

image

 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]


კიდევ ერთი გზა არის დაკვირვების გამორიცხვა კონკრეტული დიაპაზონის მიღმა . დაბალი დიაპაზონი უდრის 25% ცენტილის მინუს კვარტლთაშორისი დიაპაზონის ნახევარს, ხოლო მაღალი დიაპაზონი უდრის 75% პროცენტს პლუს ნახევარს. აქ ჩვენ დავკარგავთ ინფორმაციის მხოლოდ 0,7%-ს. დისტრიბუცია გამოიყურება უფრო ჩამოყალიბებული, ვიდრე საწყისი. ნიმუშის მომენტები კიდევ უფრო ტოლია განაწილების მომენტებთან.

image

 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]

ჩამტვირთავი

მეორე მეთოდი, რომელიც აქ განვიხილეთ, არის ჩამტვირთავი. ამ მიდგომით, საშუალო აგებულია როგორც ქვენიმუშების საშუალო. ჩვენს მაგალითში საკონტროლო ჯგუფში საშუალო უდრის 10.35, ხოლო ტესტის ჯგუფს 11.78. ეს მაინც უკეთესი შედეგია მონაცემთა დამატებით დამუშავებასთან შედარებით.

 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())

დასკვნა

გარე ამოცნობა და დამუშავება მნიშვნელოვანია სწორი გადაწყვეტილების მისაღებად. ახლა, მინიმუმ სამი სწრაფი და პირდაპირი მიდგომა დაგეხმარებათ შეამოწმოთ მონაცემები ანალიზამდე.


თუმცა, მნიშვნელოვანია გვახსოვდეს, რომ აღმოჩენილი შორს შეიძლება იყოს უჩვეულო მნიშვნელობები და სიახლის ეფექტის მახასიათებელი. მაგრამ ეს სხვა ამბავია :)

L O A D I N G
. . . comments & more!

About Author

Natalia Ogneva HackerNoon profile picture
Natalia Ogneva@nataliaogneva
Statistics lover

დაკიდეთ ტეგები

ეს სტატია იყო წარმოდგენილი...

Permanent on Arweave
Read on Terminal Reader
Read this story in a terminal
 Terminal
Read this story w/o Javascript
Read this story w/o Javascript
 Lite

Mentioned in this story

companies