5 Command Line Tools สำหรับ Data Science

13-ก.ย.-19

คัมภีร์เทพ IT

เรื่องที่น่าหงุดหงิดที่สุดเรื่องหนึ่งของ Data Science คือการที่ต้องสลับไปใช้ Tools ต่าง ๆ ในขณะที่ทำงานอยู่ แต่จะดีกว่าไหม หากเราสามารถทำสิ่งต่าง ๆ หลายอย่างได้ภายใน Software หรือ Tool เดียว ในบทความนี้ คุณ Rebecca Vickery จะมาบอกถึง 5 Command Line Tools สำหรับ Data Science ซึ่งมีหลายอย่างที่สามารถทำให้เสร็จได้ง่ายกว่าที่คิดไว้ตั้งแต่แรก

1. cURL

นี่เป็นเครื่องมือที่มีประโยชน์ในการเก็บ Data จาก Server ผ่านหลากหลาย Protocol รวมถึง HTTP ด้วย

ลองมาดูตัวอย่างส่วนหนึ่งสำหรับการเก็บ Data Sets ซึ่ง UCI Machine Learning Repository ถือเป็น Resource ที่ดีในเรื่องการเก็บ Datasets สำหรับ Machine Learning Project เราสามารถใช้ cURL Command ง่าย ๆ เพื่อ Download Data set ที่ได้มาจาก Blood Transfusion Centre ในเมือง Hsin-Chu ประเทศไต้หวัน ถ้าเรา Run cURL [url] ซึ่งในตัวอย่างนี้จะเป็น cURL https://archive.ics.uci.edu/ml/machine-learning-databases/blood-transfusion/transfusion.data มันจะทำการ Print Data ไปยังเครื่อง Terminal

เราสามารถเพิ่ม Arguments อื่น ๆ เพิ่มเติมเข้าไปโดยมันจะ Download และ Save Data ด้วยการระบุ Filename ที่ต้องการ และ File ก็จะพร้อมใช้งานอยู่ใน Working Directory ปัจจุบันของคุณ

อีกวิธีในการเก็บ Data สำหรับ Data Science Projects ก็คือ การทำผ่าน API โดย Tool นี้ยังรองรับทั้ง GET และ POST Request สำหรับการโต้ตอบกับ API อีกด้วย การ Run Command ต่อไปนี้จะเป็นรับ Record จาก OpenWeatherMap API และ Save เป็น JSON File ที่ชื่อว่า weather.json หากคุณอยากทำความเข้าใจมากขึ้นเกี่ยวกับ cURL สามารถอ่านบทความนี้เพิ่มเติมได้

2. csvkit

csvkit เป็นชุดของ Command Line Tools สำหรับการทำงานกับ CSV Files โดยงานที่มันสามารถ Execute ได้จะถูกแบ่งออกเป็น 3 ส่วน ได้แก่ Input, Processing และ Output เราลองมาดูตัวอย่างจริง ๆ ของการใช้งานเจ้าสิ่งนี้กัน

ก่อนอื่นให้ติดตั้ง Tool โดยใช้ pip install

สำหรับตัวอย่างนี้ จะใช้ CSV File ตัวเดียวกันกับที่เคยสร้างขึ้นจาก UCI Machine Learning Repository ผ่าน cURL Command จากหัวข้อที่แล้ว

ก่อนอื่น ให้ใช้ csvclean เพื่อให้แน่ใจว่า CSV File ของเราอยู่ใน Format ที่ถูกต้องก่อน Function นี้จะแก้ไขข้อผิดพลาดทั่วไปของ CSV โดยอัตโนมัติและ Remove Row ที่มีปัญหาออก

ประโยชน์อีกอย่างของ Function นี้ ก็คือ มันจะสร้าง CSV File ใหม่ที่เป็น “Cleaned Version” ให้โดยอัตโนมัติ และยังคงเก็บรักษาข้อมูลต้นฉบับเอาไว้อยู่ ซึ่ง File ใหม่นี้มี Format การตั้งชื่อในรูปแบบ [filename]_out.csv เสมอ หากคุณต้องการที่จะเขียนทับ File ต้นฉบับไปเลย คุณสามารถเพิ่ม Argument -n เข้าไป

แม้ใน File ตัวอย่างที่ยกมา จะไม่มีข้อผิดพลาดให้เห็น แต่นี่ก็เป็นวิธีที่มีประโยชน์อย่างมาก ในการลดข้อผิดพลาดเมื่อต้องทำงานกับ CSV File

ตอนนี้สมมติว่า เราต้องการที่จะตรวจสอบ File อย่างรวดเร็ว เราสามารถใช้ csvcut และ csvgrep เพื่อทำสิ่งนี้

ก่อนอื่นให้ Print out ชื่อ Column ออกมาก่อน

คราวนี้เรามาพิจารณาว่า มีกี่ Classes ที่อยู่ใน Target Column

csvgrep Function จะช่วยให้คุณ Filter CSV File โดยใช้การ Match แบบ Regular Expression 

ลองมาใช้ Function นี้เพื่อทำการแยก Row ที่ Match กับ Class 1

คุณยังสามารถใช้ csvkit เพื่อทำการวิเคราะห์ Data อย่างง่าย ๆ โดยใช้ csvstat Function 

คุณยังสามารถ Run csvstat data_dl_out.csv เพื่อ Print ข้อมูลใน File ทั้งหมดไปยัง Command Line นอกจากนี้คุณยังสามารถดู Result อย่างใดอย่างหนึ่งของข้อมูลได้ด้วย Optional Command ได้

3. IPython

IPython ช่วยให้คุณสามารถเข้าถึง Enhanced Interactive Python ได้จาก Shell หรือพูดอีกอย่างก็คือ คุณสามารถทำสิ่งต่าง ๆ เท่าที่คุณสามารถจะทำได้ใน Jupyter Notebook จาก Command Line 

คุณสามารถทำตามขั้นตอนเหล่านี้เพื่อติดตั้ง Tool ตัวนี้ในกรณีที่คุณยังไม่มีมันในเครื่อง Terminal ของคุณ 

สำหรับการเริ่มต้นใช้ IPython เพียงแค่พิมพ์ ipython ที่ Command Line มันก็จะพาคุณไปยัง Interactive Shell ซึ่งในขั้นตอนนี้คุณสามารถ Import Python Libraries ที่ถูกติดตั้งไว้แล้ว และ Tool นี้ยังมีประโยชน์อย่างมากในการวิเคราะห์ข้อมูลอย่างรวดเร็วใน Command Line

เราลองมาทำงานบางอย่างกับ Data set ที่เราใช้งานอยู่แล้ว ก่อนอื่นเราจะทำการ Import Pandas, ทำการอ่าน File และตรวจสอบ Data ใน ในบรรทัดแรก ๆ

ชื่อ Column ของ File นั้นค่อนข้างยาว ดังนั้น เราสามารถใช้ Pandas ในการ Rename พวกมัน แล้ว Export ผลลัพธ์ที่เป็น Dataframe ไปยัง CSV File ใหม่เพื่อใช้ในภายหลัง

จากนั้นมาตรวจสอบความสัมพันธ์ระหว่าง Feature และ Target Variable โดยใช้ Pandas corr() Function

และหากต้องการออกจาก IPython เพียงแค่พิมพ์ exit

4. csvsql

บางครั้งคุณอาจต้องการเก็บ Data set ผ่าน SQL Query บน Database ซึ่ง csvsql เป็นส่วนหนึ่งของ csvkit Tool โดยมันรองรับทั้งการ Query, การ Write และการ Create Table โดยตรงบน Database นอกจากนี้ยังรองรับ SQL Statements สำหรับการ Query CSV File เราลองมา Run ตัวอย่างของ Query ใน Data set ที่ถูก Cleaned แล้ว กันดู

5. SciKit-Learn Laboratory

คุณสามารถทำในส่วนของ Machine Learning ได้ที่ Command Line แม้จะมีแค่ไม่กี่ Tool ที่สามารถทำแบบนี้ได้ แต่ SciKit-Learn Laboratory น่าจะเป็นหนึ่งใน Tool ที่ใช้งานได้ง่ายมากที่สุดตัวหนึ่ง เรามาสร้าง Model โดยใช้ Data set ของ Blood Donations ของเรากัน

การที่ SciKit-Learn Laboratory จะทำงานได้อย่างถูกต้องนั้น ขึ้นอยู่กับชื่อ File และตำแหน่งที่เราวาง File ใน Directory ที่ถูกต้อง ดังนั้น เรามาเริ่มด้วยการสร้าง Directory ชื่อ Train กัน จากนั้นก็ทำการ Copy/Move/Rename File ที่มี Data ของเราให้มีชื่อ File เป็น features.csv

ต่อไป เราจำเป็นต้องสร้าง Config File ที่ชื่อว่า predict-donations.cfg ให้มันอยู่ใน Data Directory ของเรา

จากนั้นเราก็เพียงแค่ Run Command นี้ run_experiment -l predict-donations.cfg

ด้วยวิธีการนี้ มันจะทำการ Run ตัว Experiment โดยอัตโนมัติ และสร้าง Output Folder ที่มี Result อยู่

เราสามารถ Run SQL Query เพื่อสรุป Result ใน Blood_Donations_summary.tsv File

ยังมี Command Line Tools อื่น ๆ อีกมากมายที่เป็นประโยชน์สำหรับ Data Science แต่บทความนี้ต้องการเน้นเฉพาะส่วนที่ เห็นว่ามีประโยชน์ในการทำงาน และหากคุณอยากมีมุมมองที่ครอบคลุมใน Data Science เกี่ยวกับ Command Line คุณสามารถอ่านได้จากหนังสือ Data Science at the Command Line ทาง Online ได้ฟรี ๆ ที่นี่

ที่มา:  https://towardsdatascience.com/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด