ภาษาการเขียนโปรแกรมใดที่คุณแนะนำให้สร้างต้นแบบปัญหาการเรียนรู้ของเครื่อง?


12

กำลังทำงานใน Octave แต่เนื่องจากความคืบหน้าของเอกสารไม่ดีช้ามาก

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

แก้ไข: ฉันกำลังพัฒนาเครื่องมือแนะนำ ดังนั้นฉันสนใจที่จะใช้ Regularized Linear Regression, Neural Nets, SVN หรือ Collaborative Filtering


1
ผมเคยเริ่มต้นด้วยคู่เกินไปเนื่องจากศาสตราจารย์ของฉันคือใน MATLAB (uuh นี้ก็สนุกในระหว่างการเรียนการสอนโดยใช้ห้องสมุดศาสตราจารย์ของตั้งแต่ MATLAB และคู่ไม่ได้ว่าไวยากรณ์เดียวกัน) แต่แล้วฉันเปลี่ยนไป R และถูกพัดออกไปเพียง ด้วยเอกสารที่เหนือกว่าและห้องสมุดที่หลากหลาย
steffen

9
Python เป็นหลักสูตรที่ง่ายต่อการเรียนรู้และอ่านดังนั้นฉันคิดว่ามันเป็นเรื่องของรสนิยม ผมขอแนะนำให้เชื่อมโยงเหล่านี้: หลามสถิติ-ปรับแต่ง , สิ่งที่เขียนโปรแกรมภาษาสำหรับสถิติ-อนุมาน , เครื่องเรียนรู้โดยใช้หลาม , Clojure
Steffen

1
ฉันแนะนำ R, Python หรือ Matlab ด้วยเหตุผลที่กว้างขวางเกินกว่าที่จะพูดถึงฉันจะวาง Matlab สำหรับคนที่มีสถิติฉันจะไปกับ R สำหรับโปรแกรมเมอร์ฉันจะไปกับ Python สำหรับวงในฉันจะใช้ C / C ++ ในระดับที่เพียงพอค่าใช้จ่ายของ Matlab เกินประโยชน์ใด ๆ
Iterator

1
หรือดู julia ...
kjetil b halvorsen

คำตอบ:


7

หากคุณต้องการใช้บางอย่างออกมา Weka อาจเป็นจุดเริ่มต้นที่ดี ไม่จำเป็นต้องเขียนโปรแกรมอะไร คุณนำเข้าข้อมูลแสดงภาพและเล่นกับโมเดลที่แตกต่างกัน

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

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

หากคุณไปตามเส้นทาง R คุณอาจพบหนังสือโดย Luis Torgo (การขุดข้อมูลด้วย R: การเรียนรู้ด้วยกรณีศึกษา) มีประโยชน์มาก (การเปิดเผย: ไม่มีการร่วมมือ) มันอธิบายในกรณีศึกษาเชิงลึกที่คุณสามารถปรับให้เข้ากับปัญหาของคุณ


15

คุณอาจได้คำตอบที่ดีกว่าถ้าคุณระบุอัลกอริธึมเฉพาะที่คุณสนใจฉันใช้ R สำหรับสิ่งนี้ (ฉันใช้เศรษฐศาสตร์อนุกรมเวลา คุณสามารถดูฟังก์ชันการทำงานที่มีอยู่ได้ที่นี่:

http://cran.r-project.org/web/views/MachineLearning.html

และมีรหัส R เพื่อใช้ในการวิเคราะห์ใน Hastie, Tibshirani และองค์ประกอบของ Friedman ในการเรียนรู้เชิงสถิติ :

http://www-stat.stanford.edu/~tibs/ElemStatLearn/

ระบบบรรจุภัณฑ์ของ R นั้นยอดเยี่ยมมากและทำให้ผู้คนหันมาทำเอกสารรหัสและเป็นโอเพ่นซอร์สดังนั้นคุณสามารถดูการนำไปใช้งานได้เสมอ ฉันไม่ได้ใช้ Matlab ในช่วงไม่กี่ปีที่ผ่านมาและไม่ได้ใช้เพื่อการเรียนรู้ของเครื่องจำนวนมากกล่องเครื่องมือของพวกเขามักจะมีเอกสารที่ดี แต่อาจมีราคาแพง แต่รหัสที่ผู้ใช้สนับสนุนนั้น


11

ในหลักสูตรการเรียนรู้ของเครื่องออนไลน์Andrew Ngแนะนำให้ใช้ Octave / Matlab

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

แก้ไข 1 : ฉันเห็นด้วยกับคนอื่น ๆ ที่ชอบทำงานใน R. อย่างไรก็ตามในการแก้ปัญหาของการเรียนรู้ของเครื่องจักรการคำนวณส่วนใหญ่ของคุณจะอยู่ในรูปแบบเมทริกซ์และตามที่ @Wayne, Matlab หรือ Octave เป็นที่นิยมมาก เพราะพลังของพวกเขา คุณอาจต้องการดูวิธีแก้ปัญหาสำหรับแบบฝึกหัดหลักสูตรการเรียนรู้ของเครื่องที่เสนอโดยนักเรียนคนอื่น ๆ แน่นอนคุณสามารถเรียนรู้บางสิ่งจากพวกเขา:

Gkokaisel Github

Merwan Github


1
ฉันลงทะเบียนเรียนหลักสูตรนี้แล้ว! ปัญหาคือการทำสิ่งที่ง่ายที่สุดนอกหลักสูตรไม่ทำงาน! เอกสารไม่มีประโยชน์
B เซเว่น

3
ฉันต้องบอกว่า Matlab (เช่น Octave) เป็นภาษาโปรแกรมที่แย่มาก มันเป็นที่นิยมมากในด้านวิศวกรรมและการเรียนรู้ของเครื่องจักร แต่เป็นเพราะพลังและการใช้งานในโรงเรียนไม่ใช่เพราะมันเป็นภาษาโปรแกรมที่ทันสมัย ที่กล่าวว่าคุณจะมีโอกาสพบกับบทเรียนการเรียนรู้ของเครื่องที่ใช้งานมากกว่าที่คุณจะใช้ R หรือ Python
Wayne

1
ฉันทำงานทั้งหมดของฉันใน MATLAB ไม่ใช่ภาษาการเขียนโปรแกรมที่ดีที่สุดในโลก (ฉันจะบอกว่า R ยิ่งแย่ลง; o) แต่มันก็คุ้มค่าที่จะใช้เพราะมันดีมากสำหรับการเรียนรู้ด้วยเครื่อง สำหรับเครือข่ายนิวรัลให้มองหาห้องสมุด NETLAB และตรวจสอบกระบวนการเกาส์เซียนด้วยไลบรารี GPML ทั้งสองเป็นชุดเครื่องมือที่ยอดเยี่ยมและ IIRC นั้นทำงานกับอ็อกเทฟ สำหรับการถดถอยเชิงเส้นอย่างสม่ำเสมอมันเป็นเพียงบรรทัดเดียวของ MATLAB สำหรับโมเดลที่ไม่ใช่เชิงเส้นมีกล่องเครื่องมือ GKM คือtheoval.cmp.uea.ac.uk/projects/gkm (ขออภัยยังไม่มี mnual)
Dikran Marsupial

1
การคำนวณเมทริกซ์สามารถทำได้ใน R เช่นกันแม้ว่าสัญกรณ์เช่นt(A) %*% Bจะใช้งานง่ายกว่าใน Matlab
Itamar

1
ไม่มีเมทริกซ์ไลบรารีที่ดีสำหรับภาษาระดับสูงทุกภาษาเช่น C #, Java, Python และ Perl ใช่ไหม
B เซเว่น

10

scikit การเรียนรู้ (ตอนนี้sklearn) ควรจะตอบสนอง (ถดถอย L1 / L2 ลงโทษ SVM อื่น ๆ ) หลายเกณฑ์ที่คุณอธิบาย (ความเร็วในการเรียนการออกแบบที่ดีสำหรับการจัดการข้อมูลรูปแบบและผล) รวมถึงการใช้งานที่กำหนดเป้าหมาย มันมาพร้อมกับชุดเอกสารมากมายและตัวอย่างมากมาย ดูคำอธิบายของมันในเอกสารเผยแพร่ใน JMLR

เฟรมเวิร์กทางเลือกใน Python คือOrangeซึ่งสามารถใช้ผ่าน GUI ที่อ่อนโยนหรือบนบรรทัดคำสั่งโดยตรง สำหรับการกรองร่วมกันpyrsvdอาจน่าสนใจ แต่ฉันไม่เคยลองเลย อย่างไรก็ตามApache ควาญช้างอาจแน่นอนนำมาใช้สำหรับการกรองการทำงานร่วมกัน


1

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

หากคุณใช้ Matlab, Octave หรือ R คุณจะได้รับสภาพแวดล้อมที่ใช้งานง่ายสำหรับการวิจัย ML แต่มันจะเป็นฝันร้ายที่จะนำโมเดลนี้ไปใช้งานกับส่วนต่อประสานผู้ใช้หรือกับบริการบนเว็บ

ในงูหลามเราโชคดีที่มีทั้งระบบนิเวศทางวิทยาศาสตร์ที่กว้างขวาง ( sklearnสำหรับ ML, pandas สำหรับการดึงข้อมูล, matplotlib / seaborn สำหรับการสร้างภาพข้อมูล) และระบบนิเวศของแอปพลิเคชัน (คิดถึงdjango และเฟรมเวิร์กส่วนที่เหลือ )

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

อย่าห่อตัวเองไว้ในกล่องใช้ภาษาทั่วไป!

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