ทำความรู้จักกับ Mean Shift Clustering

พอพูดถึงการจัดกลุ่มข้อมูล (Clustering) อัลกอริธึ่มที่คนส่วนใหญ่นึกถึงก็น่าจะเป็น k-means clustering ซึ่งโดยตัวมันเองแล้วเป็นอัลกอริธึ่มที่เข้าใจได้ง่าย มีประสิทธิภาพ ใช้กันแพร่หลาย แต่ก็มีข้อเสียอย่างหนึ่งคือเราจำเป็นต้องรู้จำนวนของกลุ่มข้อมูล (จำนวน cluster) หรือค่า k ก่อน บทความนี้จะมาแนะนำอัลกอรึธึ่มสำหรับการจัดกลุ่มข้อมูลอีกตัวหนึ่งแบบคร่าวๆ ที่มีชื่อว่า Mean shift ครับ

Continue reading "ทำความรู้จักกับ Mean Shift Clustering"

แวะไป Thailand Practical Software Engineering Conference 2015 มา #TPSE2015

งานนี้มีหลายหัวข้อที่น่าสนใจอยากเข้าฟัง แต่แยกร่างไม่ได้ ต้องเลือกตามที่สนใจมากที่สุดแล้วสรุปแบบโคตรสั้นได้ตามนี้

You Are Not Alone: Reflection on Global Software Development Industry โดยคุณ Tamara Nation จาก Rally Software

Tamara on You Are Not Alone: Reflection on Global Software Development Industry at TPSE 2015
ยุคสมัยนี้บริษัทจะอยู่รอดได้ต้องมีการตอบสนองต่อการเปลี่ยนแปลงที่รวดเร็ว การตลาดของบริษัทต้องปรับเปลี่ยนไปให้เร็วตาม การที่จะทำแบบนั้นได้สิ่งสำคัญคือเราต้องโฟกัสที่ value และ release บ่อยๆ เพื่อให้ได้ feedback กลับมาในเวลาอันรวดเร็ว

Machine Learning in Agoda โดยคุณ Uri Weiss จาก Agoda

Weiss on Machine Learning in Agoda at TPSE 2015

ที่ Agoda มีทีม data scientist อยู่ case study หนึ่งที่เอามาบอกเล่ากันคือการนำเอา machine learning ไปใช้กับการ bid ของ Google AdWords กล่าวคือเวลาที่ผู้ใช้ search ข้อมูลที่พักจาก Google แล้ว Agoda จะหาที่พักแล้วพยายามทำให้ rank ของผลลัพธ์จากการ search ไปอยู่ rank ต้นๆ เนื่องจาก Agoda มีคู่แข่งหลายบริษัท ดังนั้นการที่ทำให้ผลลัพธ์จากการ search มี Agoda อยู่ใน rank ที่สูงกว่าคู่แข่งนั้นย่อมเป็นเรื่องที่ดี

การนำเอา machine learning มาใช้ในส่วนนี้ทำให้ลดค่าใช้จ่ายไปได้เยอะเลยทีเดียว ยกตัวอย่างเช่น ถ้ามีคำว่า bangkok ในการ search เยอะๆ แล้วโรงแรมที่ผ่านการ search ด้วยคำๆ นี้สามารถเพิ่มยอดการจองได้ ทางทีมก็จะนำข้อมูลพวกนี้ไปเพิ่ม bid ให้สูงขั้นใน AdWords

Better Deliver with DevOps Driven Development โดยคุณ Jirayut Nimsaeng (เดียร์) จาก Kaidee

Jirayut on Better Delivery with DevOps Driven Development at TPSE 2015

คุณเดียร์กล่าวว่า DevOps ควรจะเป็นคนๆ หนึ่งที่เป็นทั้ง software engineer และ infrastructure engineer โดยมีวิธีคิดแบบทั้ง dev และ ops มีหน้าที่คือเรียนรู้ business ของบริษัทตั้งแต่การพัฒนาไปจนถึงการส่งมอบ แล้วได้แบ่งขั้นตอนการเริ่มต้นพัฒนาเพื่อการส่งมอบที่ดีขึ้นออกเป็น 3 ขึ้นคือ

  1. ขั้นการวางแผน คือการจ้างคนมาทำตำแหน่งนี้เลยจะได้โฟกัส หรือพัฒนาคนขึ้นมาทำตำแหน่งนี้เอง แล้วก็ลองออกแบบ development flow ในอุดมคติขึ้นมา
  2. ขั้นการปฏิบัติ คือให้ลองทำโปรเจคแบบ pilot ขึ้นมาสักโปรเจคหนึ่ง โปรเจคนี้จะต้องมีขนาดเล็กที่สามารถทำ development flow แบบในอุดมคติที่คิดขึ้นมาได้ ต้องทำออกมาจริงๆ
  3. ขั้นตอนการขยับขยาย คือทำ knowledge sharing หรือลองให้งานของ DevOps ให้คนอื่นลองทำบ้าง
ใครสนใจเรื่อง DevOps ลองดูจากสไลด์เพิ่มเติมนะครับ

Elasticsearch คืออะไร?

เนื่องจากที่บริษัทกำลังจะก้าวเข้าสู่โลก Big Data (จริงๆ เข้ามานานแล้วแหละ แต่เริ่มจะมีโอกาสได้ใช้ประโยชน์จากมัน) ช่วง 3-4 วันที่ผ่านมานี้ก็เลยมีโอกาสได้ลองแตะๆ Elasticsearch อยู่บ้าง จริงๆ มีอีกตัวหนึ่งที่คิดไว้คือ Solr แต่ส่วนตัวแล้วชอบชื่อ Elasticsearch มากกว่า ดูหล่อกว่า เลยเริ่มศึกษาจาก Elasticsearch ก่อน

Continue reading "Elasticsearch คืออะไร?"