Datumbox Machine Learning Framework 0.6.0 เปิดตัว PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

Datumbox Machine Learning Framework 0.6.0 ออกแล้ว

Datumbox Machine Learning Framework เวอร์ชันใหม่เปิดตัวแล้ว! ดาวน์โหลดเดี๋ยวนี้จาก Github or พื้นที่เก็บข้อมูลกลาง Maven.

อะไรใหม่?

จุดสนใจหลักของ 0.6.0 รุ่น คือการขยายกรอบงานเพื่อจัดการกับข้อมูลขนาดใหญ่ ปรับปรุงสถาปัตยกรรมโค้ดและ API สาธารณะ ลดความซับซ้อนของการแยกวิเคราะห์ข้อมูล ปรับปรุงเอกสารประกอบ และย้ายไปยังใบอนุญาตแบบอนุญาต

มาดูรายละเอียดการเปลี่ยนแปลงของรุ่นนี้กัน:

  1. จัดการข้อมูลขนาดใหญ่: การจัดการหน่วยความจำที่ได้รับการปรับปรุงและเอ็นจิ้นการจัดเก็บข้อมูลแบบคงอยู่ใหม่ทำให้กรอบงานสามารถจัดการชุดข้อมูลขนาดใหญ่ที่มีขนาดหลาย GB เพิ่มการสนับสนุนของ แมพดีบี กลไกจัดการฐานข้อมูลช่วยให้กรอบงานหลีกเลี่ยงการจัดเก็บข้อมูลทั้งหมดในหน่วยความจำ และสามารถจัดการข้อมูลขนาดใหญ่ได้ เอ็นจิ้น InMemory เริ่มต้นได้รับการออกแบบใหม่เพื่อให้มีประสิทธิภาพมากขึ้นในขณะที่เอ็นจิน MongoDB ถูกลบออกเนื่องจากปัญหาด้านประสิทธิภาพ
  2. สถาปัตยกรรม Framework ที่ได้รับการปรับปรุงและทำให้ง่ายขึ้น: ระดับของนามธรรมลดลงอย่างมากและส่วนประกอบหลักหลายส่วนได้รับการออกแบบใหม่ โดยเฉพาะอย่างยิ่ง กลไกการจัดเก็บแบบคงอยู่จะถูกเขียนใหม่และคุณลักษณะที่ไม่จำเป็นและโครงสร้างข้อมูลหลายอย่างจะถูกลบออก
  3. ใหม่ "Scikit-Learn-like" APIs สาธารณะ: วิธีการสาธารณะทั้งหมดของอัลกอริทึมถูกเปลี่ยนให้คล้ายกับ Scikit-Learn API ของ Python (กระบวนทัศน์ fit/predict/transform) วิธีการสาธารณะแบบใหม่นี้มีความยืดหยุ่น ง่ายขึ้น และใช้งานง่ายขึ้น
  4. ลดความซับซ้อนของการแยกวิเคราะห์ข้อมูล: เฟรมเวิร์กใหม่นี้มาพร้อมกับชุดวิธีอำนวยความสะดวกที่ช่วยให้แยกวิเคราะห์ไฟล์ CSV หรือ Text และแปลงเป็นออบเจกต์ชุดข้อมูลได้อย่างรวดเร็ว
  5. ปรับปรุงเอกสาร: คลาสสาธารณะ/ที่ได้รับการป้องกันและวิธีการทั้งหมดของ Framework ได้รับการบันทึกโดยใช้ความคิดเห็นของ Javadoc นอกจากนี้ เวอร์ชันใหม่ยังให้การทดสอบ JUnit ที่ได้รับการปรับปรุง ซึ่งเป็นตัวอย่างที่ดีของวิธีใช้ทุกอัลกอริทึมของเฟรมเวิร์ก
  6. ใบอนุญาต Apache ใหม่: ลิขสิทธิ์ซอฟต์แวร์ของกรอบงานเปลี่ยนจาก “ใบอนุญาต GNU General Public License v3.0"ถึง"Apache License รุ่น 2.0“. ใบอนุญาตใหม่ได้รับอนุญาตและอนุญาตให้แจกจ่ายซ้ำภายในซอฟต์แวร์เชิงพาณิชย์

เนื่องจากส่วนใหญ่ของกรอบงานถูกเขียนใหม่เพื่อให้มีประสิทธิภาพและใช้งานง่ายขึ้น เวอร์ชัน 0.6.0 จึงเป็น ไม่รองรับย้อนหลัง กับเฟรมเวิร์กเวอร์ชันก่อนหน้า ในที่สุดกรอบงานก็ย้ายจากอัลฟ่าไปสู่ระยะการพัฒนาเบต้าและควรได้รับการพิจารณาว่ามีเสถียรภาพมากขึ้น

วิธีการที่จะใช้มัน

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

ขั้นตอนต่อไป & แผนงาน

การพัฒนาเฟรมเวิร์กจะดำเนินต่อไปและควรทำการปรับปรุงต่อไปนี้ก่อนการเปิดตัวเวอร์ชัน 1.0:

  1. Usไอเอ็นจี กรอบงานจากคอนโซล: แม้ว่าเป้าหมายหลักของเฟรมเวิร์กคือการช่วยพัฒนาแอปพลิเคชัน Machine Learning แต่ก็ควรทำให้ง่ายต่อการใช้งานจากนักพัฒนาที่ไม่ใช่ Java ตามแนวทางที่คล้ายคลึงกันกับ Mahout กรอบงานควรให้การเข้าถึงอัลกอริธึมโดยใช้คำสั่งคอนโซล อินเทอร์เฟซควรเรียบง่าย ใช้งานง่าย และอัลกอริธึมต่างๆ ควรรวมกันอย่างง่ายดาย
  2. รองรับมัลติเธรด: ปัจจุบันกรอบงานใช้เธรดสำหรับกระบวนการล้างข้อมูลและการเขียนแบบอะซิงโครนัสลงในดิสก์เท่านั้น อย่างไรก็ตาม อัลกอริธึมบางตัวสามารถขนานกันได้และจะลดเวลาดำเนินการลงอย่างมาก วิธีแก้ปัญหาในกรณีเหล่านี้ควรมีความสง่างามและควรปรับเปลี่ยนตรรกะ/คณิตศาสตร์ภายในของอัลกอริธึมการเรียนรู้ของเครื่องให้น้อยที่สุด
  3. ลดการใช้อาร์เรย์ 2 มิติและเมทริกซ์: อัลกอริทึมจำนวนน้อยยังคงใช้อาร์เรย์และเมทริกซ์ 2 มิติ ทำให้ข้อมูลทั้งหมดถูกโหลดเข้าสู่หน่วยความจำซึ่งจำกัดขนาดของชุดข้อมูลที่สามารถใช้ได้ อัลกอริทึมบางตัว (เช่น PCA) ควรถูกปรับใช้ใหม่เพื่อหลีกเลี่ยงการใช้เมทริกซ์ ในขณะที่สำหรับอัลกอริธึมอื่นๆ (เช่น GaussianDPMM, MultinomialDPMM เป็นต้น) เราควรใช้เมทริกซ์กระจัดกระจาย

งานสำคัญอื่นๆ ที่ควรทำในเวอร์ชันต่อๆ ไป:

  1. รวมอัลกอริธึมการเรียนรู้ของเครื่องใหม่: กรอบงานสามารถขยายเพื่อรองรับอัลกอริธึมที่ยอดเยี่ยมหลายอย่าง เช่น ส่วนผสมของเกาส์เซียน, กระบวนการเกาส์เซียน, k-NN, ต้นไม้ตัดสินใจ, การวิเคราะห์ปัจจัย, SVD, PLSI, โครงข่ายประสาทเทียม เป็นต้น
  2. ปรับปรุงเอกสาร ความคุ้มครองการทดสอบ & ตัวอย่างโค้ด: สร้างเอกสารประกอบที่ดีขึ้น ปรับปรุงการทดสอบ JUnit ปรับปรุงความคิดเห็นเกี่ยวกับโค้ด ให้ตัวอย่างที่ดีขึ้นเกี่ยวกับวิธีการใช้อัลกอริทึม ฯลฯ
  3. ปรับปรุงสถาปัตยกรรม & เพิ่มประสิทธิภาพโค้ด: การทำให้ง่ายขึ้นและการปรับปรุงเพิ่มเติมเกี่ยวกับสถาปัตยกรรมของเฟรมเวิร์ก หาเหตุผลเข้าข้างตนเอง ปรับปรุงการออกแบบ เพิ่มประสิทธิภาพความเร็วและการใช้หน่วยความจำ ฯลฯ

อย่างที่คุณเห็นมันเป็นถนนยาวและฉันสามารถช่วยได้บ้าง หากคุณพร้อมสำหรับความท้าทาย วางสายให้ฉัน หรือส่งคำขอดึงของคุณบน github

กิตติกรรมประกาศ

ฉันอยากจะขอบคุณ เอเลฟเทริออส บัมปาเลตาคิส สำหรับข้อมูลอันมีค่าของเขาในการปรับปรุงสถาปัตยกรรมของกรอบการทำงาน นอกจากนี้ฉันอยากจะขอบคุณ ej-เทคโนโลยี GmbH สำหรับการให้สิทธิ์ใช้งาน Java Profiler แก่ฉัน นอกจากนี้ความรุ่งโรจน์ของฉันเพื่อ แจน โกเต็ก สำหรับงานที่น่าทึ่งของเขาในเอ็นจิ้นการจัดเก็บข้อมูล MapDB สุดท้ายแต่ไม่ท้ายสุด ความรักที่ฉันมีต่อ Kyriaki แฟนสาวที่ยอมทนกับฉัน

อย่าลืมดาวน์โหลดรหัส Datumbox v0.6.0 จาก Github. ห้องสมุดยังมีให้บริการบน พื้นที่เก็บข้อมูลกลาง Maven. สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ไลบรารีในโปรเจ็กต์ Java ของคุณ ให้ชำระเงินที่ ให้คำแนะนำ หรืออ่านคำแนะนำในหน้าหลักของ repo Github ของเรา

ฉันรอคอยความคิดเห็นและคำแนะนำของคุณ คำขอดึงยินดีต้อนรับเสมอ! 🙂

ประทับเวลา:

เพิ่มเติมจาก กล่องข้อมูล