5 Python Libraries ที่ Data Scientist อาจยังไม่ค่อยรู้จัก

28-ต.ค.-20

คัมภีร์เทพ IT

Python น่าจะเป็นภาษา Programming ที่ Data Scientist คงคุ้นเคยเป็นอย่างดี ซึ่งใน Python เองก็มี Library ที่มีประโยชน์ให้เลือกใช้อยู่มากมาย แต่ก็มีบาง Library ที่มีประโยชน์ มีประสิทธิภาพและน่าสนใจ แต่หลายคนอาจยังไม่รู้จักพวกมันมากนัก ดังนั้นบทความนี้จะมาแนะนำ 5 Python Libraries ที่ Data Scientist อาจยังไม่ค่อยรู้จัก

1. Scrapy

ทุก ๆ Project ของ Data Scientist มักเริ่มต้นด้วย Data และ Internet ก็เป็นแหล่งข้อมูลที่ชั้นยอดที่มีข้อมูลมากมายมหาศาลและสามารถเข้าถึงได้มากที่สุด แต่น่าเสียดายที่นอกเหนือจาก pd.read_html แล้ว Data Scientist ส่วนใหญ่ยังไม่ค่อยเข้าใจในเรื่องของการดึงข้อมูล (Data Scraping) ออกจาก Website ที่มีโครงสร้างข้อมูลที่ซับซ้อน ซึ่ง Scrapy จะช่วยทำให้การสร้าง Web Crawlers ที่ใช้ในการวิเคราะห์ Website และจัดเก็บข้อมูลที่ดึงออกมา ทำได้ง่ายกว่าการสร้างใหม่ตั้งแต่เริ่มต้น

นอกจากการมี User Interface ที่ Clean แล้ว ข้อได้เปรียบที่โดดเด่นที่สุดอีกเรื่องของ Scrapy ก็คือเรื่องประสิทธิภาพ การส่ง Request ไปยัง Website ด้วย Scrapy จะถูก Schedule และ Process แบบ Asynchronous ซึ่งหมายความว่า หากมี Request ใดที่ใช้เวลาในการ Process ที่ยาวนานมาก ก็จะมีการส่ง Request อื่นได้ในระหว่างนั้น Scrappy ยังช่วยให้สามารถ Crawling ข้อมูลได้อย่างรวดเร็ว ด้วยการส่ง Request พร้อม ๆ กันหลายรายการ ไปยัง Website และเมื่อมีการทำวนซ้ำ ๆ ไปเรื่อย ๆ จะช่วยให้เกิดประสิทธิผลมากที่สุด

นอกจากนี้ Scrapy ยังช่วยให้ Data Scientist สามารถ Export ข้อมูลที่ Save ไว้ในหลากหลายรูปแบบได้ เช่น JSON, CSV หรือ XML รวมถึง Backends ต่าง ๆ อย่าง FTP, S3, local

คุณสามารถดูรายละเอียดเพิ่มเติมได้จาก Documentation นี้

2. Pattern

มีบาง Website บางแห่งที่เป็นที่รู้จักและถูกสร้างมาเป็นอย่างดี อาจมีวิธีการดึงข้อมูลที่เป็นรูปธรรมมากขึ้นอยู่แล้ว และในกรณีนี้ การใช้ Scrapy เพื่อเขียน Web Crawler อาจจะดูมากเกินความจำเป็น ทำให้เราสามารถใช้ Pattern แทนได้ซึ่ง Pattern ก็คือ Web Mining ในระดับ High-Level และเป็น Natural Language Processing หรือ NLP Module ใน Python

ไม่เพียงจะมีการ Integrate กันอย่างราบรื่นกับข้อมูลของ Google, Twitter และ Wikipedia แต่ยังรวมไปถึง Web Crawler ที่สามารถปรับแต่งได้เล็กน้อย และ HTML DOM Parser, Pattern Employs POS (part of speech) Tagging, N-Grams Searching, Sentiment Analysis และ WordNet อีกด้วย ผลลัพธ์ของ Preprocessed Text Data สามารถใช้ใน Machine Learning Algorithms ที่ใช้งานได้หลากหลาย ตั้งแต่การ Clustering ไปจนถึง Classification หรือแสดงการวิเคราะห์ Network ให้เป็นภาพชัดเจนขึ้น

เรียกได้ว่า Pattern แทบจะมีทุกอย่างที่เกี่ยวข้องกับ Data Science ตั้งแต่การ Data Retrieval ไป Preprocessing ไปถึง Modelling และ Visualization และลดความยุ่งยากในการ Transfer Data ข้าม Library ต่าง ๆ อีกด้วย

คุณสามารถดูรายละเอียดเพิ่มเติมได้จาก Documentation นี้

3. Statsmodels

แม้ว่าโดยทั่วไป Data Scientists มักจะลังเลที่จะใช้วิธีการสร้างแบบจำลองทางสถิติ (Statistical Modelling) แต่ Statsmodels ก็ถือเป็น Library ที่ควรรู้จักไว้ นอกเหนือจากจะช่วยให้สามารถใช้ Algorithm ที่สำคัญ ๆ อย่าง ANOVA และ ARIMA ที่ Machine Learning Library มาตรฐาน อย่าง Sci-kit Learn ไม่มีแล้ว บางทีสิ่งที่มีค่าที่สุดเกี่ยวกับ Statsmodels ก็คือ ระดับของรายละเอียดและข้อมูลที่มันมีให้มากมาย

ตัวอย่างเช่น ลองมาดู Ordinary Least Squares Regression ที่ Train โดยใช้ Statsmodels กัน ซึ่ง Information ทั้งหมดที่ Data Scientist อาจต้องการ (ตั้งแต่ Metrics ที่เป็นประโยชน์ ไปจนถึง Information โดยละเอียดเกี่ยวกับ Coefficients) จะได้รับมาจาก Statsmodels และเช่นเดียวกันกับ Model อื่น ๆ ที่ใช้ใน Library ซึ่งคุณจะไม่ได้รับสิ่งเหล่านี้ใน Sci-Kit Learn

การมี Information ทั้งหมดนี้ ถือว่ามีค่าอย่างยิ่งสำหรับ Data Scientist ซึ่งมักให้ความไว้วางใจที่มากเกินไปกับ Model ที่พวกเขาไม่เข้าใจอย่างแท้จริง เนื่องจาก Data ที่มีมิติของข้อมูลสูงนั้น ไม่ใช่สิ่งจะใช้งานได้ง่าย ๆ เราจึงจำเป็นต้องทำความเข้าใจกับ Data และ Model ก่อนที่เราจะ Deploy มัน การรีบใช้ในสิ่งที่เรายังไม่เข้าใจมันอย่างสุ่มสี่สุ่มห้า เช่น เรื่องความแม่นยำ หรือ Mean Squared Error ก็อาจจะส่งผลกระทบในเชิงลบได้

นอกเหนือจากการสร้างแบบจำลองทางสถิติที่ละเอียดอย่างเหลือเชื่อแล้ว Statsmodels ยังมี Features และ Metrics ของ Data ที่เป็นประโยชน์อีกมากมาย อย่างเช่น การใช้ Seasonal-Trend Decomposition จะช่วยให้ Data Scientist สามารถเข้าใจ Data ของตนเองได้ดียิ่งขึ้น รวมทั้ง Transformations และ Algorithms ใดที่เหมาะสมกับ Data นี้มากกว่า ซึ่ง Information เหล่านี้ถือว่ามีค่าอย่างมาก

คุณสามารถดูรายละเอียดเพิ่มเติมได้จาก Documentation นี้

หรืออีกทางเลือกหนึ่ง คือ คุณสามารถใช้ pinguoin ที่มีความซับซ้อนน้อยกว่า แต่ยังคงมีข้อมูลเชิงลึกที่ดีเยี่ยมของ Function ทางด้านสถิติ

4. Mlxtend

Mlxtend เป็น Library ที่ควรมาพร้อมกับ Data Science Project โดยให้ถือว่ามันเป็น Extension ของ Sci-Kit Learn Library โดย Mlxtend มี Automation ที่มีประโยชน์สำหรับงานทั่วไปของ Data Science:

  • ช่วยทำ Feature Extraction และ Selection ให้โดยอัตโนมัติ
  • Extension ของ Data Transformers ที่มีอยู่ของ Sci-Kit Learn เช่น Mean Centering และ Transaction Encoders
  • Evaluation Metrics ที่หลากหลาย: บางส่วนยังรวมถึง Bias-Variance Decomposition (วัดว่า Model ของคุณมี Bias และ Variance อย่างไร), Lift Tests, McNemar’s Test, F-Test และอื่น ๆ อีกมากมาย
  • Model Visualizations ที่เป็นประโยชน์รวมถึง Feature Boundaries, Learning Curves, PCA Correlation Circles และ Enrichment Plots
  • Built-in Datasets จำนวนมากที่ไม่รวมอยู่ใน Sci-Kit Learn
  • Preprocessing Functions ที่เป็นประโยชน์สำหรับรูปภาพและข้อความ เช่น Name Generalizer ที่สามารถระบุและแปลงข้อความด้วยระบบการตั้งชื่อที่แตกต่างกัน (เช่น “Deer, John”, “J. Deer”, “J.D.” และ “John Deer” ซึ่งถือว่าเหมือนกัน)

Mlxtend ยังมี Image Processing Features ที่มีประโยชน์เช่นเดียวกับที่สามารถดึงจุดสังเกตบนใบหน้าได้:

หรือพิจารณาความสามารถในการวาดขอบเขตของการตัดสินใจ:

คุณสามารถดูรายละเอียดเพิ่มเติมได้จาก Documentation นี้

5. REP

เช่นเดียวกับ Mlxtend คือให้คิดว่า REP เป็น Extension ของ Sci-Kit Learn Library แต่มันมีในส่วนของ Machine Learning ที่มากกว่า โดยพื้นฐานแล้วมันเป็น Python Wrapper สำหรับ Machine Learning Library ต่าง ๆ ที่ Extend มาจาก Sci-Kit Learn อีกทั้งมีการใช้ XGBoost, Pybrain, Neurolab และ Machine Learning Library เฉพาะทางอื่น ๆ อีกมากมายร่วมกับ Sci-Kit Learn

อย่างเช่น การเปลี่ยน XGBoost Classifier ให้เป็น Bagging Classifier ผ่าน Wrapper แบบธรรมดา จากนั้นจึง Convert ไปเป็น Sci-Kit Learn Model (ซึ่งง่ายต่อการ Wrap และ Convert Algorithms) จะไม่สามารถพบได้ใน Library อื่น ๆ

นอกเหนือจากนี้ REP ยังมีการใช้งานอื่น ๆ ในการ Transform Models จาก Library ใด ๆ ไปเป็น Cross-Validation (Folded) และ Stacked Models ส่วน Features อื่น ๆ ได้แก่ Grid Search ที่มีความรวดเร็วมากและ Model Factory ซึ่งสามารถ Train ได้หลากหลาย Machine Learning Classifiers บน Dataset ชุดเดียวกันได้อย่างมีประสิทธิภาพ

ด้วยการใช้ REP กับ Sci-Kit Learn คุณจะสามารถสร้าง Model ได้อย่างอิสระและง่ายดายยิ่งขึ้น

คุณสามารถดูรายละเอียดเพิ่มเติมได้จาก Documentation นี้

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

 

 

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

 

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

เพิ่มเพื่อน

 

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