• From LAB to Production – จาก Machine Learning Model สู่ Flask RESTful


    จาก Kaggle – วิธีการใช้ Logistic Regression บนข้อมูล Iris เราได้ Model มาแล้ว แต่ จะนำสู่ Production ได้อย่างไร ? ใน Python มี Object Serialization ทำให้สามารถเก็บ Object ที่สร้างขึ้น ไปไว้ในไฟล์ ซึ่ง มีให้ใช้หลายตัว ได้แก่ pickle cpickle joblib มีคนทำการทดสอบความเร็ว พบว่า cpickle เร็วสุด (https://stackoverflow.com/questions/12615525/what-are-the-different-use-cases-of-joblib-versus-pickle) แต่ในที่นี้ จะใช้ joblib เพราะน่าจะเหมาะกับงานที่ต้องมีการ Load Data ขนาดใหญ่ ใช้งานร่วมกันหลาย Process (เท่าที่เข้าใจครับ) การสร้างไฟล์ .pkl บน kaggle ดังนี้ เพิ่มคำสั่งต่อไปนี้ แล้ว กดปุ่ม commit and run…

    >> Read More <<

  • Kaggle – วิธีการใช้ Logistic Regression บนข้อมูล Iris


    ข้อมูล Iris Dataset มักจะใช้ในการเริ่มต้นศึกษาการใช้งาน เครื่องมือทาง Data Science โดยเฉพาะ Classification เพราะไม่ซับซ้อน มี 4 ฟิลด์ ที่ใช้เป็น Features และมี 1 ฟิลด์ ที่จะเป็น Class (มี 3 Categories) เริ่มจาก New Kernel ในที่นี้ เลือก Notebook จากนั้น เลือก Add Dataset จากที่เค้ามีให้ หรือ จะ Upload ขึ้นไปก็ได้ จากนั้น ข้อมูลของเราจะมาอยู่ที่  ../input/ ในกรณีเรามีไฟล์ ../input/iris.data จาก Code ที่ให้มาในเบื้องต้น ให้กดปุ่ม Shift+Enter หรือ กดเครื่องหมาย Run ด้าน ซ้ายมือ ก็จะได้ผลดังนี้ จากนั้น…

    >> Read More <<

  • Introduction to Kaggle – เรียนรู้การงานด้าน Data Science


    Kaggle เป็นแพลตฟอร์มสำหรับ Predictive Modelling และการแข่งขันด้าน Analytics เพื่อหา Model ที่ดีที่สุดสำหรับ Dataset จากบริษัทและบุคคลทั่วไป [อันนี้ คำอธิบายอย่างเป็นทางการ [1] ] กล่าวให้ง่ายกว่านั้น Kaggle เป็นสนามทดลองสำหรับคนที่อยากจะทำงานด้าน Data Science โดย ไม่ต้องนับ 0 จากการติดตั้ง OS, Software โน่นนี่นั่น, Library ต่างๆ แล้วต้อง Configuration ให้ทำงานร่วมกันได้ อีกทั้ง เพียงแค่ สมัคร หรือ Authentication ด้วย Facebook, Google, Yahoo แล้ว สร้าง Profile ของตัวเอง เป็นอันเรียบร้อย หลังจากนั้น เราจะได้ “Kernel” ซึ่งจริง ๆ ก็คือ Virtual Machine ที่พร้อมใช้งาน…

    >> Read More <<

  • การใช้งาน Google Datalab Notebook บน Dataproc เพื่อสร้าง Machine Learning Model เบื้องต้น


    ต่อจาก สร้าง Hadoop และ Spark Cluster เพื่องานด้าน Data Science ด้วย Google Cloud Dataproc + Datalab จาก Google Cloud Datalab คลิก Notebookแล้ว ตั้งชื่อ Demo01 เลือได้ว่า จะใช้ Python2 หรือ Python3 ในที่นี้จะเลือก Python3 ตรวจสอบรุ่นของ Spark ที่ใช้งานด้วยคำสั่ง spark.version แล้วกดปุ่ม Shift+Enter เพื่อ Run สามารถใช้คำสั่งไปย้ง Shell ซึ่งเป็น Linux ได้ โดยใช้เครื่องหมาย ! นำหน้า ในที่นี้ จะ Download iris dataset จาก https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data มาไว้ในเครื่อง mycluster-m ด้วย คำสั่ง…

    >> Read More <<

  • ปัญหาการ Debug บางคำสั่งใน .NET Web Project (VS.NET 2013)


    ในการพัฒนา web application ด้วย Visual Studio.NET 2013 ผู้พัฒนาบางท่าน อาจจะเคยเจอปัญหาเมื่อ debug ไปถึงบางคำสั่งแล้ว คำสั่งไม่ทำงานตามที่ควรจะเป็น หรือบางครั้งก็ไม่มีการ return ค่าออกมา ทั้ง ๆ ที่ค่าของข้อมูลถูกต้อง ซึ่งหากเจอปัญหานี้แล้ว ให้ลองสังเกตดังต่อไปนี้ เครื่องที่ใช้พัฒนาเป็น Windows 32 bit หรือ 64 bit ตรวจสอบแน่ใจแล้วว่าใช้งานคำสั่งได้ถูกต้อง และข้อมูลที่คำสั่งนี้นำไปประมวลผลมีความถูกต้องแล้ว ถ้าเครื่องที่ใช้เป็น Windows 64 bit ให้ทดลองทำตามดังนี้ คือ ไปที่เมนู TOOLS –> Options จะปรากฏหน้าต่าง Options เมนูด้านซ้ายมือของหน้าต่าง Options เลือกเมนูย่อย Projects and Solutions และภายใต้เมนูนี้ เลือกเมนูย่อย Web Projects จะเห็นตัวเลือกด้านขวามือสองตัวเลือก ให้เลือกเครื่องหมายถูกตัวเลือกแรก คือ Use…

    >> Read More <<

  • การเรียกใช้งาน constructor จากอีก constructor ใน C#.NET


    constructor คืออะไร constructor ก็คือ ฟังก์ชันที่ถูกเรียกใช้งาน เมื่อ object ถูกสร้างขึ้นมา ซึ่งใน C#.NET  ก็คือฟังก์ชันที่ตั้งชื่อเป็นชื่อเดียวกับชื่อ class นั่นเอง   constructor มีประโยชน์อย่างไร ในการสร้าง object ขึ้นมา บางครั้งต้องมีการระบุค่าเริ่มต้นบางอย่างให้กับ object นั้น ซึ่ง constructor ก็จะเป็นเครื่องมือหนึ่งที่เป็นตัวช่วยบังคับให้ต้องระบุค่าเริ่มต้นนี้ตอนสร้าง object นั่นเอง   ยกตัวอย่าง เช่น class Student { public Student(string studentID) { คำสั่งดึงข้อมูลนักศึกษาด้วย Student ID โดยใช้ข้อมูล Student ID จาก argument studentID } } จากตัวอย่างนี้ ต้องการสร้าง object Student โดยใช้ Student ID เพื่อไปดึงข้อมูลเบื้องต้นของนักศึกษามาแสดง ดังนั้น object ใหม่ที่สร้างจาก…

    >> Read More <<

  • การยกเลิก SMS ไม่พึงประสงค์/ SMS กวนใจ


    เชื่อว่าหลายท่านคงเคยประสบกับปัญหากวนใจเรื่อง SMS ไม่พึงประสงค์ ที่ส่งมาโดยที่เราไม่ต้องการ และบางครั้ง SMS เหล่านี้ก็ยังคิดค่าบริการ ทั้ง ๆ ที่เราไม่ได้สมัคร หรือบางครั้งอาจจะสมัครโดยไม่ตั้งใจหรือไม่รู้ตัว ดังนั้นในบทความนี้จะเสนอวิธีการหนึ่ง ที่จะช่วยให้เราสามารถยกเลิก SMS กวนใจเหล่านี้ออกไปบางส่วนได้ ถึงแม้จะไม่ทั้งหมด แต่ก็ช่วยบรรเทาความรำคาญลงไปได้บ้าง  โดยช่องทางที่จะแนะนำนี้เป็นการร่วมมือกันระหว่าง กสทช. และผู้ให้บริการเครือข่ายโทรศัพท์เคลื่อนที่ในการให้บริการยกเลิก SMS ดังกล่าว ซึ่งผู้ใช้บริการสามารถทำได้ด้วยตนเอง โดยไม่มีค่าใช้จ่าย ดังนี้ กด *137 แล้วโทรออก ทำตามคำแนะนำจากเสียงตอบรับอัตโนมัติของแต่ละผู้ให้บริการเครือข่ายฯ รอรับ SMS แจ้งยกเลิก   ตัวอย่าง SMS ไม่พึงประสงค์ และ SMS ตอบกลับ   จะเห็นว่าหลังจากที่ใช้บริการยกเลิก SMS ผ่าน *137 แล้ว บรรดา SMS ไม่พึงประสงค์ก็ลดน้อยลง เหลือเพียง SMS ข่าวสารจากผู้ให้บริการเครือข่ายฯ เท่านั้น   และก็เป็นวิธีการที่ง่ายและรวดเร็ว เพียงไม่กี่ขั้นตอน แค่นี้ก็สามารถยกเลิก…

    >> Read More <<

  • สร้าง Hadoop และ Spark Cluster เพื่องานด้าน Data Science ด้วย Google Cloud Dataproc + Datalab


    จาก Ambari #01: ติดตั้ง Ambari Server , Ambari #02 ติดตั้ง Ambari Agent , Ambari #04 การสร้าง Hadoop ด้วย Ambari บน AWS และ GCP #01 วิธีการสร้าง Virtual Machine บน Google Cloud Platform จะเห็นได้ว่า ก็ยังมีความยุ่งยากอยู่ อีกทั้ง หากต้องการใช้ PySpark ก็ต้องตามติดตั้ง Python Packages ต้องปรับค่ามากมาย และหากต้องการขยายระบบ ก็มีงานต้องทำอีกเยอะ ในบทความนี้ จะแนะนำอีกวิธีหนึ่ง คือ การใช้งาน Google Cloud Dataproc ซึ่งจะทำให้เราได้ใช้ Hadoop + Spark Cluster ซึ่งได้รับการทดสอบเป็นอย่างดี อีกทั้งยังสามารถเลือกใช้ Spark รุ่นต่างๆได้อย่างง่ายได้ ทำให้สามารถโฟกัสไปยัง Data และ กระบวนทำ…

    >> Read More <<

  • Puppeteer ควบคุมและบันทึกการใช้งาน chrome สำหรับ UI testing


    Puppeteer เป็น Node library ที่มีชุดของ API สำหรับการควบคุม Google Chrome หรือ Chromium ผ่าน DevTool protocol ทำงานในรูปแบบ headless โดย default แต่สามารถกำหนดให้ทำงานแบบ full (non-headless) Chrome ได้  ที่สำคัญไม่ต้องทำงานผ่าน Web Driver อีกต่อไป puppeteer สามารถทำงานได้ทุกอย่างที่สามารถทำได้โดย manual บน browser เช่น สร้าง screenshots และ PDFs ของ page Automate form submission UI testing keyboard input การติดตั้ง Puppeteer การติดตั้ง Puppeteer เพื่อใช้งานใน project สามารถทำได้ผ่านทาง NPM โดยใช้คำสั่ง…

    >> Read More <<