ที่มาของแนวคิด

แนวคิดการสร้างโมเดลนั้นมาจากกทั้งการ 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 ยังทำงานได้ดีกว่าเดิมด้วย
  • prediction : ในทีมนำ model ที่แบ่งกัยไป train มา prediction แล้วส่งโดยคนคนเดียว

ปัญหาที่พบเจอ

  • ในช่วยแรกของ phase 2 ตรงกับช่วงสอบ finall ภายในโรงเรียนการทำงานในช่วงนั้นเลยจะเดินไปค่อนข้างช้าเลยมาเร่งกันหลังสอบเสร็จ
  • ความเข้าใจในเรื่อง mof ที่ไม่ดีเลยตัดสินใจยากในการเลือกข้อมูลมา train model

สิ่งที่ได้รับจากการทำโมเดลนี้

  • ได้รู้จัก library ที่น่าสนใจมากขึ้น
  • สมาชิกในทีมบางคนจากที่ไม่เคยทำ machine learning เลยให้ความสนใจมันมากขึ้น
  • ประสบการณ์การสร้าง model โดยใช้ความรู้เรื่อง mof

  • สามารถลองใช้โมเดลทั้งหมดที่ทีมเราสร้างมาได้ใน colab Prediction

Built With

Share this project:

Updates