เครื่องมือวิทยาศาสตร์ข้อมูลโดยใช้ Scala


15

ฉันรู้ว่า Spark ได้รวมเข้ากับ Scala อย่างสมบูรณ์ มันใช้กรณีเป็นเฉพาะสำหรับชุดข้อมูลขนาดใหญ่ เครื่องมืออื่นใดที่รองรับสกาลาได้ดี Scala เหมาะสมที่สุดสำหรับชุดข้อมูลขนาดใหญ่กว่านี้หรือไม่? หรือมันยังเหมาะกับชุดข้อมูลที่มีขนาดเล็กลงหรือไม่?


2
คุณต้องการที่จะรู้เกี่ยวกับชุดเครื่องมือการเรียนรู้ของเครื่องเช่น FACTORIE หรือไม่?
Erik Kaplun

นั่นฟังดูเกี่ยวข้องกับคำถามของฉันอย่าลังเลที่จะแบ่งปันมากขึ้น
sheldonkreger

คำตอบ:


11

เรื่องขนาดของข้อมูล

คำตอบสั้น ๆ

Scala ทำงานได้ทั้งข้อมูลขนาดเล็กและขนาดใหญ่ แต่การสร้างและการพัฒนานั้นมีแรงจูงใจโดยต้องการบางสิ่งบางอย่างที่ปรับขนาดได้ สกาล่าเป็นตัวย่อสำหรับ“Scalable ภาษา”

คำตอบที่ยาว

Scala เป็นภาษาเขียนโปรแกรมการทำงานที่รันบนJVM ส่วน 'การทำงาน' ของสิ่งนี้คือความแตกต่างพื้นฐานในภาษาที่ทำให้คุณคิดต่างไปจากการเขียนโปรแกรม หากคุณชอบวิธีคิดแบบนี้มันจะช่วยให้คุณทำงานกับข้อมูลขนาดเล็กได้อย่างรวดเร็ว ไม่ว่าคุณจะชอบหรือไม่ก็ตามภาษาที่ใช้ในการทำงานนั้นง่ายต่อการปรับขนาดให้ใหญ่ขึ้น ชิ้นส่วน jvm ก็มีความสำคัญเช่นกันเพราะ jvm นั้นมีอยู่ทั่วไปและดังนั้นโค้ดของ Scala สามารถทำงานได้ทุกที่ (หมายเหตุมีภาษาอื่นอีกมากมายที่เขียนบน jvmและภาษาการเขียนโปรแกรมเชิงฟังก์ชันอื่น ๆ มากมายและภาษาที่อยู่นอกเหนือจาก Scala จะปรากฏในรายการทั้งสอง)

การพูดคุยนี้ให้ภาพรวมที่ดีของแรงจูงใจเบื้องหลังสกาลา

Re: เครื่องมืออื่น ๆ ที่มีการสนับสนุน Scala ที่ดี:

ดังที่คุณกล่าวถึง Spark (การประมวลผลแบทช์แบบกระจายได้ดีกว่าในอัลกอริธึมการวนซ้ำมากกว่ารุ่นเดียวกัน) เป็นวิธีที่ใหญ่ ด้วย Spark มาพร้อมกับห้องสมุดMllibสำหรับการเรียนรู้ของเครื่องและGraphXสำหรับกราฟ ตามที่ Erik Allik และ Tris Nefzger พูดถึงAkkaและFactorieมีอยู่จริง นอกจากนี้ยังมีการเล่น

โดยทั่วไปฉันไม่สามารถบอกได้ว่ามีกรณีการใช้งานเฉพาะที่คุณกำลังขุดหา (ถ้าเป็นเช่นนั้นทำให้เป็นส่วนหนึ่งของคำถามของคุณ) หรือเพียงแค่ต้องการสำรวจเครื่องมือข้อมูลขนาดใหญ่และรู้ Scala สักหน่อยและต้องการ เพื่อเริ่มต้นที่นั่น


5

ScalaNLP เป็นชุดของการเรียนรู้ของเครื่องและไลบรารีการคำนวณเชิงตัวเลขที่รองรับงานประมวลผลภาษาธรรมชาติทั่วไป http://www.scalanlp.org/

นี่คือรายการที่อัปเดตใหม่ของห้องสมุดสกาล่าสำหรับวิทยาศาสตร์ข้อมูล: https://www.datasciencecentral.com/profiles/blogs/top-15-scala-lไลบรารี-for-data-science-in- 2018-1


4

จากการฟังการนำเสนอโดย Martin Odersky ผู้สร้าง Scala มันเหมาะอย่างยิ่งสำหรับการสร้างระบบที่ปรับขนาดได้สูงโดยใช้ประโยชน์จากการเขียนโปรแกรมฟังก์ชั่นการสร้างในการประกอบกับการวางแนววัตถุและไวยากรณ์ flelxible นอกจากนี้ยังมีประโยชน์สำหรับการพัฒนาระบบขนาดเล็กและการสร้างต้นแบบอย่างรวดเร็วเนื่องจากใช้โค้ดน้อยกว่าภาษาอื่น ๆ และมีโหมดโต้ตอบสำหรับการป้อนกลับอย่างรวดเร็ว หนึ่งในกรอบสกาล่าที่โดดเด่นคือ Akka ซึ่งใช้รูปแบบนักแสดงของการคำนวณพร้อมกัน การนำเสนอของ Odersky จำนวนมากอยู่บน YouTube และมีรายการเครื่องมือที่ใช้กับ Scala ใน wiki.scala-lang.org

จุดโดยนัยก็คือเครื่องมือและกรอบงานที่เขียนใน Scala โดยเนื้อแท้มีการรวมสกาล่าและมักจะเป็น Scala API ดังนั้นอาจมีการเพิ่ม API อื่น ๆ เพื่อสนับสนุนภาษาอื่น ๆ ที่เริ่มต้นด้วย Java เนื่องจาก Scala ได้รวมอยู่แล้วและในความเป็นจริงแล้วขึ้นอยู่กับ Java หากเครื่องมือหรือกรอบงานไม่ได้ถูกเขียนใน Scala มันไม่น่าเป็นไปได้ที่จะให้การสนับสนุนสำหรับ Scala นั่นคือเหตุผลที่ตอบคำถามของคุณฉันได้ชี้ไปที่เครื่องมือและกรอบงานเขียนใน Scala และ Spark เป็นตัวอย่างหนึ่ง อย่างไรก็ตามในปัจจุบันสกาล่ามีส่วนแบ่งตลาดเล็กน้อย แต่อัตราการยอมรับของมันก็เพิ่มขึ้นและอัตราการเติบโตที่สูงของสปาจะช่วยเสริม เหตุผลที่ฉันใช้ Scala เป็นเพราะ API ของ Spark สำหรับ Scala นั้นสมบูรณ์กว่า Java และ Python APIs

เหตุผลหลักที่ฉันชอบ Scala โดยทั่วไปก็เพราะมันแสดงออกได้ดีกว่า Java เพราะมันช่วยและอำนวยความสะดวกในการใช้ฟังก์ชั่นเป็นวัตถุและค่าในขณะที่ยังคงรักษา modularity เชิงวัตถุซึ่งช่วยให้การพัฒนาโปรแกรมที่ซับซ้อนและถูกต้อง ฉันได้รับความนิยมเนื่องจากมีการใช้อย่างแพร่หลายความชัดเจนและเอกสารที่ยอดเยี่ยม


1
นี่เป็นข้อมูลที่ดีเกี่ยวกับ Scala โดยทั่วไป แต่ฉันกำลังมองหาข้อมูลเกี่ยวกับเครื่องมือหรือกรอบข้อมูลวิทยาศาสตร์เฉพาะที่มีการรวมสกาล่าและทำไม Scala เป็นภาษาที่ดีสำหรับเครื่องมือเหล่านั้นที่จะใช้
sheldonkreger

0

Scala เหมาะสำหรับการใช้งานด้านวิทยาศาสตร์ข้อมูลขนาดใหญ่และขนาดเล็ก พิจารณา DynaMLหากคุณสนใจที่จะลองใช้ไลบรารี่การเรียนรู้ของเครื่องซึ่งสามารถใช้งานร่วมกับ Apache Spark ได้ดี มันยังอยู่ในช่วงเริ่มต้นดังนั้นจะพูดในแง่ของจำนวนรุ่นที่มีให้ แต่มันทำขึ้นโดย API การเรียนรู้เครื่องจักรที่กว้างและยืดหยุ่น

หากต้องการดูตัวอย่างกรณีการใช้งานให้พิจารณา (เพิ่มเติมจากที่มา)

  1. การระบุระบบ - โรงไฟฟ้า Abott

ข้อจำกัดความรับผิดชอบ: ฉันเป็นผู้เขียน DynaML


หากนี่เป็นโครงการของคุณโปรดบันทึกความร่วมมือของคุณ
Sean Owen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.