You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/km/2-Working-With-Data/07-python
localizeflow[bot] 6faf177573
[km] chore(i18n): sync translations
6 days ago
..
R chore(i18n): sync translations with latest source changes (chunk 3/3, 82 changes) 4 months ago
README.md [km] chore(i18n): sync translations 6 days ago
assignment.md chore(i18n): sync translations with latest source changes (chunk 3/3, 82 changes) 4 months ago
notebook-covidspread.ipynb chore(i18n): sync translations with latest source changes (chunk 3/3, 82 changes) 4 months ago
notebook-papers.ipynb chore(i18n): sync translations with latest source changes (chunk 3/3, 82 changes) 4 months ago
notebook.ipynb chore(i18n): sync translations with latest source changes (chunk 3/3, 82 changes) 4 months ago

README.md

ការដំណើរការជាមួយទិន្នន័យ៖ Python និងបណ្ណាល័យ Pandas

 Sketchnote ដោយ (@sketchthedocs)
ការដំណើរការជាមួយ Python - Sketchnote ដោយ @nitya

វីដេអូណែនាំ

ខណៈដែលប្រព័ន្ធទិន្នន័យផ្តល់ជូនវិធីសាស្រ្តមានប្រសិទ្ធភាពខ្ពស់ក្នុងការរក្សាទិន្នន័យ និងស្វែងរកសំណួរតាមភាសាសំណួរ វិធីសាស្រ្តដែលមានភាពបត់បែនបំផុតក្នុងការចុះបញ្ជីទិន្នន័យគឺការសរសេរកម្មវិធីផ្ទាល់របស់អ្នកដើម្បីផ្លាស់ប្តូរទិន្នន័យ។ នៅក្នុងករណីជាច្រើន ការស្វែងរកទិន្នន័យក្នុងប្រព័ន្ធទិន្នន័យអាចជាជម្រើសមានប្រសិទ្ធភាពជាង។ ប៉ុន្តែ នៅក្នុងករណីខ្លះៗ នៅពេលដែលត្រូវការចុះបញ្ជីទិន្នន័យស្មុគស្មាញជាងនេះ វាមិនអាចធ្វើបានយ៉ាងងាយស្រួលតាមរយៈ SQL ទេ។ ការដំណើរការទិន្នន័យអាចត្រូវបានចុះបញ្ជីជាកម្មវិធីនៅក្នុងភាសាកម្មវិធីណាមួយក៏ដោយ ប៉ុន្តែមានភាសារមួយចំនួនដែលមានកម្រិតខ្ពស់ជាងសម្រាប់ការដំណើរការជាមួយទិន្នន័យ។ អ្នកវិទ្យាសាស្ត្រទិន្នន័យភាគច្រើនចូលចិត្តភាសាមួយក្នុងចំណោមភាសាដូចខាងក្រោម៖

  • Python ជាភាសាកម្មវិធីប្រើបានទូទៅ ដែលភាគច្រើនគេចាត់ទុកថាជាជម្រើសល្អសម្រាប់អ្នកចាប់ផ្តើមដោយសារតែភាពសាមញ្ញរបស់វា។ Python មានបណ្ណាល័យបន្ថែមច្រើនជំនួយដល់ការដោះស្រាយបញ្ហាទូទៅជាច្រើន ដូចជាការដកយកទិន្នន័យពីហារីល ZIP ឬបម្លែងរូបភាពទៅជាពណ៌សម្រាប់ត្រង់។ លើសពីការសិក្សាទិន្នន័យ Python ក៏ត្រូវបានប្រើជាញឹកញាប់សម្រាប់ការវិវឌ្ឍវេបសាយផងដែរ។
  • R ជាឧបករណ៍បុរាណមួយដែលបង្កើតឡើងសម្រាប់ការដំណើរការទិន្នន័យស្ថិតិ។ វាក៏មានបណ្ណាល័យធំនៅក្នុងស្តុក (CRAN) ដែលធ្វើឲ្យវាជាជម្រើសល្អសម្រាប់ការដំណើរការទិន្នន័យ។ ទោះបីជាយ៉ាងណា R មិនមែនជាភាសាកម្មវិធីទូទៅទេ ហើយត្រូវបានប្រើទូទៅក្នុងដែនការសិក្សាទិន្នន័យប៉ុណ្ណោះ។
  • Julia ជាភាសាផ្សេងទៀតដែលបង្កើតឡើងសម្រាប់ការសិក្សាទិន្នន័យ។ វាត្រូវបានរំពឹងទុកថានឹងផ្តល់ការអនុវត្តដែលល្អជាង Python ដូច្នេះវាជាឧបករណ៍ល្អសម្រាប់ការប្រឡងវិទ្យាសាស្ត្រ។

នៅក្នុងមេរៀននេះ យើងនឹងផ្តោតលើការប្រើ Python សម្រាប់ការដំណើរការទិន្នន័យសាមញ្ញ។ យើងនឹងទទួលស្គាល់ថាអ្នកមានការស្គាល់មូលដ្ឋានជាមួយភាសានេះ។ ប្រសិនបើអ្នកចង់មានការសិក្សាដ៏ជ្រាលជ្រៅអំពី Python អ្នកអាចយោងទៅកាន់ធនធានខាងក្រោម៖

ទិន្នន័យអាចមានរាងកាយជាច្រើន। នៅក្នុងមេរៀននេះ យើងនឹងពិចារណារូបមន្តទិន្នន័យបីប្រភេទ — ទិន្នន័យតារាង, អត្ថបទ និង រូបភាព

យើងនឹងផ្តោតលើឧទាហរណ៍ចំនួនមួយសម្រាប់ការដំណើរការទិន្នន័យ ជំនួសការអោយបង្ហាញទាំងមូលស្តីពីបណ្ណាល័យទាំងអស់ដែលពាក់ព័ន្ធ។ វានឹងជួយអ្នកយល់ដឹងពីអ្វីដែលអាចធ្វើបាន ហើយឲ្យអ្នកមានចំណេះដឹងពីកន្លែងស្វែងរកដំណោះស្រាយនៅពេលដែលអ្នកត្រូវការពួកវា។

ដំបូន្មានមានប្រយោជន៍បំផុត។ នៅពេលដែលអ្នកត្រូវការធ្វើប្រតិបត្ដិការណាមួយលើទិន្នន័យដែលអ្នកមិនដឹងថាតើធ្វើដូចម្តេច សូមស្វែងរកតាមអ៊ីនធើណិត។ Stackoverflow ជាទូទៅមានគំរូកូដ Python ច្រើនដែលមានប្រយោជន៍សម្រាប់បេសកកម្មទូទៅជាច្រើន។

សំណួរពិនិត្យមុនមេរៀន

ទិន្នន័យតារាង និង Dataframes

អ្នកបានស្គាល់ទិន្នន័យតារាងហើយនៅពេលដែលយើងបាននិយាយពីប្រព័ន្ធទិន្នន័យទំនាក់ទំនង។ ពេលដែលអ្នកមានទិន្នន័យច្រើន ហើយវាត្រូវបានផ្ទុកនៅតារាងជាច្រើនដែលភ្ជាប់គ្នា វាពិតជាមានអត្ថន័យក្នុងការប្រើ SQL រួចសម្រាប់ធ្វើការដំណើរការវា។ ទោះយ៉ាងណា មានករណីជាច្រើនអាលដែលយើងមានតារាងទិន្នន័យហើយត្រូវការស្វែងយល់ឬវិចារណាអំពីទិន្នន័យដូចជាការចែកចាយ ការតភ្ជាប់គ្នារវាងតម្លៃជាដើម។ នៅក្នុងវិស័យវិទ្យាសាស្ត្រទិន្នន័យ មានករណីយ៉ាងច្រើនដែលយើងត្រូវការប្រតិបត្ដិការ ការបម្លែងមួយចំនួនលើទិន្នន័យដើម ហើយបន្ទាប់មកធ្វើការបង្ហាញទិន្នន័យវិចិត្រសិល្បៈ។ ពីរជំហានទាំងនេះអាចធ្វើបានយ៉ាងងាយស្រួលដោយប្រើ Python។

មានបណ្ណាល័យ Python មួយចំនួនដែលមានប្រយោជន៍ខ្លាំងសម្រាប់ជួយអ្នកដោះស្រាយបញ្ហាទិន្នន័យតារាង៖

  • Pandas អនុញ្ញាតឲ្យអ្នកផ្លាស់ប្តូរអ្វីដែលគេហៅថា Dataframes ដែលស្រដៀងទៅនឹងតារាងទំនាក់ទំនង។ អ្នកអាចមានជួរឈរ​ដែលមានឈ្មោះ ហើយអាចប្រតិបត្ដិការផ្សេងៗលើយោងទៅលើជួរ​ ជួរឈរ និង Dataframes ជាទូទៅ។
  • Numpy គឺជាបណ្ណាល័យសម្រាប់ធ្វើការជាមួយ tensors, មានន័យថា arrays ឯកភាពច្រើនវិមាត្រ។ Array មានតម្លៃពីប្រភេទដូចគ្នា ហើយវាមានភាពសាមញ្ញជាង dataframe ប៉ុន្តែវាប្រើបានច្រើនសម្រាប់ប្រតិបត្ដិការជាប្រែប្រួលគណិតវិទ្យា និងបង្កើតការរំខានតិចជាង។

មានបណ្ណាល័យផ្សេងទៀតមួយចំនួនដែលអ្នកគួរតែដឹងដូចជា៖

  • Matplotlib គឺជាបណ្ណាល័យសម្រាប់ការបង្ហាញទិន្នន័យ និងគូសក្រាហ្វ
  • SciPy គឺជាបណ្ណាល័យមួយសម្រាប់មុខងារវិទ្យាសាស្ត្របន្ថែមខ្លះ។ យើងបានស្គាល់បណ្ណាល័យនេះរួចពេលនិយាយពីប្រភាពនឹងស្ថិតិ

ខាងក្រោមជាឧទាហរណ៍កូដដែលអ្នកភាគច្រើនប្រើសម្រាប់នាំចូលបណ្ណាល័យទាំងនេះនៅដើមកម្មវិធី Python របស់អ្នក៖

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import ... # អ្នកត្រូវការបញ្ជាក់ពីកញ្ចប់រងច្បាស់លាស់ដែលអ្នកត្រូវការ

Pandas ផ្អែកលើគំនិតមូលដ្ឋានជាច្រើន។

Series

Series គឺជាដំណើរការតម្លៃមួយជាសេរី វាស្រដៀងនឹងបញ្ជី ឬ numpy array។ ការប្រែមាថាខុសគ្នាលើសំខាន់គឺ series មាន index ផងដែរ ហើយពេលយើងបំពេញប្រតិបត្ដិការលើ series (ឧ. បូកបន្ថែម) វានឹងគិតខ្វះនៃ index ។ Index អាចជាថ្នាក់លេខខ្សែគំនរដែលសាមញ្ញ (ពេលបង្កើត series ពីបញ្ជី ឬ array វានឹងប្រើជាលំនាំប្រព័ន្ធ) ឬអាចមានរចនាសម្ព័ន្ធស្មុគស្មាញដូចជា លំនាំកាលបរិច្ឆេទ។

កត់ចំណាំ៖ មានកូដ Pandas មួយចំនួនសម្រាប់អ្នកចាប់ផ្តើមនៅក្នុងក្រដាសសម្ភារៈជាមួយ notebook.ipynb។ យើងបានគ្រាប់ពិពណ៌នាប៉ុន្មានឧទាហរណ៍នៅទីនេះ ហើយអ្នកអាចមកមើលក្រដាសពេញលេញបាន។

តើអ្នកគិតថាឧទាហរណ៍មួយ៖ យើងចង់វិភាគការលក់ទំនិញកន្លែងលក់កម្អិតទឹកកករបស់យើង។ យើងបង្កើតជួរលេខលក់ (ចំនួនទំនិញដែលបានលក់ក្នុងមួយថ្ងៃ) រយៈពេលខ្លះ៖

start_date = "Jan 1, 2020"
end_date = "Mar 31, 2020"
idx = pd.date_range(start_date,end_date)
print(f"Length of index is {len(idx)}")
items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx)
items_sold.plot()

បង្ហាញការផ្លាស់ប្តូរពេលវេលា

ឥឡូវយើងសន្មត់ថា រៀងរាល់សប្ដាហ៍យើងបញ្ចូលការប្រមូលផ្តុំមិត្តភក្តិ ហើយយកកញ្ចប់ទឹកកកបន្ថែម ១០ កញ្ចប់សម្រាប់ព្រឹត្តិការណ៍។ យើងអាចបង្កើត series មួយផ្សេងទៀតដែលមាន index ជាសប្ដាហ៍ ដើម្បីបង្ហាញពីរឿងនេះ៖

additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W"))

ពេលយើងបូក series ទាំងពីរជាមួយគ្នា យើងទទួលបានចំនួនសរុប៖

total_items = items_sold.add(additional_items,fill_value=0)
total_items.plot()

បង្ហាញការផ្លាស់ប្តូរពេលវេលា

កត់ចំណាំ យើងមិនបានប្រើវិធីសាSimple៍ total_items+additional_items ដែលសាមញ្ញទេ។ ប្រសិនបើយើងធ្វើនោះ យើងនឹងទទួលបានតម្លៃ NaN (គ្មានលេខ) ច្រើននៅក្នុង series ផលិតពីការបូក។ នេះកើតឡើងដោយសារតម្លៃខ្វះខាតនៅចំណុច index មួយចំនួនក្នុង series additional_items ហើយការបូក NaN ជាមួយអ្វីៗដទៃស្ទើរតែផ្តល់ NaN។ ដូច្នេះយើងត្រូវបញ្ជាក់ប៉ារ៉ាម៉ែត្រផ្ទុកតម្លៃ fill_value ខណៈពេលបូក។

ជាមួយ series ពេលវេលា យើងអាចប្ដូរសំណុំ (resample) ជាមួយវេលាលកដូចផ្សេងៗគ្នា។ ឧទាហរណ៍ សន្មតថាយើងចង់គណនាមធ្យមចំនួនលក់រៀងខែ។ យើងអាចប្រើលក្ខណៈខាងក្រោម៖

monthly = total_items.resample("1M").mean()
ax = monthly.plot(kind='bar')

មធ្យមតារាងពេលវេលាប្រចាំខែ

DataFrame

DataFrame គឺជាសំណុំមួយនៃ series ដែលមាន index ដូចគ្នា។ យើងអាចរួមបញ្ចូល series ច្រើនជាមួយគ្នាទៅជាទ្រង់ទ្រាយ DataFrame៖

a = pd.Series(range(1,10))
b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9))
df = pd.DataFrame([a,b])

វានឹងបង្កើតតារាងផ្ដេកដូចខាងក្រោម៖

0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8 9
1 I like to use Python and Pandas very much

យើងក៏អាចប្រើ Series ជាជួរឈរបាន ហើយបញ្ជាក់ឈ្មោះជួរឈរដោយប្រើវចនានុក្រម៖

df = pd.DataFrame({ 'A' : a, 'B' : b })

វានឹងផ្តល់តារាងដូចខាងក្រោម៖

A B
0 1 I
1 2 like
2 3 to
3 4 use
4 5 Python
5 6 and
6 7 Pandas
7 8 very
8 9 much

កត់ចំណាំ យើងក៏អាចទទួលបានទ្រង់ទ្រាយតារាងនេះដោយបម្លែងតារាងមុនពីជួរត្រៀមជួរឈរ ដូចជា

df = pd.DataFrame([a,b]).T.rename(columns={ 0 : 'A', 1 : 'B' })

នៅទីនេះ .T មានន័យថា ប្រតិបត្ដិការបម្លែងតារាង DataFrame ដោយប្តូរជួរនិងជួរឈរ ហើយ rename អនុញ្ញាតឲ្យយើងប្តូរឈ្មោះជួរឈរតាមឧទាហរណ៍មុន។

ខាងក្រោមជាប្រតិបត្ដិការសំខាន់ៗមួយចំនួនដែលយើងអាចចាត់ទុកទៅលើ DataFrames៖

ជ្រើសរើសជួរឈរ។ យើងអាចជ្រើសជួរឈរផ្ទាល់ដោយសរសេរ df['A'] - ប្រតិបត្ដិការនេះត្រូវបានត្រឡប់តម្លៃជា Series។ យើងក៏អាចជ្រើសជួរឈរមួយចំនួនទៅ DataFrame ផ្សេងទៀតដោយសរសេរ df[['B','A']] - វាបម្លែងទៅជា DataFrame មួយផងដែរ។

តម្រង ជួរដោយលក្ខខណ្ឌ។ ឧទាហរណ៍ ដើម្បីច្រានចោលជួរដែលមានតម្លៃជួរឈរ A តិចជាង ឬស្មើ ៥ យើងអាចសរសេរ df[df['A']>5]

កត់ចំណាំ៖ របៀបស្វែងរកត្រូវបានបំបែកដូចខាងក្រោម។ បារាង df['A']<5 នឹងត្រឡប់របារ boolean ដែលបង្ហាញថា តម្លៃមួយៗក្នុង df['A'] មានតម្លៃ True ឬ False ។ ពេលដែលប្រើ boolean series ជា index វានឹងត្រឡប់ជាចំនាត់ថ្នាក់ទ្រង់ទ្រាយ DataFrame។ ដូច្នេះមិនអាចប្រើបារម្ភ boolean code ក្នុង Python នៅផ្នែកនេះរួចបានទេ ហើយខុសឆ្គងក្នុងការចុះបញ្ជីដូចជា df[df['A']>5 and df['A']<7]។ ថែមទាំងត្រូវប្រើការប្រតិបត្ដិការពិសេស & លើ boolean series ជាមួយសញ្ញាស្វ័យបិទសញ្ញា ( ) ដូចជា df[(df['A']>5) & (df['A']<7)] (សញ្ញាស្វ័យបិទសារៈសំខាន់)។

បង្កើតជួរឈរប្រតិបត្ដិការថ្មី។ យើងអាចបង្កើតជួរឈរថ្មីដែលគណនាចេញបានសម្រាប់ DataFrame ដោយប្រើបរិយាយសំណួរដូចខាងក្រោម៖

df['DivA'] = df['A']-df['A'].mean() 

ឧទាហរណ៍នេះគណនាភាពខុសគ្នារវាង A និងតម្លៃមធ្យមរបស់វា។ អ្វីដែលកើតឡើងពិតជាគឺយើងកំពុងគណនាដំណើរមួយ ហើយដាក់ series នេះទៅខាងឆ្វេង បង្កើតជួរឈរថ្មី។ ដូច្នេះ អ្នកមិនអាចប្រើប្រតិបត្ដិការណាដែលមិនប្រព័ន្ធពី series នៅទីនេះបានទេ។ ឧទាហរណ៍កូដខាងក្រោម គឺខុស៖

# កូដខុស -> df['ADescr'] = "ទាប" ប្រសិនបើ df['A'] < 5 ផ្ទុយទៅ "ខ្ពស់"
df['LenB'] = len(df['B']) # <- លទ្ធផលខុស

ឧទាហរណ៍នេះ ខណៈដែលសម្គាល់ត្រឹមត្រូវតាមវេយ្យាករណ៍ តែផ្តល់លទ្ធផលខុសក្នុងន័យថា វាបែងចែកប្រវែង series B ទៅតម្លៃទាំងអស់ក្នុងជួរឈរ មិនមែនប្រវែងនៃធាតុមួយៗដូចដែលយើងចង់បាន។

ប្រសិនបើយើងត្រូវមានការគណនា expression ស្មុគស្មាញ ដូចនេះ អ្នកអាចប្រើមុខងារ apply។ ឧទាហរណ៍ចុងក្រោយអាចសរសេរដូចខាងក្រោម៖

df['LenB'] = df['B'].apply(lambda x : len(x))
# ឬ
df['LenB'] = df['B'].apply(len)

បន្ទាប់ពីដំណើរការខាងលើ យើងនឹងទទួលបាន DataFrame ដូចខាងក្រោម៖

A B DivA LenB
0 1 I -4.0 1
1 2 like -3.0 4
2 3 to -2.0 2
3 4 use -1.0 3
4 5 Python 0.0 6
5 6 and 1.0 3
6 7 Pandas 2.0 6
7 8 very 3.0 4
8 9 much 4.0 4

ជ្រើសរើសជួរដោយលេខសៀង អាចធ្វើបានដោយប្រើ iloc។ ឧទាហរណ៍ ដើម្បីជ្រើសរើស ៥ ជួរដំបូងពី DataFrame៖

df.iloc[:5]

ក្រុម ត្រូវបានប្រើជាញឹកញាប់សម្រាប់ទទួលលទ្ធផលដូចជា pivot tables នៅក្នុង Excel។ សន្មតថាយើងចង់គណនាតម្លៃមធ្យមនៃជួរឈរ A សម្រាប់ភាគចំនួន LenB ទាំងឡាយ។ បន្ទាប់ពីនោះ​យើងអាចក្រុម DataFrame ដោយ LenB ហើយហៅ mean

df.groupby(by='LenB')[['A','DivA']].mean()

ប្រសិនបើយើងចង់គណនាតម្លៃមធ្យម និងចំនួនធាតុមួយក្នុងក្រុម យើងអាចប្រើមុខងារ aggregate ដែលស្មុគស្មាញជាងនេះ៖

df.groupby(by='LenB') \
 .aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \
 .rename(columns={ 'DivA' : 'Count', 'A' : 'Mean'})

វាបង្ហាញតារាងដូចខាងក្រោម៖

LenB Count Mean
1 1 1.000000
2 1 3.000000
3 2 5.000000
4 3 6.333333
6 2 6.000000

ការទទួលបានទិន្នន័យ

យើងបានឃើញថាវាយ៉ាងងាយស្រួលក្នុងការបង្កើត Series និង DataFrames ពីវត្ថុ Python។ ប៉ុន្តែ ទិន្នន័យជាធម្មតាមកក្នុងទម្រង់ឯកសារអត្ថបទ ឬតារាង Excel។ ទំណុកបញ្ចោញ Pandas ផ្តល់ឱ្យ​យើងវិធីសាមញ្ញក្នុងការផ្ទុកទិន្នន័យពីឌីស។ ឧទាហរណ៍ ការអានឯកសារ CSV គឺងាយស្រួលដូចនេះ:

df = pd.read_csv('file.csv')

យើងនឹងឃើញឧទាហរណ៍បន្ថែមទៀតនៃការផ្ទុកទិន្នន័យ រួមមានការទាញយកពីគេហទំព័រចេញក្រៅ ក្នុងផ្នែក "Challenge"

ការបោះពុម្ពនិងបង្ហាញក្រាប

អ្នកវិទ្យាសាស្ត្រទិន្នន័យជាញឹកញាប់ត្រូវតែស្វែងរកទិន្នន័យ ដូចនេះវាជារឿងសំខាន់ក្នុងការមានសមត្ថភាពមើលឃើញវា។ នៅពេល DataFrame មានទំហំធំ ជាច្រើនដង យើងចង់ធ្វើអោយប្រាកដថាយើងកំពុងធ្វើអ្វីៗបានត្រឹមត្រូវ ដោយបោះពុម្ពបញ្ជូលជួរដំបូងៗមួយប៉ុណ្ណោះ។ វាអាចធ្វើបានដោយហៅ df.head()។ ប្រសិនបើអ្នកកំពុងដំណើរការ វាពី Jupyter Notebook វានឹងបោះពុម្ព DataFrame ជាទម្រង់តារាងស្អាតមួយ។

យើងក៏បានឃើញករណីប្រើមុខងារ plot ដើម្បីបង្ហាញស្តង់ក្នុងជួរដេកមួយចំនួន។ ខណៈពេល plot មានប្រយោជន៍សម្រាប់ការងារជាច្រើន និងគាំទ្រប្រភេទក្រាបខុសៗគ្នាតាមរយៈប៉ារ៉ាម៉ែត្រ kind= អ្នកអាចប្រើបណ្ណាល័យ matplotlib ដំបូង ដើម្បីបង្ហាញអ្វីដែលស្មុគស្មាញជាងនេះ។ យើងនឹងពិភាក្សាពីការបង្ហាញទិន្នន័យជាលម្អិតក្នុងមេរៀនវគ្គបំបែកផ្សេងទៀត។

ទិដ្ឋភាពទូទៅនេះគ្របដណ្តប់ចំនុចសំខាន់ៗបំផុតរបស់ Pandas ប៉ុន្តែបណ្ណាល័យនេះមានមាតិកាច្រើន ហើយគ្មានកំណត់ក្នុងអ្វីដែលអ្នកអាចធ្វើជាមួយវាទេ! យើងចាប់ផ្តើមប្រើចំណេះដឹងនេះដើម្បីដោះស្រាយបញ្ហាពិសេសមួយ។

🚀 បញ្ហានឹងត្រូវដោះស្រាយ ១៖ វិភាគការចម្រើន COVID

បញ្ហាលើកដំបូងដែលយើងនឹងផ្តោតគឺការគំរូនៃការផ្ទុះជំងឺរាតត្បាត COVID-19។ ដើម្បីធ្វើការនេះ យើងនឹងប្រើទិន្នន័យអំពីចំនួនអ្នកឆ្លងជំងឺនៅប្រទេសនានា ដែលបានផ្តល់ដោយ Center for Systems Science and Engineering (CSSE) នៅ សាកលវិទ្យាល័យ Johns Hopkins។ សំណុំទិន្នន័យអាចរកបាននៅ GitHub Repository នេះ

ព្រោះយើងចង់បង្ហាញពីវិធីដោះស្រាយទិន្នន័យ យើងអញ្ជើញអ្នកបើក notebook-covidspread.ipynb ហើយអានពីលើទៅក្រោម។ អ្នកអាចបញ្ចូលកូដក្នុងខ្ទង់កូដ ក៏ដូចជាត្រូវបានជួបប្រទះបញ្ហាដែលយើងបានទុកសម្រាប់អ្នកនៅចុងផងដែរ។

COVID Spread

ប្រសិនបើអ្នកមិនដឹងរបៀបដំណើរការកូដក្នុង Jupyter Notebook សូមមើល អត្ថបទនេះ

ការងារជាមួយទិន្នន័យមិនរៀបរយ

រួមចំណែកទិន្នន័យជាញឹកញាប់មានទម្រង់តារាង ប៉ុន្តែក្នុងករណីខ្លះ យើងត្រូវការដោះស្រាយទិន្នន័យដែលមិនរៀបចំរួច ព្រមទាំងអត្ថបទ ឬរូបភាព។ ក្នុងករណីនេះ ដើម្បីអនុវត្តបច្ចេកទេសដំណើរការទិន្នន័យដែលបានមើលឃើញខាងលើ យើងត្រូវអាច ដក ទិន្នន័យរៀបចំបានមួយវិញ។ អ្វីខ្លះមានឧទាហរណ៍៖

  • ដកពាក្យគន្លឹះពីអត្ថបទ ហើយមើលថាពាក្យគន្លឹះទាំងនោះបង្ហាញ頻率ប៉ុន្មានដង
  • ប្រើបណ្ណាល័យបណ្តាញប្រសាទ (neural networks) ដើម្បីដកព័ត៌មានរបស់វត្ថុនៅលើរូបភាព
  • ទទួលបានព័ត៌មានអំពីអារម្មណ៍មនុស្សនៅលើវីដេអូផ្តល់ការតាមដាន

🚀 បញ្ហានឹងត្រូវដោះស្រាយ ២៖ វិភាគអត្ថបទ COVID

ក្នុងបញ្ហានេះ យើងនឹងបន្តជាមួយប្រធានបទមហាភាព COVID និងផ្តោតលើដំណើរការអត្ថបទវិទ្យាសាស្ត្រអំពីប្រធានបទនេះ។ មាន សំណុំទិន្នន័យ CORD-19 ដែលមានអត្ថបទលើសពី 7000 (នៅពេលសរសេរ) អំពី COVID ព្រមទាំងមានមេតាទិន្នន័យ និងសេចក្ដីសង្ខេប (សម្រាប់ប្រមាណកន្លែងពាក់កណ្តាលមានអត្ថបទពេញលេញផ្តល់ទៀត)។

ឧទាហរណ៍ពេញលេញនៃការវិភាគសំណុំទិន្នន័យនេះដោយប្រើសេវាកម្មនៃ Text Analytics for Health ត្រូវបានពណ៌នានៅ ប្រកាសប្លក់នេះ. យើងនឹងពិភាក្សាអំពីកំណត់រូបភាពដែលបានបង្រួមនៃការវិភាគនេះ។

ចំណាំ៖ យើងមិនផ្តល់ចម្លងសំណុំទិន្នន័យជាផ្នែកមួយនៃទីតាំងកំណត់នេះទេ។ អ្នកប្រហែលជាត្រូវទាញយកឯកសារ metadata.csv ពី សំណុំទិន្នន័យលើ Kaggle នេះ ជាមុន។ អ្នកប្រហែលជាត្រូវចុះឈ្មោះជាមួយ Kaggle។ អ្នកអាចទាញយកសំណុំទិន្នន័យដោយគ្មានចុះឈ្មោះ ពីទីនេះ ប៉ុន្តែវានឹងរួមបញ្ចូលអត្ថបទពេញលេញទាំងអស់បូកជាមួយឯកសារមេតា។

បើក notebook-papers.ipynb ហើយអានពីលើទៅក្រោម។ អ្នកអាចបញ្ចូលកូដក្នុងខ្ទង់កូដ និងធ្វើបញ្ហាដែលយើងបានទុកសម្រាប់អ្នកនៅចុងផងដែរ។

Covid Medical Treatment

ដំណើរការទិន្នន័យរូបភាព

ខណៈពេលថ្មីៗនេះ មានគំរូ AI ដែលមានអំណាចខ្លាំងត្រូវបានអភិវឌ្ឍ ដែលអាចឲ្យយើងយល់ពីរូបភាព។ មានការងារច្រើនដែលអាចដោះស្រាយបានដោយប្រើបណ្តាញប្រសាទដែលបានបណ្តុះជាមុន ឬសេវាកម្មពពក។ ឧទាហរណ៍មាន៖

  • ចំណាត់ថ្នាក់រូបភាព ដែលអាចជួយអ្នកចាត់ថ្នាក់រូបភាពទៅក្នុងថ្នាក់ជាក់លាក់មួយ។ អ្នកអាចបណ្តុះនូវម៉ូដែលចំណាត់ថ្នាក់រូបភាពផ្ទាល់ខ្លួនបានយ៉ាងងាយស្រួលដោយប្រើសេវាកម្មដូចជា Custom Vision
  • រកសម្គាល់វត្ថុ ដើម្បីរកអត្តសញ្ញាណវត្ថុផ្សេងៗនៅក្នុងរូបភាព។ សេវាកម្មដូចជា computer vision អាចរកប្រភេទវត្ថុទូទៅបានច្រើន ហើយអ្នកអាចបណ្តុះម៉ូដែល Custom Vision ដើម្បីរកវត្ថុជាក់លាក់មួយចំនួនដែលមានចំណាប់អារម្មណ៍។
  • រកសម្គាល់ផ្ទៃមុខ រួមមានការកំណត់អាយុ ភេទ និងអារម្មណ៍។ វាអាចធ្វើបានតាមរយៈ Face API

សេវាកម្មពពកទាំងអស់នេះអាចហៅបានតាមរយៈ Python SDKs ហើយដូច្នេះអាចបញ្ចូលយ៉ាងងាយស្រួលទៅក្នុងបណ្តារដ្ឋានស្វែងរកទិន្នន័យរបស់អ្នក។

នៅទីនេះមានឧទាហរណ៍មួយចំនួននៃការស្វែងរកទិន្នន័យពីប្រភពទិន្នន័យរូបភាព:

  • នៅក្នុងប្លក់ How to Learn Data Science without Coding យើងស្វែងយល់ពីរូបថត Instagram ដើម្បីព្យាយាមយល់ថាអ្វីជាឧបករណ៍ជួយអោយមនុស្សចុចចូលច្រើនជាង ពីរូបថតមួយ។ យើងដកព័ត៌មានច្រើនបំផុតពីរូបភាពដោយប្រើ computer vision ហើយបន្ទាប់មកប្រើ Azure Machine Learning AutoML ដើម្បីបង្កើតម៉ូដែលអាចពន្យល់បាន។
  • នៅក្នុង Facial Studies Workshop យើងប្រើ Face API ដកអារម្មណ៍មនុស្សនៅលើរូបថតពីព្រឹត្តិការណ៍ ដើម្បីព្យាយាមយល់ថាអ្វីធ្វើអោយមនុស្សមានសុភមង្គល។

សេចក្ដីសន្និដ្ឋាន

មិនថាអ្នកមានទិន្នន័យរៀបចំ ឬមិនរៀបចំហើយ ការប្រើប្រាស់ Python អ្នកអាចអនុវត្តជំហានទាំងអស់ដែលពាក់ព័ន្ធនឹងដំណើរការ និងការយល់ដឹងលើទិន្នន័យ។ វាបាច់បាតជារបៀបដែលបត់បែនបំផុតសម្រាប់ដំណើរការទិន្នន័យ ហើយនេះជាហេតុផលដែលអ្នកវិទ្យាសាស្ត្រទិន្នន័យភាគច្រើនប្រើ Python ជាឧបករណ៍ដ៏សំខាន់របស់ពួកគេ។ ការសិក្សា Python ជ្រៀងជ្រែករីករាយគឺជាគំនិតល្អ ប្រសិនបើអ្នកមានចំណាប់អារម្មណ៍យ៉ាងខ្លាំងលើដំណើរទស្សនៈទិន្នន័យរបស់អ្នក!

វាយតម្លៃបន្ទាប់មកមេរៀន

ការត្រួតពិនិត្យ និងសិក្សាឯករាជ្យ

សៀវភៅ

ធនធានអនឡាញ

ការស្វែងរៀន Python

ការប្រឡង

អនុវត្តការសិក្សាទិន្នន័យលម្អិតសម្រាប់បញ្ហានៅលើ

ការដាក់ទស្សនៈ

មេរៀននេះត្រូវបានបង្កើតជាមួយ ♥️ ដោយ Dmitry Soshnikov


ការបដិសេធ: ឯកសារនេះត្រូវបានបម្លែងភាសា ដោយប្រើសេវាបម្លែងភាសា AI Co-op Translator។ ទោះយើងខ្ញុំមានក្តីប្រាថ្នាឱ្យបានច្បាស់លាស់ តែសូមយល់ដឹងថាការបម្លែងដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាទីតាំងគួរត្រូវបានគេប្រើជាប្រភពច្បាស់លាស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើប្រាស់ការប្រែដោយមនុស្សជំនាញ។ យើងខ្ញុំមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសបន្ទាប់ពីការប្រើប្រាស់ការបម្លែងនេះនោះទេ។