Machine learning tweaking for application

Catch me if you can model

ท่านไหนสนใจภาคแรกไปอ่านกันก่อนได้ที่นี่ครับ

“THE STANFORDOPEN POLICINGPROJECT part1”

ภาคต่อที่เป็นส่วนของการทำ model machine learning ครับ

“THE STANFORD OPEN POLICING PROJECT Part 2”

หลังจาก ภาค2 machine learning model selection ยังไม่จุใจ การพัฒนาต่อเนื่องให้เกิดการใช้ประโยชน์ได้จริงต้องมีความเข้าใจด้าน imbalance data เข้ามา เนื่องจากทุกอย่างบนโลกนี้ไม่มีความยุติธรรมหรือ สมดุลที่แท้จริง และการวัดผลของ machine learning model มีอีกหลายรูปแบบที่เหมาะกับการใช้งานของ application ที่จะนำ model ไปใช้ประโยชน์ และยังมีการทำ feature selection เพื่อคัดเลือกข้อมูลเฉพาะตัวที่สำคัญและมีผลอย่างมีนัยสำคัญกับ ML model ก่อนที่จะให้ model เรียนรู้เพื่อเป็นการประหยัด resource และเวลาให้การประมวลผล ลดความซับซ้อนของ model เพื่อสุดท้ายแล้วจะทำให้ง่ายต่อการทำความเข้าใจและสามารถอธิบายตัว ML model ได้ดีขึ้น

Summary in part final นี้จะมีหลักสำคัญดังนี้

  1. จัดการ imbalance Data
  2. ใช้ feature selection เข้ามาช่วยซึ่งมีทั้งแบบ supervise และ unsupervise
  3. เลือก evaluation matric ที่เหมาะสมกับ application เพื่อที่จะทำการ Tune Hyperparameter และเปรียบเทียบผล

application ของ ML model ที่จะทำนี้ objective หลักคือ…


Machine learning model part

A police officer makes a traffic stop in Sacramento. (Rich Pedroncelli / Associated Press)

Credit ข้อมูลจาก https://openpolicing.stanford.edu/

ท่านไหนสนใจภาคแรกไปอ่านกันก่อนได้ที่นี่ครับ

“THE STANFORDOPEN POLICINGPROJECT part1”

ในส่วนนี้จะเป็นการสร้าง model prediction จาก data ที่เราทำการ clean มาระดับนึงแล้ว ก่อนอื่นจึงต้องมาดูกันที่จุดมุ่งหมายก่อนว่าผลลัพธ์ที่ต้องการคืออะไรจาก model ที่จะสร้างขึ้นมา ซึ่งก็คือผลการ predict และการวัดผลความแม่นยำจากวิธีการที่เหมาะสมกับ model ที่สร้างขึ้น

มาลองคิดวิเคราห์ดูกันสนุกๆ ก่อน จากข้อมูลชุดนี้ที่เรามี สามารถนำไปใช้ประโยชน์อะไรได้บ้าง

  1. ด้านมืด ตัว model นี้ ถ้านำไปใช้ในกรณีผู้ต้องการทำสิ่งผิดกฏหมาย ลักลอบนำสิ่งผิดกฏหมายต่างๆ เช่น อาวุธ ยาเสพย์ติด สามารถรู้ได้ว่า ต้องเลือกใช้ transporter ประเภท ลักษณะ เชื้อชาติ เพศ แบบไหนถึงจะหลบเลี่ยงต่อการถูกจับ และถูกตรวจค้นได้มากที่สุด หรือ หลีกเลี่ยงการฝ่าฝืนกฏจราจร อันเพิ่มความเสี่ยงให้เกิดการถูกตรวจค้นและโดนค้นหาสิ่งผิดกฏหมายในยานพาหนะในที่สุด
  2. ด้านสว่าง ฝั่งนี้ก็จะเป็นประโยชน์แก่ตำรวจเอง สองประเด็นย่อย คือ หนึ่ง ทำให้ตำรวจไม่ bias หรือ อคติต่อคนจำพวกไหนจำพวกหนึ่งมากเกินไป และ ไม่ปล่อยปะหละหลวมกับคนอีกจำพวกหนึ่ง ทำให้การปฏิบัติหน้าที่มีความรอบคอบมากขึ้น สอง เมื่อการปฏิบัติหน้าที่มีความรอบคอบ และเท่าเทียมกันต่อทุกคนทุกความหลากหลายของกลุ่มคน ทำให้มีภาพลักษณ์ต่อสาธารณชนดีขึ้นไม่มีการเลือกปฏิบัติต่อกลุ่มคนบางกลุ่ม ป้องกันไม่ให้เกิดปัญหาตามมาเช่น ข่าวดังที่ติด hashtag ไปทั่วเรื่อง #blacklivematter นั่นเอง…


อ้างอิงจาก Learning Paths on AWS: https://aws.amazon.com/getting-started/hands-on/recommendation-engine-for-games-amazon-neptune/4/

มาลองดู recommendation engine ใน cloud กันแบบจับมือทำ (follow along) แต่ไม่ต้องทำตามก็ได้นะครับ เหนื่อย (แถมเสียตังด้วย 🤑) 555 อ่านเฉยๆ พอ

Graphs on AWS.

Technologies used:

  • Active AWS Account** ใช้ แบบ ฟรี ก็สมัคร free tier ก็ได้ แต่ก็อาจโดนคิดเงินอยู่ดี อันนี้ไม่รับประกัน
    • Browser: AWS recommends Chrome
    • Amazon Neptune เป็น graph database ใน AWS
    • Amazon Cloud9 เป็น IDE ใน AWS
    • Amazon Cognito เป็น Service ที่ทำเรื่องเกี่ยวกับ การ register และการ log in และดูและความปลอดภัยในการยืนยันตนของ user ที่เข้ามาใช้งาน
    • AWS Lambda ใช้ run code โดยไม่ต้องมี server
    • Amazon API Gateway
    • AWS SDK for Node.js

ดู follow along ทำไปด้วยกับ youtube ได้เลยครับ

เริ่มกันเลย จะแบ่งย่อยทั้งหมด 6 ขั้นตอนใหญ่ๆนะครับ

1. ขั้นตอนแรก เป็นเตรียม…IDE & environment

สมมติเมื่อเราจะสร้างเกมโดยให้ผู้เล่นสามารถ follow กันได้…


race_standford_map

ภาคต่อที่เป็นส่วนของการทำ model machine learning ครับ

“THE STANFORD OPEN POLICING PROJECT Part 2”

Do police bias with black and Hispanic drivers and searched more often than whites?

จริงหรือที่ว่า เมื่อตำรวจทำการเรียกรถให้หยุดในการปฏิบัติหน้าที่ มีโอกาสที่ต้องการจะค้นตัว หรือค้นรถต่อเพื่อหาสิ่งผิดปกติ bias เกิดกับ คนผิวสี และคนที่พูดสเปนหรือคนทางเม็กซิโกนั่นเอง โดยใช้ข้อมูลจาก https://openpolicing.stanford.edu/ โดยจะทำกันโดยเลือก จาก Rhode Island State ครับผม

https://openpolicing.stanford.edu/img/mp.jpg

ใครอยากตามไปดูตัวเต็มตามไปได้ ที่ GitHub หรือ Google colab ตามนี้เลยครับผม ลุย!

GitHub ช่วง prepare: https://gist.github.com/TanabutT/83452915139c2e0069811cd745d1f431#file-policedataprepare-ipynb และ https://gist.github.com/TanabutT/0a2e334ab8ad27bbfae56abea23c2f1c

Google collab ช่วง prepare: https://drive.google.com/file/d/1VwSjFmoqzpWG_X-F8W8lYSrT2dd9I7wS/view?usp=sharing

Google collab ช่วง analysis : https://drive.google.com/file/d/1VwSjFmoqzpWG_X-F8W8lYSrT2dd9I7wS/view?usp=sharing

Problem

เนื่องจากการปฏิบัติงานของเจ้าหน้าที่ตำรวจในอเมริกานั้น ต้อง interact กับ ผู้คนหลายเชื้อชาติ หลายกลุ่มชาติพันธุ์ ซึ่งทำให้เกิด bias ขึ้นระหว่างทำหน้าที่โดยไม่รู้ตัว dataset นี้เป็นการศึกษา ของ Stanford ที่ต้องการจะ improve interactions between police and the public เราจึงมาวิเคราะห์กันว่าจะได้อะไรกันบ้างจากชุดข้อมูลนี้…


https://en.wikipedia.org/wiki/Ignaz_Semmelweis

ทุกวันนนี้ช่วงของโรคระบาดทำให้เรารู้จักการล้างมือที่ถูกต้อง ซึ่ง infographic ทั้งหลายในการล้างมือให้ถูกต้องมีให้ดูกันมากมายลองไปหาดูกันนะครับ

วันนี้เรามาดูต้นกำเนิดกันดีกว่าว่าการล้างมือมันเกิดขึ้นได้อย่างไร และมันไปเกี่ยวข้องกับ data ได้อย่างไร

More detail: https://github.com/TanabutT/Projects/blob/master/The_Discovery_of_Handwashing/Dr.%20Semmelweis_and_the_%20Discovery_of_Handwashing.ipynb

ย้อนไปสมัย ปี ค.ศ. 1818 ที่โรงพยาบาล Vienna General ต้องเรียกว่า คุณหมอทวด Dr. Ignaz Semmelweis ชาวฮังการี ได้พบว่า มีผู้หญิงหลังคลอดที่เสียชีวิตจากโรคที่เรียกว่า Childbed fever คือการติดเชื้อและมีไข้หลังจากคลอดบุตร ในโรงพยาบาลประมาณ 10 %. คุณหมอทวดท่านนี้ก็สงสัยและได้ตั้งคำถามว่าสาเหตุน่าจะเกิดจาก มือของหมอที่ปนเปื้อนเมื่อมาทำคลอด ต่อมาจึงมีการบอกกล่าวแนะนำให้เหล่าหมอๆ ที้งหลายล้างมือกันก่อนที่จะมาทำคลอดแต่ในยุคนั้นก็ไม่มีใครฟัง

import pandas as pd

# Read datasets/yearly_deaths_by_clinic.csv into yearly
yearly = pd.read_csv('datasets/yearly_deaths_by_clinic.csv')

# Print out yearly
yearly


rod.kaidee.com

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

จากการที่ได้ร่วมเรียนรู้จาก ผู้เชี่ยวชาญและมีประสบการณ์ทางด้าน Data Science อย่าง BOTNOI นี่คือ project เพื่อใช้งานในโลกแห่งข้อมูลของจริง

ไปดู jupyter notebook ได้ในนี้ครับ colab และ github

https://colab.research.google.com/drive/1WQoNqTvYOA1xYW_sV7boKz2rkKqQcr_z

https://github.com/TanabutT/Projects/tree/master/BOTNOI_RODKAIDEE_car_price_prediction

เริ่มต้นการทำโดยการ ใช้ python ในการ import data และ Exploratory Data Analysis(EDA) ก่อนครับ ลอง sample สุ่มมาดูก่อนสัก 5 ตัวครับตัวตารางข้อมูลจะใช้ชื่อว่า carkaidee

display(carkaidee.sample(5))


จบแล้วจ้า track อันยาวนาน

แต่การเรียนรู้ไม่มีที่สิ้นสุด

Data Scientist DataCamp Career Track

I just finished Python career tracks (data analyst and data scientist) and need to share the journey along the way.

First of all, I am totally new to this area. I graduate Bsc rubber and polymer technology and ME oil and gas exploration. I work for Sales and Engineer in Oil and gas business for several years. My working hour is not normal but it is a rotation and shift. I work 4 weeks at offshore rig then have a day off at home for 2 weeks, no other vacations.

Start…


จากการเรียน Data Analyst with Python Career Track ของ Datacamp ก็ใช้เวลาค่อนข้างเยอะพอสมควร course เรียนจะปูพีื้นฐานให้เลยและเน้นทำจริงใน web-base IDE เลย เราไม่ต้องลงโปรแกรมอะไรเพิ่มเติม

แต่เราต้องหา python environment จริงๆ มาฝึกเองด้วย ที่ง่ายสุดคือต้องลง jupyter notebook จะทำให้เราได้ใช้งานจริงไปด้วยในเรื่องการเริ่มต้นจับข้อมูลจริงมาเล่นเอง หรือใช้ในการทบทวนการเขียน pythonใ

เนื้อหาเน้นเรื่อง process ของ การเริมต้นทำข้อมูลก่อน โดยการนำข้อมูลจากแหล่งต่างๆ จะฝึกให้เราทำจริง พิมพ์ code จริงโดยใช้ python เป็นหลักต้องเรียนรู้ ตั้งแต่การ import data, clean data และ manipulate data เพื่อ พร้อมสำหรับการ Analyst ต่อไป โดยส่วนนี้ก็จะเน้น numpy และ pandas โดยจะ เริ่มEDA: Exploratory Data Analysisการวิเคราะห์ทางสถิติก่อนว่าข้อมูล มีความน่าเชื่อถือ และมีคุณภาพมากพอหรือป่าวควบคู่ไปกับ การ visualization โดย ใช้ library ทั้ง matplotlib และseaborn จนในที่สุด เรามาปรับแต่งจนสามารถดูได้ว่า insight ของข้อมูลคืออะไร ทำ Hypothesis test เพื่อดูว่ามีอะไรที่มีความสัมพันธ์กันอย่างมีนัยสำคัญบ้าง ซึ่งมี case study ให้ทำดูด้วย เช่น

ใครสนใจอยาก code ที่เขียนไป ตามที่ github ได้ครับ : https://github.com/TanabutT/DataAnalystPython

Sunlight in Austin : https://github.com/TanabutT/DataAnalystPython/blob/master/Case%20Study%20-%20Sunlight%20in%20Austin.ipynb

Police Activity :https://github.com/TanabutT/DataAnalystPython/blob/master/Police%20Activity.ipynb

ซึ่งในเรื่อง ของ Police Activity ประโยชจากการวิเคราะห์ข้อมูลสามารถ นำไปวิเคราะห์ขยายผลได้และ นำไปปรับปรุงการ ทำงานของตำรวจใน อเมริกา ให้ดีขึ้นโดยไม่เกิดความเหลื่อมล้ำในการปฏิบัติงาน สองมารตฐานกับประชาชนแต่ละชนชาติได้ด้วย ดำเนินงานโดย standford.edu ติดตามอ่านต่อได้ใน https://openpolicing.stanford.edu/publications/

จบจาก career track นี้ ไป ก็ต้องไปต่อในด้าน model classification จาก machine learning กันต่อไปครับ


ก่อนอื่นเลย ตอนนี้ได้เวลามาจริงจังกับการเรียน เพื่อเปลี่ยนสายงานไปทาง Data ปลายทางของการใช้งานก็ต้องได้ใช้ Machine learning and Deep learning แน่ๆ เลยคิดว่าต้องเตรียมไว้ก่อนเลย

พยายามหาทางที่ง่ายที่สุด แต่สุดท้ายยิ่งเสียเวลา จนมาเจอวิธีของอาจารย์ท่านหนึ่ง Jeff Heaton จาก Washington University (in St. Louis) ไม่ใช่วิธีที่ง่ายและเร็ว แต่ทำแล้วได้ผล มาแชร์ ให้ผู้สนใจได้นำไปใช้ด้วย ตามช่อง Youtube ของอาจารย์ก็มีอะไรให้เรียนรู้เพียบ

https://github.com/jeffheaton/t81_558_deep_learning

ตอนนี้เครื่องโน้ตบุ้คพร้อมที่จะลุยแล้ว

for more detail coming soon

24 April 2020

Tanabut Taksinavongskul

Data Journey : Self developing and learning on new technology about AI, automation and data related.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store