Inspiration
ทีมของเราเป็นการรวมตัวกันของนักศึกษา chemical engineering และนักศึกษา data scientist ซึ่งทีมของเรามุ่งหวังที่จะนำความรู้ที่ได้ศึกษานำไปใช้กับการแข่งขัน เพื่อที่จะเก็บเกี่ยวประสบการณ์การแข่งขันให้มากขึ้น รวมถึงอยากที่จะวัดระดับความรู้ความสามารถของตนเองจากการแข่งขันในครั้งนี้
What it does
ในการทำ ML model ทางเราเริ่มจากเลือก model ในการทำนาย ได้แก่
1. XGBRegressor 2. ExtraTreesRegressor
3. RandomForestRegressor 4. BaggingRegressor
5. GradientBoostingRegressor 6. MLPRegressor
7. DecisionTreeRegressor 8. PolynomialFeatures_2
9. LinearRegression 10. KNeighborsRegressor
11. AdaBoostRegressor
โดยเลือก model จากคะแนน error LMAE ที่ดีที่สุดจาก Codalb score ซึ่งก็คือ XGBRegressor model จากนั้นจะทำการเลือก data ที่นำมาใช้ในการทำนาย เพื่อให้ score ดีที่สุด ได้แก่
1. ลอง drop column ต่าง ๆ ออก (เทียบกับการไม่ drop column ใด ๆ ทิ้ง)
ผลคือ drop column ในส่วนของ function group, topology ออก ให้คะแนนดีที่สุด
2. ลองแทนค่า missing หรือค่า outlier ต่าง ๆ ด้วย mean, median, mod
ผลคือ แทนค่าเฉพาะ column ในส่วนของ function group ด้วย mod, heat absorption ด้วย mean for
null, max for inf ให้คะแนนดีที่สุด
3. ลอง split data ด้วยสัดส่วน test:train เป็น 10:90, 20:80, 30:70 และลองใช้ k-fold cross validation ผล
คือ สัดส่วน 20:80 ให้คะแนนดีที่สุด
4. รวมถึงลองทำ sub model ของแต่ละ topology คือ สร้าง model1 สำหรับ topology etb, สร้าง model2
สำหรับ topology nbo ฯลฯ ผลสรุปคือ overfit ดังนั้นจึงไม่เลือกทำ sub model
จากนั้นจึงทำการปรับ tuning model ผลสรุปคือการเลือกใช้
eval_metric=mlogloss,
max_depth=8,eta=0.1,
max_leaves=1,min_split_loss=2,
min_child_weight=12
ให้ผลที่ดีที่สุดจาก Codalab score
How we built it
ใช้ภาษา python ในการเขียน model ทำนายทั้งหมด ผ่าน jupyter notebook โดยใช้ Libraries ต่าง ๆ ดังนี้
Pandas จัดการ dataframe
Numpy ใช้ Mathematical functions
Seaborn, Matplotlib.pyplot ทำ Visualization
Sklearn.model_selection ทำ train-test split
Sklearn.preprocessing ทำ label ข้อมูล category เป็น numerical
sklearn.metrics วัด score
Xgboost สร้าง model XGBRegressor
Challenges we ran into
- เจอข้อมูล categorical ในการทำนาย regression แต่ก็สามารถแก้ไขปัญหานี้ได้ด้วยการทำ label ให้เป็น numerical
- เจอ outlier, missing data, non-normal distribution แต่ก็สามารถจัดการจน model มีประสิทธิภาพที่ดีได้
Accomplishments that we're proud of
จากการปรับปรุง model ในรูปแบบต่าง ๆ ทางเราสามารถทำนาย y ได้อย่างแม่นยำ มีประสิทธิภาพ คือ มีค่า R square for test data set สูงถึง 0.89 และมีค่า error LMAE อยู่ที่ 1.244 (for phrase 2 in Codalab)
What we learned
- ได้ประสบการณ์การทำ ML ที่เพิ่มขึ้น
- ได้เรียนรู้สิ่งใหม่ ๆ จากวิทยากร ทั้งใน chemical field และ ML
- ได้แนวความคิดหรือไอเดียในการประยุกต์ใช้ ML ใน chemical field
What's next for PENTAGON
- จะพยายามเรียนรู้และฝึกฝนฝีมือให้ดียิ่งขึ้นต่อไป
Log in or sign up for Devpost to join the conversation.