ที่มาของแนวคิด
แนวคิดการสร้างโมเดลนั้นมาจากกทั้งการ workshop และการลองผิดลองถูกด้วยตนเองของสมาชิกในทีมซึ่งตัดสินใจลองใช้ข้อมูลทุกชนิดใน train set มาสร้างโมเดล
การบริหารจัดการ การทำงานภายในทีม
เนื่องจากสมาชิกหลายคนภายยังไม่เคยทำ model machine learning มาก่อนเลยใช้ช่วง phase 1 ให้แต่ละคนไปศึกษาและลองสร้าง model ดูแล้ว ในช่วง phase 2 ช่วงต้นก็มาคุยกันถึง model ที่จะทำแล้วช่วยในการทำไปพร้อม ๆ กัน
สร้างโมเดลขึ้นมาได้ยังไง
ในการสร้าง model นั้นทีมเราแบ่งเป็น 3 ส่วน คือ
- set up data train&test : จากการ พิจารณาข้อมูล train set พบว่ามีข้อมูลที่เป็น NaN , inf และ -inf อยู่ ทีมเลยตั้งให้ข้อมูลที่เป็นลักษณะแบบนั้นเป็นตัวเลขที่ไม่เกี่ยวข้อกับข้อมูลอื่นเลย และยังพบว่ามีข้อมูลที่เป็น object อยู่ใน column functional_groups และ topology จึงทำการ label ข้อมูลก่อน train model และ label test set ก่อนทำการ prediction
train model : จาก workshop และการลองผิดลองถูกทีมได้เลือกใช้รูปแบบการ train model ด้วย Neural Network จากการใช้งาน keras ซึ่งทีมได้ใช้ Sequential ของ Activation Functions จำนวน 3 รูปแบบมี
- format 1
python model = Sequential() model.add(Dense(12, input_dim=(x_train.shape[1]), activation='linear')) # input model.add(Dense(24, activation='swish')) # hidden 1 model.add(Dense(12, activation='relu')) # hidden 2 model.add(Dense(12, activation='linear')) # hidden 3 model.add(Dense(6, activation='relu')) # hidden 4 model.add(Dense(1, activation='linear')) # output - format 2
python model = Sequential() model.add(Dense(12, input_dim=(x_train.shape[1]), activation='linear')) # input model.add(Dense(24, activation='swish')) # hidden 1 model.add(Dense(12, activation='relu')) # hidden 2 model.add(Dense(12, activation='linear')) # hidden 3 model.add(Dense(6, activation='linear')) # hidden 4 model.add(Dense(12, activation='relu')) # hidden 5 model.add(Dense(1, activation='relu')) # output - format Bank
python model = Sequential() model.add(Dense(12, input_dim=(x_train.shape[1]), activation='linear')) # input model.add(Dense(24, activation='relu')) # hidden 1 model.add(Dense(12, activation='linear')) # hidden 2 model.add(Dense(12, activation='relu')) # hidden 3 model.add(Dense(1, activation='linear')) # output - ใช้ optimizer 3 ตัวมาทดลองและพบว่าเมื่อใช้ ftrl แล้ว model ออกมาไม่ค่อยดี เมื่อเทียบกับต่อใช้ adam และ adamax แต่เมื่อลองเอา model ที่ train ด้วย adam แล้วค่า loss ไม่ลดลงมา train ด้วย adamax ต่อนั้นค่า loss มีการลดลงและ model ยังทำงานได้ดีกว่าเดิมด้วย
- format 1
prediction : ในทีมนำ model ที่แบ่งกัยไป train มา prediction แล้วส่งโดยคนคนเดียว
ปัญหาที่พบเจอ
- ในช่วยแรกของ phase 2 ตรงกับช่วงสอบ finall ภายในโรงเรียนการทำงานในช่วงนั้นเลยจะเดินไปค่อนข้างช้าเลยมาเร่งกันหลังสอบเสร็จ
- ความเข้าใจในเรื่อง mof ที่ไม่ดีเลยตัดสินใจยากในการเลือกข้อมูลมา train model
สิ่งที่ได้รับจากการทำโมเดลนี้
- ได้รู้จัก library ที่น่าสนใจมากขึ้น
- สมาชิกในทีมบางคนจากที่ไม่เคยทำ machine learning เลยให้ความสนใจมันมากขึ้น
ประสบการณ์การสร้าง model โดยใช้ความรู้เรื่อง mof
สามารถลองใช้โมเดลทั้งหมดที่ทีมเราสร้างมาได้ใน colab Prediction
Built With
- colab
- python
- tensorflow
Log in or sign up for Devpost to join the conversation.