ถ้าคุณกำลังสนใจ หรือเริ่มอยากลองทำงานด้านดาต้า คุณก็รู้ตัวแล้วละว่าจะต้องเรียนรู้การเขียนโปรแกรมอย่างน้อยหนึ่งภาษา จากนั้นก็จะถามตัวเองว่าเรียนภาษาไหนก่อนดี ระหว่าง R หรือ Python แล้วมันต่างกันอย่างไร อันไหนใช้ง่ายกว่ากันในเมื่อเป็นภาษายอดนิยมทั้งคู่ ถ้าอ่านถึงตรงนี้แล้ว ยังสงสัยอยู่ เราก็ไปต่อกันเลย Show มาทำความรู้จักกับพระเอก นางเอกของเรากันค่ะ สารบัญเนื้อหา R คืออะไรR เป็นภาษาที่สร้างขึ้นโดยนักสถิติจากมหาลัยโอ๊คแลนด์ ในประเทศนิวซีแลนด์ ที่ชื่อขึ้นต้นด้วย R ทั้งสองคู่ นั้นก็คือ Ross Ihaka และ Robert Gentleman ทั้งสองสร้าง R ขึ้นมาในปี 1995 และปล่อยบีต้าเวอร์ชั่น (เวอร์ชั่นที่เปิดให้ผู้ใช้ทั่วไปดาวน์โหลดไปใช้งานเพื่อทดสอบการใช้งานจริง ก่อนที่จะเปิดตัวอย่างเป็นทางการ) ใน 5 ปีถัดมา นอกจากนี้ R ยังเป็นภาษาโปรแกรมที่ ประมวลผลเชิงสถิติ และแสดงผลในรูปแบบกราฟ อีกทั้งยังเป็นโปรแกรมแบบ Open Source ซึ่งสามารถติดตั้ง ใช้งานได้อย่างไม่มีข้อจำกัด ไม่มีค่าใช้จ่ายใดๆ (ฟรีนั่นเอง) และมี community ที่คอยช่วยใหญ่พอสมควร เหตุผลที่ R เป็นเครื่องมือด้าน Data Science ขวัญใจหลายๆคนคือ
ส่วนด้านการใช้งานนั้น R อาจจะไม่ใช่เครื่องมือที่ทาง Data Science ที่เร็วที่สุด เนื่องจากต้องใช้หน่วยความจำค่อนข้างมากในการทำงานกับข้อมูลชุดใหญ่ Python คืออะไรPython นั้นถูกสร้างขึ้นมาก่อน R ช่วงระยะเวลาหนึ่งในปี 1991 โดย Guido van Rossum โปรแกรมเมอร์ชาวดัตช์ ประเทศเนเธอร์แลนด์ ในตอนแรก Guido อยากจะพัฒนาโปรแกรมหนึ่ง ซึ่งภาษาที่ใช้ในการพัฒนานั้นไม่ตอบโจทย์ และค่อนข้างซับซ้อน ทำให้ตัดสินใจสร้างภาษาโปรแกรมใหม่ที่ง่ายต่อการเรียนรู้ และช่วยในการแปลงความคิดของการแก้ปัญหาออกมาเป็นลำดับขั้นตอน
เหตุผลที่ Python เป็นเครื่องมือด้าน Data Science ที่ยอดนิยมมากที่สุดคือ
ปกติแล้วจำนวนคนที่ใช้งาน R และ Python ในงาน data science หรือ data analysis นั้นมีพอๆกัน โดยที่คนที่มีพื้นฐานด้านเลขและสถิติดี มักจะชอบใช้ R ในขณะที่คนที่มีพื้นฐานด้านการเขียนโปรแกรมภาษาอื่นๆมาก่อน มักชอบใช้ Python ความแตกต่างระหว่าง R และ Pythonความแตกต่างหลักของสองภาษานี้ในวิธีการใช้งาน Data Science คือ ทั้งคู่ต่างก็เป็นเครื่องมือแบบ opensource มี community ขนาดใหญ่คอยรองรับ และมี libraries มาให้ใช้มากขึ้นเรื่อยๆ แต่ R นั้นเน้นการวิเคราะห์ทางสถิติ ส่วน Python สามารถเขียนโปรแกรมได้หลากหลายตั้งแต่ทั่วไปจนถึงการพัฒนาซอฟแวร์ Python เป็นภาษาอเนกประสงค์ คล้ายกับ C ++ และ Java มี Syntax ที่เรียนรู้ได้ง่าย เราสามารถใช้วิเคราะห์ข้อมูล สร้างโมเดลในระบบที่สามารถเพิ่มเติมแก้ไขในอนาคตได้ (scalable production environments) ตัวอย่างเช่น ใช้ Python สร้าง face recognition ใน mobile API หรือสร้างแอพสำหรับ Machine Learning ขณะที่ R นั้นสร้างโดยนักสถิติ ก็จะเน้นไปทาง โมเดลทางสถิติ และการวิเคราะห์แบบพิเศษเชิงสถิติ เรามักจะใช้ R ในการวิเคราะห์สถิติเชิงลึก โดยเขียนโค้ดไม่กี่บรรทัด ก็จะได้กราฟออกมาด้วย ตัวอย่างเช่น ใช้ในการวิเคราะห์พฤติกรรมของลูกค้า หรือ การศึกษาค้นคว้าหากลุ่มยีน ข้อดีและข้อเสียของ RPros
Cons
ข้อดี ของ R
ข้อเสีย ของ R
สำหรับใครที่เริ่มอยากเรียน R แล้ว เรามีหนังสือแจกฟรีพร้อมสรุปคราวๆที่นี่เลย หรือถ้าสนใจเป็นคลิปวิดีโอสอนเขียน R Programming เข้าใจง่าย ๆ ใน 20 นาทีเป็นภาษาไทยแทนก็เริ่มได้เลยค่า ข้อดีและข้อเสียของ PythonPros
Cons
ข้อดี ของ Python
ข้อเสีย ของ Python
แต่ถ้าสนใจ Python มากกว่า เราก็มีหนังสือ Python for Data Science แจกฟรีเช่นกัน ความแตกต่างในการใช้งานของ R และ Pythonที่นี้เราลองมาดูการใช้งานจริงๆของทั้งสองในแต่ละแบบกันบ้าง ว่าตัวไหนใช้ได้ดีในการใช้งานแบบไหน PythonRการใช้งานเป็นการเขียนโปรแกรมเชิงวัตถุ ซึ่งทำให้โปรแกรมเมอร์รันโปรแกรมได้อย่างมีเสถียรภาพ เป็นสัดส่วนและง่ายต่อการอ่านมากขึ้นจุดประสงค์หลักของภาษา คือการที่เน้นวิธีการง่ายๆ สำหรับการวิเคราะห์ข้อมูล สถิติ และการแสดงโมเดลการวิเคราะห์เชิงสถิติ (Statistical Analysis)Python นั้นมี libraries ที่เรียกว่า statsmodels ใช้ในการเตรียมวิธีการทางสถิตR ถูกสร้างขึ้นมาสำหรับการวิเคราะห์เชิงสถิติ และเชิงตัวเลข สำหรับข้อมูลชุดใหญ่ ดังนั้นจึงมีหลายทางในการตรวจสอบข้อมูลการวิเคราะห์ข้อมูล (Data Analsis)แพคเกจสำหรับการวิเคราะห์ข้อมูลใน Python นั้นเดิมทีทำไม่ค่อยได้ แต่เวอร์ชั่นหลังๆก็มี Numpy และ Pandas ไว้ใช้ได้ในการวิเคราะห์ข้อมูลR มีประโยชน์มากสำหรับการวิเคราะห์ข้อมูล เพราะว่ามีแพคเกจหลายอันไว้ใช้ และได้เปรียบในการใช้คำนวณสูตรทางคณิตศาสตร์ จึงเหมาะกับการใช้วิเคราะห์ข้อมูลมากๆการเรียนรู้ของเครื่อง (Machine Learning & Deep Learning)Python จะเป็นที่นิยมมากสำหรับการสร้างโมเดล Machine Learning เช่น Scikit-learn มีหลายเครื่องมือไว้สร้างโมเดล สำหรับ Deep Learning มีแพคเกจอย่าง tensorflow, pytorch และ theano ที่สามารถใช้งานได้เสถียรและมีประสิทธิภาพมากกว่า Rสำหรับ Machine Learning ย่อสั้นๆ ML ใน R สามารถใช้ Caret และยังมีแพคเกจอื่นๆมากมาย เช่น Nnet ซึ่งสามารถใช้ในโครงข่ายประสาทเทียม (neural networks) ถ้าโมเดลต้องมีการปรับค่าตัวแปรหรือลูกเล่นต่างๆมาก R ก็อาจจะยังทำไม่ได้ดีนักอนุกรมเวลา (Time series)Python ใช้งานได้ดีกว่าใน LSTM (Long Short-Term Memory) ซึ่งเป็นโครงข่ายประสาทเทียมแบบหนึ่งที่ถูกออกแบบมาสำหรับการประมวลผลลำดับ และ โมเดล Deep Learning อื่นๆของอนุกรมเวลาR ใช้งานได้ดีกว่าในแบบจำลองมาร์คอฟซ่อนเร้นขั้นสูง (HMM), การพยากรณ์อนุกรมเวลาลำดับชั้น (Hierarchical time series) และ โมเดลเศรษฐมิติขั้นสูง (Econometric model)การประมวลผลภาษาธรรมชาติหรือภาษามนุษย์ (NLP-Natural Language Processing)Python ใช้ได้ดีสำหรับการประมวลผลภาษาธรรมชาติโดยมี NLTK สำหรับการเตรียมข้อมูล (preprocessing) และ Gensim สำหรับสร้างโมเดลทั้ง LDA และ word2VecR ไม่ได้มีแพคเกจในการจัด stringที่ดีนัก แต่ก็มีแพคเกจ Rword2vecs ซึ่งสามารถสร้างโมเดล word2vec หรือมเดลที่ใช้สร้าง word embedding ในขณะที่แพคเกจ MASS สร้าง LDA (Latent Dirichlet Allocation) ซึ่งเป็นอีกเทคนิคหนึ่งการในการดึงข้อมูลจากเว็บเพจ (Web Scraping)การดึงข้อมูลจากเว็บเพจโดยใช้ Python ทำได้โดยใช้ BeautifulSoupสำหรับการในการดึงข้อมูลจากเว็บเพจใน R สามารถใช้ Rvest จาก library ที่เรียกว่า Tidyverseการคํานวณใน database (In-database computation)Python มีตัวเลือกน้อยกว่า สามารถใช้ Postgres, Microsoft’s SQL ServerR สามารถใช้ SQL Server, Postgres, Teradata และ Oracleระบบกระแสงานอัตโนมัติ (Workflow Automation)Python มีเครื่องมือสองอันในการใช้งานคือ Airflow และ LuigiR ไม่มีเครื่องมือที่มาช่วยในการทำ automationบริการ Cloud-MLPython ใช้ได้ทุกบริการ ตั้งแต่ AWS, Azure ML, Sagemaker และ Google CloudR ใช้เครื่องมือในการทำ Machine Learning บน Cloud Computing base ได้หลายบริการเช่น Azure ML และ Google CloudMLความแตกต่างในการใช้งานของ R และ Python สรุป เรียน R หรือ Python ดีกว่ากันR และ Python มีความแตกต่างมากมายหลายแง่มุม แต่ทั้งนี้ทั้งนั้นก็เป็นภาษาที่ดีในการใช้วิเคราะห์ข้อมูล และใช้งานด้าน data science การเลือกว่าจะใช้งาน R หรือ Python นั้นขึ้นอยู่กับ วัตถุประสงค์ในการใช้งาน และความถนัดส่วนบุคคล ซึ่งเราก็ต้องลองดูว่าเราจะทำอะไร แล้วเครื่องมือไหนมีข้อจำกัดอะไรบ้าง ไม่มีถูก ไม่มีผิด สำหรับใครที่ตื่นเต้น และอยากลองเรียนทั้งสองภาษาเลย ก็สามารถเข้าไปเรียนทั้ง R และ Python ตามลิงค์ข้างล่างนี้ได้ [คลิปไทย สอนฟรี] เรียน Data Science จากอาจารย์จุฬาฯ ครบทั้ง Python, R, SQL แล้วภาษาโปรแกรมมิ่งอื่น ๆ ล่ะสำหรับคนที่อยากรู้เพิ่มเติมเกี่ยวกับภาษาโปรแกรมมิ่งอื่น ๆ เช่น SQL, Scala, JavaScript ฯลฯ ว่าภาษาเหล่านี้เกี่ยวกับงาน Data อย่างไรบ้าง สามารถอ่านได้ในบลอคนี้เลยนะคะ 7 ภาษาโปรแกรมมิ่งที่ Data Scientist ต้องรู้ ถ้าชอบเนื้อหาแนวนี้ ติดตามบทความดี ๆ ด้าน Data และวีดิโอสนุก ๆ ดูชิล ๆ แล้วได้ความรู้กันได้ที่ Facebook Page: DataTH และ Youtube Channel: Data Science ชิลชิล แล้วเจอกันนะคะ แล้วพบกันใหม่บทความหน้าค่ะ
MeowData Engineer ที่ออสเตรเลีย มีความสนใจด้าน Healthcare/Insurance อย่างมาก ชอบตัวเลข Stat Machine learning การสร้างโมเดลทำนายผลและวิเคราะห์ข้อมูลให้ทำประโยชน์ได้จริง |