- May 4, 2015
- Vasilis Vryniotiso
- . ไม่มีความคิดเห็น
Datumbox Machine Learning Framework เวอร์ชันใหม่เปิดตัวแล้ว! ดาวน์โหลดเดี๋ยวนี้จาก Github or พื้นที่เก็บข้อมูลกลาง Maven.
อะไรใหม่?
จุดสนใจหลักของ 0.6.0 รุ่น คือการขยายกรอบงานเพื่อจัดการกับข้อมูลขนาดใหญ่ ปรับปรุงสถาปัตยกรรมโค้ดและ API สาธารณะ ลดความซับซ้อนของการแยกวิเคราะห์ข้อมูล ปรับปรุงเอกสารประกอบ และย้ายไปยังใบอนุญาตแบบอนุญาต
มาดูรายละเอียดการเปลี่ยนแปลงของรุ่นนี้กัน:
- จัดการข้อมูลขนาดใหญ่: การจัดการหน่วยความจำที่ได้รับการปรับปรุงและเอ็นจิ้นการจัดเก็บข้อมูลแบบคงอยู่ใหม่ทำให้กรอบงานสามารถจัดการชุดข้อมูลขนาดใหญ่ที่มีขนาดหลาย GB เพิ่มการสนับสนุนของ แมพดีบี กลไกจัดการฐานข้อมูลช่วยให้กรอบงานหลีกเลี่ยงการจัดเก็บข้อมูลทั้งหมดในหน่วยความจำ และสามารถจัดการข้อมูลขนาดใหญ่ได้ เอ็นจิ้น InMemory เริ่มต้นได้รับการออกแบบใหม่เพื่อให้มีประสิทธิภาพมากขึ้นในขณะที่เอ็นจิน MongoDB ถูกลบออกเนื่องจากปัญหาด้านประสิทธิภาพ
- สถาปัตยกรรม Framework ที่ได้รับการปรับปรุงและทำให้ง่ายขึ้น: ระดับของนามธรรมลดลงอย่างมากและส่วนประกอบหลักหลายส่วนได้รับการออกแบบใหม่ โดยเฉพาะอย่างยิ่ง กลไกการจัดเก็บแบบคงอยู่จะถูกเขียนใหม่และคุณลักษณะที่ไม่จำเป็นและโครงสร้างข้อมูลหลายอย่างจะถูกลบออก
- ใหม่ "Scikit-Learn-like" APIs สาธารณะ: วิธีการสาธารณะทั้งหมดของอัลกอริทึมถูกเปลี่ยนให้คล้ายกับ Scikit-Learn API ของ Python (กระบวนทัศน์ fit/predict/transform) วิธีการสาธารณะแบบใหม่นี้มีความยืดหยุ่น ง่ายขึ้น และใช้งานง่ายขึ้น
- ลดความซับซ้อนของการแยกวิเคราะห์ข้อมูล: เฟรมเวิร์กใหม่นี้มาพร้อมกับชุดวิธีอำนวยความสะดวกที่ช่วยให้แยกวิเคราะห์ไฟล์ CSV หรือ Text และแปลงเป็นออบเจกต์ชุดข้อมูลได้อย่างรวดเร็ว
- ปรับปรุงเอกสาร: คลาสสาธารณะ/ที่ได้รับการป้องกันและวิธีการทั้งหมดของ Framework ได้รับการบันทึกโดยใช้ความคิดเห็นของ Javadoc นอกจากนี้ เวอร์ชันใหม่ยังให้การทดสอบ JUnit ที่ได้รับการปรับปรุง ซึ่งเป็นตัวอย่างที่ดีของวิธีใช้ทุกอัลกอริทึมของเฟรมเวิร์ก
- ใบอนุญาต Apache ใหม่: ลิขสิทธิ์ซอฟต์แวร์ของกรอบงานเปลี่ยนจาก “ใบอนุญาต GNU General Public License v3.0"ถึง"Apache License รุ่น 2.0“. ใบอนุญาตใหม่ได้รับอนุญาตและอนุญาตให้แจกจ่ายซ้ำภายในซอฟต์แวร์เชิงพาณิชย์
เนื่องจากส่วนใหญ่ของกรอบงานถูกเขียนใหม่เพื่อให้มีประสิทธิภาพและใช้งานง่ายขึ้น เวอร์ชัน 0.6.0 จึงเป็น ไม่รองรับย้อนหลัง กับเฟรมเวิร์กเวอร์ชันก่อนหน้า ในที่สุดกรอบงานก็ย้ายจากอัลฟ่าไปสู่ระยะการพัฒนาเบต้าและควรได้รับการพิจารณาว่ามีเสถียรภาพมากขึ้น
วิธีการที่จะใช้มัน
ในบล็อกโพสต์ก่อนหน้านี้ เราได้ให้ คู่มือการติดตั้งโดยละเอียด เกี่ยวกับวิธีการติดตั้ง Framework คู่มือนี้ยังคงใช้ได้สำหรับเวอร์ชันใหม่ นอกจากนี้ในเวอร์ชันใหม่นี้ คุณสามารถค้นหาได้หลายรายการ ตัวอย่างโค้ด เกี่ยวกับวิธีการใช้แบบจำลองและอัลกอริธึมของกรอบงาน
ขั้นตอนต่อไป & แผนงาน
การพัฒนาเฟรมเวิร์กจะดำเนินต่อไปและควรทำการปรับปรุงต่อไปนี้ก่อนการเปิดตัวเวอร์ชัน 1.0:
- Usไอเอ็นจี กรอบงานจากคอนโซล: แม้ว่าเป้าหมายหลักของเฟรมเวิร์กคือการช่วยพัฒนาแอปพลิเคชัน Machine Learning แต่ก็ควรทำให้ง่ายต่อการใช้งานจากนักพัฒนาที่ไม่ใช่ Java ตามแนวทางที่คล้ายคลึงกันกับ Mahout กรอบงานควรให้การเข้าถึงอัลกอริธึมโดยใช้คำสั่งคอนโซล อินเทอร์เฟซควรเรียบง่าย ใช้งานง่าย และอัลกอริธึมต่างๆ ควรรวมกันอย่างง่ายดาย
- รองรับมัลติเธรด: ปัจจุบันกรอบงานใช้เธรดสำหรับกระบวนการล้างข้อมูลและการเขียนแบบอะซิงโครนัสลงในดิสก์เท่านั้น อย่างไรก็ตาม อัลกอริธึมบางตัวสามารถขนานกันได้และจะลดเวลาดำเนินการลงอย่างมาก วิธีแก้ปัญหาในกรณีเหล่านี้ควรมีความสง่างามและควรปรับเปลี่ยนตรรกะ/คณิตศาสตร์ภายในของอัลกอริธึมการเรียนรู้ของเครื่องให้น้อยที่สุด
- ลดการใช้อาร์เรย์ 2 มิติและเมทริกซ์: อัลกอริทึมจำนวนน้อยยังคงใช้อาร์เรย์และเมทริกซ์ 2 มิติ ทำให้ข้อมูลทั้งหมดถูกโหลดเข้าสู่หน่วยความจำซึ่งจำกัดขนาดของชุดข้อมูลที่สามารถใช้ได้ อัลกอริทึมบางตัว (เช่น PCA) ควรถูกปรับใช้ใหม่เพื่อหลีกเลี่ยงการใช้เมทริกซ์ ในขณะที่สำหรับอัลกอริธึมอื่นๆ (เช่น GaussianDPMM, MultinomialDPMM เป็นต้น) เราควรใช้เมทริกซ์กระจัดกระจาย
งานสำคัญอื่นๆ ที่ควรทำในเวอร์ชันต่อๆ ไป:
- รวมอัลกอริธึมการเรียนรู้ของเครื่องใหม่: กรอบงานสามารถขยายเพื่อรองรับอัลกอริธึมที่ยอดเยี่ยมหลายอย่าง เช่น ส่วนผสมของเกาส์เซียน, กระบวนการเกาส์เซียน, k-NN, ต้นไม้ตัดสินใจ, การวิเคราะห์ปัจจัย, SVD, PLSI, โครงข่ายประสาทเทียม เป็นต้น
- ปรับปรุงเอกสาร ความคุ้มครองการทดสอบ & ตัวอย่างโค้ด: สร้างเอกสารประกอบที่ดีขึ้น ปรับปรุงการทดสอบ JUnit ปรับปรุงความคิดเห็นเกี่ยวกับโค้ด ให้ตัวอย่างที่ดีขึ้นเกี่ยวกับวิธีการใช้อัลกอริทึม ฯลฯ
- ปรับปรุงสถาปัตยกรรม & เพิ่มประสิทธิภาพโค้ด: การทำให้ง่ายขึ้นและการปรับปรุงเพิ่มเติมเกี่ยวกับสถาปัตยกรรมของเฟรมเวิร์ก หาเหตุผลเข้าข้างตนเอง ปรับปรุงการออกแบบ เพิ่มประสิทธิภาพความเร็วและการใช้หน่วยความจำ ฯลฯ
อย่างที่คุณเห็นมันเป็นถนนยาวและฉันสามารถช่วยได้บ้าง หากคุณพร้อมสำหรับความท้าทาย วางสายให้ฉัน หรือส่งคำขอดึงของคุณบน github
กิตติกรรมประกาศ
ฉันอยากจะขอบคุณ เอเลฟเทริออส บัมปาเลตาคิส สำหรับข้อมูลอันมีค่าของเขาในการปรับปรุงสถาปัตยกรรมของกรอบการทำงาน นอกจากนี้ฉันอยากจะขอบคุณ ej-เทคโนโลยี GmbH สำหรับการให้สิทธิ์ใช้งาน Java Profiler แก่ฉัน นอกจากนี้ความรุ่งโรจน์ของฉันเพื่อ แจน โกเต็ก สำหรับงานที่น่าทึ่งของเขาในเอ็นจิ้นการจัดเก็บข้อมูล MapDB สุดท้ายแต่ไม่ท้ายสุด ความรักที่ฉันมีต่อ Kyriaki แฟนสาวที่ยอมทนกับฉัน
อย่าลืมดาวน์โหลดรหัส Datumbox v0.6.0 จาก Github. ห้องสมุดยังมีให้บริการบน พื้นที่เก็บข้อมูลกลาง Maven. สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ไลบรารีในโปรเจ็กต์ Java ของคุณ ให้ชำระเงินที่ ให้คำแนะนำ หรืออ่านคำแนะนำในหน้าหลักของ repo Github ของเรา
ฉันรอคอยความคิดเห็นและคำแนะนำของคุณ คำขอดึงยินดีต้อนรับเสมอ! 🙂
- AI
- ไอ อาร์ต
- เครื่องกำเนิดไออาร์ท
- หุ่นยนต์ไอ
- ปัญญาประดิษฐ์
- ใบรับรองปัญญาประดิษฐ์
- หุ่นยนต์ปัญญาประดิษฐ์
- หุ่นยนต์ปัญญาประดิษฐ์
- ซอฟต์แวร์ปัญญาประดิษฐ์
- blockchain
- การประชุม blockchain ai
- เหรียญอัจฉริยะ
- ปัญญาประดิษฐ์สนทนา
- การประชุม crypto ai
- ดัล-อี
- กล่องข้อมูล
- การเรียนรู้ลึก ๆ
- กรอบ
- google ai
- เรียนรู้เครื่อง
- แมชชีนเลิร์นนิงและสถิติ
- เพลโต
- เพลโตไอ
- เพลโตดาต้าอินเทลลิเจนซ์
- เกมเพลโต
- เพลโตดาต้า
- เพลโตเกม
- การเขียนโปรแกรม
- ขนาดไอ
- วากยสัมพันธ์
- ลมทะเล