Thursday, November 9, 2017

แผนที่ Bing ในซีชาร์ฟวินฟอร์ม

บทความนี้สอนวิธีใส่แผนที่บิงค์ไว้ในเดกส์ทอปแอพภาษาซีชาร์ฟ โดยมีคุณสมบัติดังนี้
  1. ป้อนค้นสถานที่เป็นภาษาไทยได้
  2. ซูมเข้าออกได้
  3. ใช้เมาส์ลากแพนได้
  4. ดูเป็นภาพถ่ายดาวเทียมได้
  5. ดูอาคารภาพนูนได้
  6. แสดงพิกัตและอัตราการซูมในหน้าวินฟอร์มได้
สิ่งที่ท่านจะได้เรียนรู้จากบทความนี้
  1. วิธีสมัครใช้งาน (ฟรี) Bing Maps API
  2. วิธีบูรณาการแผนที่บิงค์กับเดกส์ทอปแอพภาษาซีชาร์ฟ
  3. วิธีเขียนโค้ดภาษาจาวาสคริปต์เรียกเมธอดภาษาซีชาร์ฟ
  4. วิธีเขียนโค้ดภาษาซีชาร์ฟเรียกฟังก์ขันภาษาจาวาสคริปต์
  5. วิธีใช้งานโปรโตคอล REST

ดาวน์โหลดซอร์สโค้ด



ภาพบน: หน้าตาโปรแกรมเมื่อทำเสร็จแล้ว


ภาพบน: ก่อนจะเรียก API ของ Bing Map ท่านจำเป็นต้องมีคีย์ก่อน สมัครได้ฟรี ไปหน้านี้ แล้วกด Azure marketplace




ภาพบน: เมื่อกดแล้วจะมาหน้านี้ ให้กดที่ GET IT NOW


ภาพบน: เมื่อกดแล้วจะมาที่พอทัลของ Azure ให้ท่าน Sign-in แล้วกรอกรายการต่างๆ อย่างที่เห็นในภาพนี้ แน่ละว่า Pricing Tier เราชอบที่จะเลือกอันที่ีฟรีเพราะเราแค่ต้องการทดสอบ ยังไม่ได้จะไปใช้ในงานจริง



ภาพบน: สร้าง API เสร็จแล้วให้เข้าไปในหน้าของม้ันแล้วกดรูปลูกกุณแจเพื่อเอาคีย์ ให้ค้ัดลอกไว้ เดี๋ยวเราจะเอาไปแปะในโค้ด


ภาพบน: ถึงเวลาเขียนโค้ดแล้ว ให้เปิด Visual Studio แล้วสร้างโปรเจคแบบ C# Desktop (Win form) รายละเอียดเป็นอย่างที่เห็นในภาพนี้



ภาพบน: ใส่ WinForm หนึ่งอัน ใน WinForm นี้ให้ใส่คอนโทรลต่างๆ ดังต่อไปนี้
  1. WebBrowser คอนโทรลเปิดหน้าเว็บ
  2. Text box + Button ช่องกรอกข้อความและปุ่มค้นหา
  3. Text box + Label ข้อความแสดงพิกัด (เลต-ลอง) 
  4. Text box + Lable ข้อความแสดงอัตราการซูม











ภาพบน:  โค้ดหน้า WinForm ให้ใส่เนมสเปสต่างๆ ดังภาพนี้














ภาพบน: โค้ดหน้า WinForm จะมีเพียงสามเมธอด



ภาพบน: ในเมธอดคอนสทรักเตอร์เราจะใส่โค้ดระบุให้จาวาสคริปต์ในไฟล์ Map.html สามารถเรียกเมธอดภาษา C# ในหน้าวินฟอร์มนี้ได้ จากนั้นเปิดไฟล์ Map.html ในคอนโทรล myWebBrowser




ภาพบน: UpdateMapViewInfo คือเมธอดที่จะถูกเรียกจากจาวาสคริปต์ในไฟล์ Map.html เพื่ออัพเดต Label ที่แสดงพิกัตและอัตราการซูม













ภาพบน: นี่คือเมธอดที่จะทำงานเมื่อผู้ใช้กดปุ่ม Search มันจะไปเรียกเมธอด search ในจาวาสคริปต์ในไฟล์ Map.html ในนั้นจะมีโค้ดทำหน้าที่คิวรี Bing Map API





ภาพบน: ฟังก์ชัน GetMap เป็นโค้ดภาษาจาวาสคริปต์ในไฟล์ Map.html มีโค้ดสร้างออพเจ็กต์แผนที่ ท่านต้องใส่คีย์ที่ได้ตอนสร้าง API ไว้ในบรรทัดที่ 19




ภาพบน: ฟังก์ชัน  upDateMapViewInfo ทำหน้าที่อัพเดต Label ที่แสดงพิกัตและอัตราการซูมในหน้าวินฟอร์มเมื่อเราลากหรือย่อขยายแผนที่




ภาพบน: ฟังก์ชัน search ทำหน้าที่ส่งคิวรีไปยัง Bing Map API


เพียงเท่านี้ท่านก็จะได้แผนที่ไว้ใช้ในหน้าเดกส์ทอปแอพแล้ว ถ้าท่านขึ้เกียจป้อนโค้ดให้ดาวน์โหลดซอร์สโค้ด (เป็นวิสชวลสตูดิโอโซลูชัน) ได้จากลิงบนสุด

กรุณาใส่คำถามและความเห็นไว้ในคอมเมนท์ข้างล่าง เพียงหนึ่งคอมเมนท์จะเป็นกำลังใจให้ผมเขียนบทความต่อไปในวันพรุ่งนี้ ถ้าไม่มีคอมเมนท์ผมจะเลิกเขียนไปขายเต้าฮวย

Wednesday, November 8, 2017

รีเกรสชันแบบง่ายและแบบโพลีโนเมียลใน R

บทความนี้เกี่ยวกับการใช้ภาษา R และวิทยาการข้อมูล (Data science) เพื่อนำไปใช้ในงานแมชชีนเลินนิง สอนวิธีเขียนสคริปเพื่อทำรีเกรสชันแบบง่ายและแบบโพลีโนเมียล

รีเกรสชันเป็นอัลกอริทึมพื้นฐานที่ใช้กันมากในการทำแมชชีนเลินนิง การทำรีเกรสชันในภาษา R ง่ายมากเพราะมีเพ็จเกจรีเกรสชันให้เลือกใช้ได้เป็นร้อย อาทิ รีเกรสชันอย่างง่าย รีเกรสชันแบบโพลีโนเมียล รีเกรสชันแบบมัลติวารีเอต รีเกรสชันแบบโลจิสติก ฯลฯ

รีเกรสชันที่พูดถึงในบทความนี้อยู่ในกลุ่ม OLS (Ordinary Least Squares) ซึ่งมีสูตรแบบนี้




คือค่าทำนายของตัวแปรที่ขึ้นอยู่กับการสังเกต

คือตัวทำนายที่ j ของตัวสังเกตที่ i



ตัวอินเตอร์เซพ (ค่าทำนายของ Y เมื่อตัวแปรทั้งหมดเป็นศูนย์)



โคออฟฟิเชียนของตัวทำนายที่ J


เรื่องสถิติเอาแค่นี้พอ เขียนโค้ดเลยดีกว่า ให้เปิดโปรแกรม RStduio แล้วรันคำสั่งนี้

install.packages(c("car", "gvlma", "MASS", "leaps"))

เพื่อติดตั้งแพคเก็จสี่อันที่จะใช้ ส่วนดาต้าเซตที่เราจะใช้ทำการทดสอบคือ women ซึ่งมีอยู่ในไลบราลีมาตรฐานของ R แล้ว ไม่ต้องอ่านจากภายนอก ดาต้าเซตนี้เป็นตัวอย่างน้ำหนัก-ส่วนสูงของผู้หญิงโดยเฉลี่ยทั่วไปสิบห้าคน (อายุระหว่าง 30-39) เพื่อนำมาใช้เป็นเกณฑ์เปรียบเทียบว่าผู้หญิงวัยนี้ที่มีส่วนสูงเท่านี้ควรมีน้ำหนักเท่าใด หรือมีน้ำหนักเท่านี้ควรมีส่วนสูงเท่าใด หน้าตาของดาต้าเซตเป็นแบบนี้


ต่อไปเป็นสคริปรีเกรสชันอย่างง่าย


โค้ดที่ทำฟิตติงตัวแบบจำลองคือฟังก์ชัน lm() ในบรรทัดที่ 2 บรรทัดเดียว ส่วนที่เหลือเป็นแค่การพล็อตกราฟ  เมื่อรันแล้วจะได้ชาร์ทหน้าตาแบบนี้


จะเห็นว่าผลการทำนายแบบเส้นตรงโดนแค่บางจุด แต่เฉียดๆ จุดส่วนใหญ่ ถ้าเส้นโค้งเล็กน้อยอาจจะทำนายได้ดีขึ้น ซึ่งทำได้โดยปรับสูตรให้เป็นโพลีโนเมียลแบบนี้


ปรับสูตรแล้วปรับสคริปใหม่เป็นแบบนี้


เมื่อพล็อตชาร์ทจะมีหน้าตาแบบนี้


จะเห็นว่าเมื่อนำไปใช้ทำนายน้ำหนักส่วนสูง การทำงานแบบโพลีโนเมียลจะได้ผลลัพธ์ที่แม่นยำกว่ารีเกรสชันแบบง่าย

อ่านแล้วมีความเห็นหรือข้อแนะนำอะไรกรุณาใส่ในคอมเม้นต์ข้างล่างเลยครับ

Tuesday, November 7, 2017

สอนวิธีติดตั้ง Power BI Report Server

ใครที่ลองใช้ Microsoft Power BI ในคลาวด์แล้วติดใจ ตอนนี้มีให้ใช้บนเดกส์ทอปแล้ว ในบทความนี้ผมจะสอนวิธีติดตั้ง Power BI Report Server ถ้าท่านตามขั้นตอนตั้งแต่ต้นจนจบ ท่านก็จะสามารถทำรายงานแบบ Power BI ใช้ภายในหน่วยงานได้ฟรีๆ

ถ้าท่านซื้อ Microsoft SQL Server 2017 มาท่านจะมี Power BI Report Server พร้อมให้ติดตั้งแล้ว แต่ถ้าท่านยังไม่มีให้กดตรงนี้เพื่อดาวน์โหลด


ภาพบน: หน้าดาวน์โหลด Power BI Report Server



ภาพบน: กดปุ่ม Install Power BI Report Server


ภาพบน: มีคีย์ให้ป้อน ไม่มีให้ Evaluation


ภาพบน: I accept แล้ว Next


ภาพบน: มีข้อความเตือนว่าคอมพิวเตอร์เครื่องนี้ต้องมี SQL Server หรือเข้าถึงได้ผ่านเครือข่าย เพราะ Power BI Report Server จะใช้เก็บข้อมูลต่างๆ กด Next


ภาพบน: ท่านสามารถแก้ไขเปลี่ยนแปลงตำแหน่งที่จะติดตั้งได้ เสร็จแล้ว กด Install 


ภาพบน: เมื่อติดตั้งเสร็จแล้วจะมาหน้านี้ กดปุ่ม Configure report server เพราะเราจะตั้งค่า


ภาพบน: นี่คือหน้าตั้งค่า เลือกเซอฟเวอร์แล้วกดปุ่า Connect จากนั้นให้ลองดูหน้าต่างๆ ใครที่เคยคอนฟิก SSRS มาแล้วจะเข้าใจทันทีเพราะเหมือนกันหมดทุกอย่าง



ภาพบน: นี่คือหน้า Status ให้ดูตรง Report Service Status: ว่า Started หรือไม่ ถ้าไม่ให้กดปุ่ม Start

ภาพบน: หน้านี้ใช้สำหรับคอนฟิก URL ของรีพอร์ทเมเนเจอร์ 


ภาพบน: ในหน้า Database ให้เลือก Change Database / Create a new report server database / next


ภาพบน: ใส่ชื่อ SQL Server เลือก Authentication type / Next

ภาพบน: ใส่ชื่อดาต้าเบสใหม่ที่เราจะสร้างเพื่อไว้ใช้เก็บข้อมูลรายงาน แล้วกด Next

ภาพบน: หน้านี้สำหรับกำหนดครีเดนเชียลของเซอร์วิส ไม่ต้องทำอะไร กด Next

ภาพบน: หน้านี้สรุปการคอนฟิก ไม่ต้องทำอะไร กด Next

ภาพบน: หน้านี้สุดท้าย ไม่ต้องทำอะไร กด Finish


ภาพบน: ต่อไปให้กำหนด URL ของหน้าพอทัล ให้กดปุ่ม Apply

ภาพบน: ให้กดที่ลิงค์เพื่อเปิดหน้าพอทัลในเว็บบราวเซอร์ กดที่ Get Power BI Desktop เพื่อไปยังหน้าดาวน์โหลดโปรแกรม Power BI Desktop ซึ่งเป็นโปรแกรมที่เราจะใช้สร้างรายงาน คล้ายๆ ตัวที่ใช้กับคลาวด์ แต่จะมีปุ่มให้เซฟรายงานไปที่  Power BI Report Server อันวิเศษนัก


ภาพบน: ในหน้านี้คลิกเลือก 32 หรือ 64 บิตตามต้องการ  กด Next


ภาพบน: ดาวน์โหลดเสร็จก็ติดตั้งเลย จะรอช้าไปใย กด Next


ภาพบน: คลิก I accept แล้วกด Next

ภาพบน: เลือกถิ่นที่จะติดตั้งแล้วกด Next

ภาพบน: หน้านี้กด Install เพื่อเริ่มการติดตั้ง

ภาพบน: ติดตั้งเสร็จกดปุ่ม Finish

ภาพบน: Power BI Desktop ตัวที่จะใช้ได้กับ Power BI Report Server ต้องเป็นเวอร์ชันนี้หรือไหม่กว่า


ภาพบน: หรือเป้นเวอร์ชันไหนก้ได้ที่มีตัวเลือก Power BI Report Server ในเมนู Save

ภาพบน: สุดท่ายให้ทดลองสร้างรายงานแล้วเปิดดูในหน้าพอทัล

แต่ขอเตือนไว้ก่อนว่า Power BI Desktop เวอร์ชันนี้มีข้อจำกัดรับดาต้าได้จาก SQL analysis services เท่านั้น (tabular) ไม่สามารถรับจาก csv, table หรืออะไรๆ ทั้งนั้น เดี๋ยวเดือนหน้า (ธันวา 60) เรามาดูกันอีกทีว่าผู้พัฒนา Power BI Desktop จะแก้ไขจุดนี้หรือไม่

เตียมซอฟท์แวร์ก่อนเรียนคอร์ส Essential ML.NET

  ผู้จะเรียนวิชา Essential ML.NET ทุกคนโปรดเตรียมฮาร์ดแวร์และซอฟท์แวร์ต่อไปนี้ ระบบปฏิบัติการ Windows 10 (ถ้าใช้ MacOS หรือ Linux จะไม่สามาร...