Neural Network with WEKA [Data Preparation]

ก่อนอื่นเลยบทความนี่ผมเขียนไว้ในเว็บบอร์ด COMSWU นะครับ แต่ติดปัญหาเรื่องสิทธิ์ที่ให้คนนอกเข้ามาดู ผมจึง Rewrite เขียนใหม เพื่อให้คนอื่นๆที่เคยใช้งาน หรือเรียนโปรแกรม WEKA ในการทำ Neural Network แต่ยังไม่มี idea ในการนำไปใช้งานจริงเข้าใจมากยิ่งขึ้นครับ เอกสารประกอบการทำ Workshop นะครับ ขั้นตอนการทำงาน 1. ตรวจสอบข้อมูลก่อนเลย ใน Column ที่เป็น Nominal/Ordinal มันมีข้อมูลกี่ตัวเลือกกี่แบบ 2. สร้าง Sheet ใหม่ใน Excel ขึ้นมา และทำการ copy ข้อมูลจาก Sheet เก่า เพื่อ เอา Format ต่างๆพวก Filter ออกไป 3. ไล่ตรวจสอบใน Sheet ว่าในแต่ละ Cell มีช่องว่าง หรือไม่ ถ้ามีกำจัดให้หมด 4. ลบ Column ID ออกไป เพราะมันไม่มีค่าอะไร และจะทำให้ผลลัพธ์ที่ได้คลาดเคลื่อน 5. แบ่งข้อมูลออกเป็น 2 กลุ่ม สัดส่วน 70%/30% หมายเหตุ: ทั้งสามไฟล์ต้องมีหัวตารางนะ(Attribute) และ สัดส่วนในการทดสอบอาจจะกำหนดเป็นแบบอื่นก็ได้ ไม่จำเป็นต้องทำเป็นแบบนี้นะครับ ตรงนี้ผมแบ่งให้ง่ายๆ เพื่อให้ผู้อ่านเข้าใจครับ 6. บันทึกไฟล์ทั้งสาม โดยทำเป็นไฟล์ .csv(Comma-separated values) 7. นำไฟล์ทั้งสามที่ได้ ไปสร้างไฟล์ .arff ด้วย WEKA8. ทำการเปิดโปรแกรม WEKA ไปที่ Explorer9. ใน Tab preprocess เลือกไฟล์ Customer_for_std_train.csv จำนวน Attribute เอาไว้ 10. มาที่ Tab classify เลือกอัลกอริทึมอะไรก็ได้ เช่น J48…

[DB2] SELECT TOP(1) IN DB2

IBM DB2

จริงๆวางโครงบทความนี้มานานและ แต่เพิ่มจะมีโอกาศได้เขียนจริงๆจังๆ ซะที เข้าที่ปัญหาเลย คือ ว่าเราต้องการ Query เพื่อดึงข้อมูลในแถวแรกขึ้นมาก หากเป็น MySQL, MS SQL Server เราสามารถใช้คำสั่ง TOP(จำนวนแถวที่ต้องการได้เลย) แต่ถ้าเป็น DB2 จะมีคำสั่ง (ใช้ได้กับ DB2 8.1 ขึ้นไป) โดยเพิ่มเข้าไป ดังนี้ครับ FETCH FIRST 1 ROW ONLY ตัวอย่างการใช้งานจริง โดยเทียบ SYNTAX เมื่อใช้กับ MS SQL Server ครับ

[Android] ซ่อนคีย์บอร์ดให้ EditText

เวลาเขียน Android หลายครั้ง เราก็ไม่อยากให้ EditText มันแสดง keyboard เมื่อเราไปเลือกมัน เช่น เราอาจจะใช้ให้ EditText ระบข้อมูลวันที่จาก Date Picker แทน วันนี้ผมมี Code เล็กๆน้อย เพื่อที่จะซ่อน Key board ให้กับ EditText ตามนี้เลยครับ

[Android] Error: The SDK Build Tools revision (19.0.3) is too low for project

วันนี้พอ Update Android Studio เป็นเวอร์ชัน 0.6.0 มาใหม่ พอเปิดโปรแกรมขึ้นมาใหม่พบ Error Message ดังรูปเลยครับ สาเหตุ build.gradle มันชี้ไปผิดเวอร์ชั่น ที่ไม่เหมาะสมกับ SDK วิธีการแก้ แบบที่ 1: แก้จากไฟล์ bulid.gradle แบบที่สอง คือ แก้ผ่าน Interface ของ Android Studio ได้ โดยทำตามขั้นตอน ดีงนี้เลย

[SQL SERVER] SELECT ชื่อ Column จากตาราง

Microsoft SQL Server

สามารถเอา Code ชุดนี้ไปใช้งานได้เลย หรือจะทำเป็น Code Snippets เอาไปใช้งานได้เลย โดยเป็นการดึงข้อมูลมาจาก view INFORMATION_SCHEMA รูปแบบคำสั่ง ตัวอย่างการใช้งาน สำหรับ Tips อื่นตามอ่านได้จาก Tag SQL Server ได้เลยครับ Reference

[SQL SERVER] Invalid character value for cast specification

Microsoft SQL Server

วันนี้ผมแก้ App เก่าๆของที่บริษัทแล้วเกิดเจอปัญหา Invalid character value for cast specification ตอนนั้นไล่ข้อมูลแทบตาย เจอมวลมหา Function Call และไปพบว่ามันผิดที่วันที่ (Date) ที่มีการจัด Format ผิด โดยไอ้เจ้าปัญหา Invalid character value for cast specification มันมีความหมายว่าข้อมูลทางเราเป็น input ส่งให้ Database แล้วตัว DBMS เองไม่สามารถแปลงข้อมูล และเก็บลงฐานข้อมูลได้นั้น ซึ่งสาเหตุอาจจะเกิดจากหลายๆสาเหตุ เช่น ข้อมูลประเภท Date ที่ Format ผิด หรือข้อมูลประเภท String เป็นต้น โดยในที่นี้ผมขอยกปัญหาที่ผมเจอก็คือ กรณีที่ข้อมูลนั้นเป็นพวก Date นะครับ ตัวอย่างที่ผมเจอข้อมูลเกี่ยวกับพวกวันที่ Date พา Death เลยแหละ ปัญหา คือ ข้อมูลวันที่ที่เราส่งไป SQL Server ไม่รองรับ Format ข้อมูลแบบนี้ แต่รองรับข้อมูลรูปแบบ ดังนี้ ทางแก้ไข คือ พยายามจัดข้อมูลรูปแบบของข้อมูลในอยู่ในรูปแบบที่ SQL Server นั้นรองรับ ซึ่งก็คือ สองแบบข้างต้นนี้เอง ดังนั้นข้อมูลที่เราส่งไปเก็บมีรูปแบบจาก 07/31/2014 ไปเป็น 2014-07-31 หมายเหตุ วิธีการแบบนี้สามารถส่งข้อมูลปีที่เป็น ค.ศ. และ พ.ศ. ได้เลย โดยระบบจะปรับแก้วันที่ตาม Regional Setting ได้เองอัตโนมัติ แต่ต้องส่งข้อมูลชนิด Date เข้าไปเท่านั้น ห้ามส่งเป็น String เข้าไปเด็ดขาด(บางครั้งมีคนหัวหมอไปจัด String แล้วค่อยเอาไปเก็บ) เพราะระบบไม่มีการแก้ข้อมูลตาม Regional Setting ซึ่งส่งผลให้ App ของเราทำงานผิดภายในหลังได้

ออมหุ้น VS ออมกองทุน เหมือนกัน หรือต่างกันอย่างไร

เพิ่งลองมาเขียน Blog ในด้านการเงินการลงทุนครั้งแรกๆนะ ก่อนอื่นต้องทวนความหมายของสองคำนี้ก่อน ต่อมาเราจะมองจุดเด่นของแต่ละแบบ โดยผมจะแยกเป็นมุมมองต่างๆ ดังนี้ คนจัดการเงินของเรา ความคล่องตัวและความเสี่ยง ผลประโยชน์ที่ได้รับ ภาษี หมายเหตุ ข้อมูลนี้เป็นการสรุปข้อมูลคร่าวๆ ผู้อ่านควรศึกษาเงื่อนไข หรือหนังสือเชิญชวนให้ดี ก่อนการลงทุนนะครับ รู้เขารู้เรารบร้อยครั้ง ชนะร้อยครั้ง 😀

Business Model ในการสร้างรายได้จาก App บนมือถือ

เมื่อวานได้ไปงาน Android Workshop ที่จัดโดยกลุ่ม GDG ซึ่งผมได้เทคนิคใหม่ในการจัดการกับ UI ของ Android (จริงเคยเขียนตอนสมัยบุกเบิก 55 แต่ตอนหลังต้องจากไปทำโปรเจตจบที่ใช้ WebGL แทน) และในงานนี้มีการนำเสนอ Model รูปแบบการสร้างรายได้จากการพัฒนา App บนมือถือ ตรงนี้สามารถนำไปประยุกต์ใช้ได้กับทุกๆค่ายนะ ^___^ มีหลายแบบ Freemium, Paid, Paidmium, In-App Advertising, Subscription, Dynamic ตารางเปรียบเทียบ Business Model แบบต่างๆ Business Model การทำงาน ตัวอย่าง App ที่ใช้งานจริง Freemium App ฟรี และมี in-app purchases เพิ่มเข้าไป World Conquer: เกมที่ใช้คุณสวมบทบาทเป็นแม่ทัพในสมัยสงครามโลก นำทหารต่อสู้ เพื่อชัยชนะLine Cookie Run: อันนี้คงไม่ต้องอธิบายนะ 555 Paid App เสียเงินครั้งเดียวจบ Camera FV-5: App ถ่ายรูปที่จะทำให้กล้องธรรมดาเป็น DSLR ได้Where ‘s My Water: เกมฝึกสมองที่ผู้เล่นต้องสร้างทางให้น้ำไหลได้ Paidmium App เสียเงิน และมี in-app purchases (กินกันสองทาง) FIFA 13: เกมฟุตบอลยอดนิยม ที่คุณสามารถเลือกซื้อนักเตะเพิ่มเติมได้Money Lover: App บันทักรายรับ-รายจ่าย ที่คุณสามารถซื่อ ICON Pack เพิ่มเติมได้ In-App Advertising App ที่การแสดง banner โฆษณา โดยอาจจะเป็นข้อความ หรือ Video ก็ได้ IETS Prepare: App สำหรับทบทวน…

[MSSQL] Database log file คือ อะไร

Microsoft SQL Server

สำหรับฐานข้อมูลของทุกๆค่าย ตัวเนื้อของ Database มีไฟล์ที่สำคัญอยู่ 2 ตัว  ได้แก่ คราวนี้มาดูที่ตัวของ MS SQL บ้างดีกว่า ว่าไฟล์กลุ่มนี้มีอะไรบ้าง จากหัวเรื่อง Blog นี้จั่วหัวในเรื่องของ Database Log File ไว้ เรามาดูกันดีกว่ามันมีการทำงานอย่างไร เริ่ม Database ทำงาน รู้แล้วว่าอะไร ที่มันต้อง Log บ้าง คราวนี้ลองมาดูโครงสร้างแบบ Logical(Virtual Log) ของ Log กัน โดย Log แต่ละตัวมี ID ประจำของมัน ก็ คือ  Log Sequence Number (LSN) ซึ่งเรียงกันไปเรื่อยๆ ดังรูป โดย Log มันยังไม่ได้ลง Disk ที่เป็น Physical ทันทีนะครับ มันถูกเก็บลงใน Buffer เพื่อพักข้อมูลไว้ก่อน เพราะถ้าเอาลง Disk เลยจะเจอปัญหา I/O ได้ โดยจะรอจนถึง เงื่อนไขที่กำหนด ว่าควรย้ายจาก Buffer ลง Disk เราเรียกจุดนี้ว่าเป็น Check Point ครับ ซึ่ง Check Point ของเจ้าตัว SQL Server มีหลายแบบ ผมติต่างเป็นแบบ Automate Check Point (ง่ายดี) แล้ว Log พวกนี้มันช่วยเราในการ Recovery อย่างไรหละ ตอนนี้ต้องรู้คำศัพท์หลายคำเลย จากรูปนี้ เรามาลองไล่กันดีว่า ถ้ามีสถานการณ์ตัวอย่าง เอาจากรูปที่นะครับ อะไร คือ MinLSN ถ้าระบบมีปัญหา พบว่าระบบมีการทำ Check Point ที่…