Apache PredictionIO เป็นแพลตฟอร์มแมชชีนเลิร์นนิงแบบโอเพ่นซอร์สซึ่งสนับสนุนให้กับ Apache Software Foundation โดย Salesforce
PredictionIO ครอบคลุมกระบวนการทั้งหมดของเวิร์กโฟลว์แมชชีนเลิร์นนิง และคุณสมบัติที่สำคัญที่สุดคือระบบเทมเพลตกลไก ทำให้สามารถเปิดใช้ Predict Web API ได้อย่างง่ายดายตามเทมเพลตกลไก มีเทมเพลตกลไกที่พร้อมใช้งานมากมาย ดังนั้นเราจึงสามารถเลือกเทมเพลตที่ดีที่สุดสำหรับวัตถุประสงค์ของเราได้ อย่างไรก็ตาม เทมเพลตกลไกเป็นเพียงจุดเริ่มต้นเท่านั้น เรายังจำเป็นต้องปรับแต่งเทมเพลตโดยการเขียนโค้ด Scala/Java
TransmogrifAI เป็นไลบรารีแมชชีนเลิร์นนิงที่ทำงานบน Apache Spark และนำเสนอความสามารถ AutoML ที่พัฒนาโดย Salesforce ช่วยให้เราสามารถค้นหาโมเดลที่ดีที่สุดโดยอัตโนมัติโดยไม่ต้องเขียนโค้ดใดๆ ดังนั้นฉันจึงคิดว่าฉันสามารถสร้างเทมเพลตแมชชีนเลิร์นนิงแบบไม่ต้องเขียนโค้ดสำหรับ PredictionIO โดยใช้ TransmogrifAI ได้ จริงๆ แล้วตอนนี้มีวางจำหน่ายแล้วที่นี่
เรียกใช้ตัวอย่างไททานิค
ขั้นแรก ให้เราลองใช้ตัวอย่างไททานิคที่มีชื่อเสียง เทมเพลต AutoML มีชุดข้อมูลและได้รับการกำหนดค่าสำหรับชุดข้อมูลนั้นเป็นค่าเริ่มต้น คุณต้องตั้งค่า PredictionIO ก่อนที่จะรันตัวอย่าง
อย่างไรก็ตาม ให้สร้างแอปพลิเคชันโดยใช้คำสั่ง pio
$ pio app new MyAutoMLApp1 [INFO] [App$] Initialized Event Store for this app ID: 4. [INFO] [Pio$] Created a new app: [INFO] [Pio$] Name: MyAutoMLApp1 [INFO] [Pio$] ID: 1 [INFO] [Pio$] Access Key: xxxxxxxxxxxxxxxx
ตั้งค่าคีย์การเข้าถึงเป็นตัวแปรสภาพแวดล้อม
$ export ACCESS_KEY=xxxxxxxxxxxxxxxx
รันเซิร์ฟเวอร์เหตุการณ์
$ pio eventserver &
นำเข้าข้อมูลไปยังเซิร์ฟเวอร์เหตุการณ์ รันคำสั่งต่อไปนี้ในไดเร็กทอรีรากของเทมเพลต
$ python ./data/import_titanic.py --file ./data/titanic.csv --access_key $ACCESS_KEY
ฝึกโมเดล การค้นหาโมเดลที่ดีที่สุดอาจใช้เวลานาน จากนั้นสรุปผลการฝึกอบรมจะปรากฏขึ้น
$ pio train
หากฝึกฝนสำเร็จ ขั้นตอนต่อไปคือการปรับใช้โมเดลเป็น Web API จะเปิดตัวบนพอร์ต 8080 เป็นค่าเริ่มต้น
$ pio deploy
สุดท้ายนี้ เราสามารถทดสอบ Web API ได้ดังนี้:
$ curl -H "Content-Type: application/json" -d '{ "pClass": "2", "name": "Wheadon, Mr. Edward H", "sex": "male", "age": 66, "sibSp": 0, "parCh": 0, "ticket": "C.A 24579", "fare", 10.5, "cabin": "", "embarked": "S" }' http://localhost:8000/queries.json {"survived":0.0} $ curl -H "Content-Type: application/json" -d '{ "pClass": "2", "name": "Nicola-Yarred, Miss. Jamila", "sex": "female", "age": 14, "sibSp": 1, "parCh": 0, "ticket": "2651", "fare", 11.2417, "cabin": "", "embarked": "C" }' http://localhost:8000/queries.json {"survived":1.0}
ปรับแต่งข้อมูลของคุณ
แน่นอน คุณยังสามารถใช้เทมเพลต AutoML นี้กับข้อมูลของคุณได้ คุณไม่จำเป็นต้องเขียนโค้ดใดๆ สิ่งที่คุณต้องทำคือแก้ไขพารามิเตอร์อัลกอริทึมที่กำหนดไว้ใน engine.json
"algorithms": [ { "name": "algo", "params": { "target" : "survived", "schema" : [ { "field": "survived", "type": "double", "nullable": false }, { "field": "pClass", "type": "string", "nullable": true }, ... ] } } ]
คุณต้องกำหนด schema
ตามข้อมูลของคุณ และระบุ target
ซึ่งจะเป็นการตอบสนองของ Web API สำหรับการคาดการณ์ โปรดทราบว่าประเภทฟิลด์เป้าหมายต้องเป็น double
ในตอนนี้
Apache PredictionIO และ TransmogrifAI เป็นทั้งโอเพ่นซอร์สโดย Salesforce และทำงานร่วมกับ Apache Spark ฉันคิดว่ามันไม่ใช่เรื่องบังเอิญ เราสามารถใช้สิ่งเหล่านี้ร่วมกันเพื่อทำให้เวิร์กโฟลว์แมชชีนเลิร์นนิงทั้งหมดเป็นอัตโนมัติ แน่นอนว่ายังมีอีกหลายสิ่งที่ต้องปรับปรุง ตัวอย่างเช่น จำเป็นต้องรองรับอัลกอริธึมและประเภทข้อมูลที่กว้างขึ้น แต่ฉันเชื่อว่าพวกเขาเป็นส่วนผสมที่ดี
ในระหว่างที่ฉันสร้างเทมเพลต AutoML นี้ ฉันได้รับคำแนะนำเกี่ยวกับ TransmogrifAI บน Twitter จาก Matthew Tovbin ซึ่งเป็นหนึ่งในนักพัฒนาหลักของ TransmogrifAI ขอบคุณมากสำหรับคำแนะนำของเขา!
ยังไงก็ลองเทมเพลตนี้ดูครับ ข้อเสนอแนะใด ๆ ยินดีต้อนรับ!