วิทยาศาสตร์ข้อมูล: คำจำกัดความและการประยุกต์ใช้งานจริง
วิทยาศาสตร์ข้อมูล เป็นสาขาวิชาที่เกิดขึ้นไม่นานแต่เติบโตอย่างรวดเร็วและมีหลายมิติ ใช้ในหลายแวดวง โดยอาศัยเทคนิคการวิเคราะห์ขั้นสูงและอัลกอริทึมเชิงพยากรณ์เพื่อดึงเอาองค์ความรู้ที่มีความหมายจากข้อมูล มาช่วยตอบคำถามเชิงกลยุทธ์ทางธุรกิจหรือวิทยาศาสตร์ วิทยาศาสตร์ข้อมูลผสานทักษะหลากหลาย ตั้งแต่ทักษะเชิงเทคนิค (การเขียนโปรแกรม พีชคณิตเชิงเส้น สถิติ และการสร้างแบบจำลอง) ไปจนถึงทักษะที่ไม่ใช่เทคนิค (การสื่อสารและถ่ายทอดผลอย่างมีประสิทธิภาพ) นอกจากนี้ ขึ้นอยู่กับอุตสาหกรรมที่นำวิทยาศาสตร์ข้อมูลไปใช้ จำเป็นต้องมีความรู้เฉพาะโดเมนที่แข็งแรงเพื่อให้ตีความข้อมูลและข้อค้นพบได้อย่างถูกต้อง
อัลกอริทึมด้านวิทยาศาสตร์ข้อมูลสามารถประยุกต์ใช้ได้สำเร็จในบริบทที่มีหรือสามารถเก็บข้อมูลได้จำนวนมาก: การเงิน พาณิชย์ การตลาด การบริหารโครงการ ประกันภัย การแพทย์ การศึกษา การผลิต ทรัพยากรบุคคล ภาษาศาสตร์ สังคมวิทยา ฯลฯ แทบทุกอุตสาหกรรมหรือศาสตร์ใด ๆ ล้วนได้ประโยชน์อย่างมากจากการรวบรวม เก็บ วิเคราะห์ และทำแบบจำลองข้อมูลของตน
กรณีการใช้งานวิทยาศาสตร์ข้อมูลคืออะไร?
กรณีการใช้งานวิทยาศาสตร์ข้อมูลคือภารกิจจริงในโลกความเป็นจริงที่ต้องแก้ด้วยข้อมูลที่มีอยู่ ภายใต้กรอบของบริษัทหนึ่ง ๆ จะวิเคราะห์ตัวแปรมากมายด้วยเทคนิควิทยาศาสตร์ข้อมูลในบริบทของอุตสาหกรรมเฉพาะของบริษัท กรณีการใช้งานอาจเป็นปัญหาที่ต้องแก้ ข้อสันนิษฐานที่ต้องตรวจสอบ หรือคำถามที่ต้องการคำตอบ แก่นแท้ของการทำวิทยาศาสตร์ข้อมูลก็คือการแก้โจทย์ใช้จริงเหล่านี้
แม้เนื้อหาของแต่ละกรณีจะต่างกันมาก แต่ก็มีสิ่งร่วมที่ควรคำนึงเสมอ:
การวางแผนกรณีใช้งานวิทยาศาสตร์ข้อมูล ได้แก่ การกำหนดเป้าหมายและผลลัพธ์ที่คาดหวังให้ชัด เข้าใจขอบเขตงาน ประเมินทรัพยากร จัดเตรียมข้อมูลที่ต้องใช้ ประเมินความเสี่ยง และกำหนด KPI เพื่อวัดความสำเร็จ
แนวทางที่พบบ่อยในการแก้กรณีใช้งาน ได้แก่ การพยากรณ์ การจัดหมวดหมู่ การตรวจจับแพทเทิร์นและความผิดปกติ ระบบแนะนำ และการรู้จำภาพ
บางกรณีใช้งานพบข้ามหลายสาขาและใช้แนวทางคล้ายกันได้ เช่น การพยากรณ์การยกเลิกใช้บริการของลูกค้า การแบ่งกลุ่มลูกค้า การตรวจจับการทุจริต ระบบแนะนำ และการปรับราคาให้เหมาะสม
จะแก้โจทย์กรณีศึกษาในวิทยาศาสตร์ข้อมูลอย่างไร?
คำตอบขึ้นอยู่กับแต่ละกรณี ถูกขับเคลื่อนโดยกลยุทธ์ธุรกิจของบริษัท และขึ้นกับแก่นของกรณีศึกษาเอง อย่างไรก็ตาม การวางโรดแมปทั่วไปเพื่อใช้กับทุกกรณีใช้งานอาจช่วยได้:
ตั้งคำถามให้ถูกต้อง ขั้นตอนแรกสำคัญมาก รวมถึงทบทวนวรรณกรรมที่มีและกรณีศึกษาที่มีอยู่ ทบทวนแนวทางปฏิบัติที่ดีที่สุด ขยายทฤษฎีที่เกี่ยวข้องและสมมติฐานทำงาน และเติมเต็มช่องว่างด้านความเชี่ยวชาญเฉพาะโดเมน สุดท้ายควรได้คำถามที่ชัดเจนสำหรับกรณีศึกษาที่สนใจ
การรวบรวมข้อมูล ขั้นนี้จะทำรายการและเก็บข้อมูล ในโลกจริงเรามักได้ข้อมูลที่ไม่เป็นตัวแทน ขาดหาย มีข้อบกพร่อง และไม่เป็นโครงสร้าง กล่าวคือห่างไกลจากตารางข้อมูลที่อ่านง่ายและพร้อมวิเคราะห์ จึงต้องค้นหาและระบุแหล่งข้อมูลที่เป็นไปได้ทั้งหมดที่อาจเป็นประโยชน์ ข้อมูลที่ต้องการอาจอยู่ในคลังของบริษัท เก็บจากเว็บ หรือได้มาจากผู้สนับสนุน เป็นต้น
การทำความสะอาด/จัดระเบียบข้อมูล ส่วนนี้มักกินเวลาและทรัพยากรมากที่สุดของโครงการวิทยาศาสตร์ข้อมูลใด ๆ จะประเมินคุณภาพและความเป็นตัวแทนของข้อมูลที่รวบรวม และทำการสำรวจข้อมูลเบื้องต้น จากนั้นทำความสะอาด เตรียมประมวลผล แปลง จัดการ และแม็ปข้อมูลจากรูปแบบดิบให้อยู่ในรูปที่เหมาะสมกว่า
การวิเคราะห์และสร้างแบบจำลองข้อมูล จะวิเคราะห์ข้อมูลที่ทำความสะอาดแล้วตามสถานะปัจจุบัน แล้วปรับให้เข้ากับแบบจำลองเชิงพยากรณ์ที่เลือก ประเมินความแม่นยำของแบบจำลอง และหากยังไม่ดีพอ จะลองวิธีสร้างแบบจำลองอื่น ทำซ้ำจนได้แบบจำลองที่ทำนายสถานการณ์อนาคตได้แม่นยำที่สุด กระบวนการนี้เช่นเดียวกับก่อนหน้าล้วนมีลักษณะวนซ้ำ
การสื่อสารผลลัพธ์ เมื่อเทียบกับขั้นก่อน ๆ ขั้นนี้ต้องใช้ทักษะการสื่อสารและทักษะเชิงอ่อนมากกว่าความเชี่ยวชาญเชิงเทคนิคและการเขียนโปรแกรม ประกอบด้วยการแบ่งปันข้อค้นพบสำคัญและข้อสรุปสุดท้ายกับผู้บริหาร ผู้ถือหุ้น และผู้มีส่วนได้ส่วนเสียอื่น ๆ มักถ่ายทอดอินไซต์เป็นรายงาน บทความ และสไลด์นำเสนอ พร้อมแนวทางเดินหน้าต่อ
กรณีการใช้งานวิทยาศาสตร์ข้อมูลตามอุตสาหกรรม
กรณีการใช้งานวิทยาศาสตร์ข้อมูลเกี่ยวข้องได้แทบทุกอุตสาหกรรมที่มีหรือสามารถสะสมข้อมูลจำนวนมาก บทนี้จะกล่าวถึงกรณีใช้งานที่พบบ่อยในสาขาที่มีความต้องการสูง ได้แก่ โลจิสติกส์ การดูแลสุขภาพ และโทรคมนาคม บางกรณีใช้งานเป็นแบบสหวิทยาการและพบได้ในหลายแวดวง ทำให้มีความเป็นสากลและประยุกต์ใช้ได้กว้าง จึงควรรู้แนวทางโดยรวมในการแก้ นอกจากนี้ สำหรับแต่ละอุตสาหกรรมที่เลือก จะยกหัวข้ออื่น ๆ ที่สามารถทำแบบจำลองด้วยวิธีวิทยาศาสตร์ข้อมูลได้
วิทยาศาสตร์ข้อมูลในด้านสุขภาพ
สามบทก่อนหน้าเราได้กล่าวถึงวิธีที่วิทยาศาสตร์ข้อมูลช่วยให้บริษัทจากอุตสาหกรรมต่าง ๆ เพิ่มรายได้ สำหรับภาคสุขภาพ การใช้และตีความข้อมูลที่มีอย่างถูกต้องไม่เพียงเป็นประโยชน์กับนักการตลาดของภาคส่วนนี้เท่านั้น แต่ยังช่วยวินิจฉัยโรคร้ายได้ทันท่วงที และอาจช่วยชีวิตผู้คนได้ด้วย
การแพทย์และผู้ให้บริการสุขภาพเก็บข้อมูลจำนวนมหาศาลจากหลายแหล่ง: ระบบเวชระเบียนอิเล็กทรอนิกส์ (EHR) ข้อมูลจากอุปกรณ์สวมใส่ งานวิจัยทางการแพทย์ และเอกสารการเรียกเก็บเงิน การใช้ประโยชน์จากเทคนิควิทยาศาสตร์ข้อมูลและการวิเคราะห์ข้อมูลเชิงนวัตกรรมกำลังเปลี่ยนโฉมทั้งอุตสาหกรรมสุขภาพ มอบแนวทางแก้ที่ทรงพลังและมีผลกระทบต่อการพัฒนาในอนาคต โดยเฉพาะบางสาขาเฉพาะทาง เช่น พันธุศาสตร์ เวชศาสตร์การเจริญพันธุ์ มะเร็งวิทยา เทคโนโลยีชีวภาพ รังสีวิทยา การวินิจฉัยเชิงพยากรณ์ และเภสัชกรรม ต่างยกระดับขึ้นอย่างมากจากการปลดล็อกศักยภาพของข้อมูล
เพื่อให้เห็นภาพชัดขึ้นว่าดาต้าไซเอนซ์มีคุณค่าในทางการแพทย์อย่างไร ลองโฟกัสที่หนึ่งในกรณีใช้งานคลาสสิก
กรณีใช้งานในสุขภาพ: การพยากรณ์มะเร็งเต้านม
ตามข้อมูลของ World Cancer Research Fund International มะเร็งเต้านมเป็นมะเร็งที่พบบ่อยที่สุดในสตรี และเป็นชนิดที่พบบ่อยเป็นอันดับสองโดยรวม การวินิจฉัยพยาธิสภาพของเต้านมให้ทันท่วงที ไม่ว่าจะเป็นเนื้องอกธรรมดาหรือร้ายแรง สำคัญยิ่ง เพราะเพิ่มโอกาสการรักษาให้สำเร็จและอัตรารอดชีวิต นี่คือจุดที่วิทยาศาสตร์ข้อมูลเข้ามาช่วย
ความก้าวหน้าของวิธีทำเหมืองข้อมูลควบคู่กับอัลกอริทึมเรียนรู้ของเครื่องทำให้สามารถพยากรณ์ความเสี่ยงของมะเร็งเต้านม ตรวจจับความผิดปกติระยะเริ่มแรก ประเมินพลวัต และวางแผนต่อสู้โรคได้ดีที่สุด โดยแก่นแท้แล้วนี่คือปัญหาการจัดหมวดหมู่ของแมชชีนเลิร์นนิง ข่าวดีก็คือเพราะมะเร็งชนิดนี้พบได้ค่อนข้างมาก จึงมีงานศึกษาละเอียดจำนวนมากทั่วโลก และสะสมข้อมูลจากผู้ป่วยมากมาย
ประเด็นหลักของการใช้ชุดข้อมูลดังกล่าวกับตัวจัดหมวดหมู่คือความไม่สมดุลอย่างรุนแรง ตัวอย่างเช่น เมื่อผลลัพธ์อยู่ในรูป มีมะเร็ง/ไม่มีมะเร็ง ความน่าจะเป็นของการมีพยาธิสภาพ (ระเบียนในคลาสส่วนน้อย) ต่ำกว่าการไม่มีพยาธิสภาพ (ระเบียนในคลาสส่วนใหญ่) อย่างมาก ส่งผลให้อัลกอริทึมโน้มเอียงไปจัดกรณีใหม่เป็นไม่พบพยาธิสภาพ ดังนั้นการประเมินความแม่นยำของแบบจำลองประเภทนี้ให้มีประสิทธิภาพ ควรใช้ค่า F1-score เป็นเมตริก เพราะประเมินกรณีบวกลวง (ความคลาดเคลื่อนชนิดที่ I) และลบลวง (ความคลาดเคลื่อนชนิดที่ II) แทนการนับเฉพาะกรณีที่จัดถูกต้อง
ลองดูชุดข้อมูลจริงเรื่อง มะเร็งเต้านม จากรัฐหนึ่งของสหรัฐฯ คุณลักษณะต่าง ๆ อธิบายไว้ละเอียดในเอกสาร แต่โดยสรุปคือค่าเฉลี่ย ค่าเบี่ยงเบนมาตรฐาน และค่าสูงสุดของแอตทริบิวต์จากแต่ละภาพดิจิทัลที่แสดงนิวเคลียสของเซลล์จากก้อนเนื้อเต้านมของผู้หญิง แต่ละระเบียนในชุดข้อมูลสอดคล้องกับสตรีที่มีเนื้องอกชนิดร้ายหรือไม่ร้าย (กล่าวคือผู้หญิงทั้งหมดในชุดนี้มีเนื้องอกบางชนิด) แอตทริบิวต์รวมถึงรัศมีของเซลล์ เนื้อสัมผัส ความเรียบ ความกะทัดรัด ความเว้า ความสมมาตร ฯลฯ
import pandas as pd
cancer_data = pd. read_csv( 'data.csv' )
pd. options. display. max_columns = len ( cancer_data)
print ( f'Number of entries: { cancer_data. shape[ 0 ] : , } \n'
f'Number of features: { cancer_data. shape[ 1 ] : , } \n\n'
f'Number of missing values: { cancer_data. isnull( ) . sum ( ) . sum ( ) } \n\n'
f' { cancer_data. head( 2 ) } ' ) ขับเคลื่อนโดย
Number of entries: 569
Number of features: 33
Number of missing values: 569
id diagnosis radius_mean texture_mean perimeter_mean area_mean \
0 842302 M 17.99 10.38 122.8 1001.0
1 842517 M 20.57 17.77 132.9 1326.0
smoothness_mean compactness_mean concavity_mean concave points_mean \
0 0.11840 0.27760 0.3001 0.14710
1 0.08474 0.07864 0.0869 0.07017
symmetry_mean fractal_dimension_mean radius_se texture_se perimeter_se \
0 0.2419 0.07871 1.0950 0.9053 8.589
1 0.1812 0.05667 0.5435 0.7339 3.398
area_se smoothness_se compactness_se concavity_se concave points_se \
0 153.40 0.006399 0.04904 0.05373 0.01587
1 74.08 0.005225 0.01308 0.01860 0.01340
symmetry_se fractal_dimension_se radius_worst texture_worst \
0 0.03003 0.006193 25.38 17.33
1 0.01389 0.003532 24.99 23.41
perimeter_worst area_worst smoothness_worst compactness_worst \
0 184.6 2019.0 0.1622 0.6656
1 158.8 1956.0 0.1238 0.1866
concavity_worst concave points_worst symmetry_worst \
0 0.7119 0.2654 0.4601
1 0.2416 0.1860 0.2750
fractal_dimension_worst Unnamed: 32
0 0.11890 NaN
1 0.08902 NaN ขับเคลื่อนโดย
มาลองลบคอลัมน์สุดท้ายที่มีแต่ค่าว่างกัน:
cancer_data = cancer_data. drop( 'Unnamed: 32' , axis= 1 ) ขับเคลื่อนโดย
ผู้หญิงกี่เปอร์เซ็นต์ที่ได้รับการยืนยันว่าเป็นมะเร็ง (เนื้องอกเต้านมชนิดร้าย)?
round ( cancer_data[ 'diagnosis' ] . value_counts( ) * 100 / len ( cancer_data) ) . convert_dtypes( ) ขับเคลื่อนโดย
B 63
M 37
Name: diagnosis, dtype: Int64ขับเคลื่อนโดย
37% ของผู้ตอบทั้งหมดเป็นมะเร็งเต้านม ดังนั้นชุดข้อมูลจึงค่อนข้างสมดุล
เนื่องจากค่าของตัวแปรการวินิจฉัยเป็นเชิงหมวดหมู่ จึงต้องเข้ารหัสให้เป็นตัวเลขเพื่อใช้กับแมชชีนเลิร์นนิง ก่อนทำเช่นนั้น แยกข้อมูลเป็นตัวแปรทำนายและตัวแปรเป้าหมาย diagnosis ก่อน:
X = cancer_data. iloc[ : , 2 : 32 ] . values
y = cancer_data. iloc[ : , 1 ] . values
from sklearn. preprocessing import LabelEncoder
labelencoder_y = LabelEncoder( )
y = labelencoder_y. fit_transform( y) ขับเคลื่อนโดย
ต่อไป แบ่งชุด train/test แล้วทำการสเกลคุณลักษณะ:
from sklearn. model_selection import train_test_split
from sklearn. preprocessing import StandardScaler
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size= 0.2 , random_state= 1 )
sc = StandardScaler( )
X_train = sc. fit_transform( X_train)
X_test = sc. transform( X_test) ขับเคลื่อนโดย
เพื่อจำลองข้อมูลของเรา จะใช้อัลกอริทึมเริ่มต้นสองแบบ: k-nearest neighbors (KNN) และลอจิสติกรีเกรสชัน:
from sklearn. neighbors import KNeighborsClassifier
from sklearn. linear_model import LogisticRegression
knn = KNeighborsClassifier( )
knn. fit( X_train, y_train)
knn_predictions = knn. predict( X_test)
lr = LogisticRegression( )
lr. fit( X_train, y_train)
lr_predictions = lr. predict( X_test) ขับเคลื่อนโดย
ก่อนหน้านี้เห็นว่าชุดข้อมูลค่อนข้างสมดุล จึงใช้เมตริก accuracy score เพื่อระบุแบบจำลองที่แม่นยำที่สุด:
from sklearn. metrics import accuracy_score
print ( f'Accuracy scores:\n'
f'KNN model:\t\t { accuracy_score( y_test, knn_predictions) : .3f } \n'
f'Logistic regression model: { accuracy_score( y_test, lr_predictions) : .3f } ' ) ขับเคลื่อนโดย
Accuracy scores:
KNN model: 0.956
Logistic regression model: 0.974 ขับเคลื่อนโดย
จากข้อมูลของเรา แบบจำลองลอจิสติกรีเกรสชันทำผลงานได้ดีที่สุดในการทำนายเนื้องอกเต้านมชนิดร้าย/ไม่ร้ายสำหรับสตรีที่ตรวจพบพยาธิสภาพใด ๆ
แนวทางต่อไป เนื่องจากอัลกอริทึมลอจิสติกรีเกรสชันไม่มีพารามิเตอร์สำคัญให้ปรับมากนัก อาจลองปรับวิธีแบ่ง train/test และ/หรือทดลองเทคนิคการพยากรณ์แบบอื่น
กรณีใช้งานอื่นที่พบบ่อยในสุขภาพ:
การติดตามข้อมูลเรียลไทม์จากอุปกรณ์สวมใส่
การวิเคราะห์เชิงพยากรณ์
การวิเคราะห์ภาพทางการแพทย์
การค้นคว้ายา
วิจัยด้านพันธุศาสตร์
ผู้ช่วยเสมือน
การจัดการข้อมูลลูกค้า
วิทยาศาสตร์ข้อมูลในด้านขนส่งและโลจิสติกส์
โลจิสติกส์คือการจัดการกระบวนการส่งมอบสินค้าจากจุดหนึ่งไปยังอีกจุดหนึ่ง ส่วนการขนส่งคือการขนย้ายผู้โดยสารหรือสินค้า ขึ้นอยู่กับลักษณะธุรกิจของบริษัท (เช่น ส่งอาหาร ไปรษณีย์ ขนส่งระหว่างประเทศ สายการบิน บริการแท็กซี่หรือรถบัส) แหล่งข้อมูลอาจเป็นตารางเวลา ไทม์ชีต รายละเอียดเส้นทาง รายการสต็อกคลังสินค้า รายงาน สัญญา เอกสารทางกฎหมาย และข้อเสนอแนะจากลูกค้า ตัวข้อมูลอาจมีโครงสร้างหรือไม่มีก็ได้ และรวมถึงเวลา เส้นทาง พิกัด ข้อมูลลูกค้า รายละเอียดสินค้า ต้นทุนและราคา
ประสิทธิภาพธุรกิจในซัพพลายเชนและภาคขนส่งไม่ได้ตรงไปตรงมาเสมอไป และขึ้นอยู่กับปัจจัยมากมาย: ปัญหาการจราจรที่ไม่คาดคิด คุณภาพเส้นทาง สภาพอากาศ เหตุฉุกเฉิน ความผันผวนของราคาน้ำมัน การขาดแคลนสต็อก ความเสียหายทางเทคนิค ความล่าช้าเกี่ยวกับความปลอดภัย กฎระเบียบและมาตรการคว่ำบาตรของรัฐ ฯลฯ อีกทั้งช่วงไม่กี่ปีมีผู้เล่นรายใหม่เกิดขึ้นมาก ทำให้การแข่งขันรุนแรงยิ่งขึ้น ดังนั้นเพื่อก้าวทันคู่แข่งและเพิ่มผลิตภาพการปฏิบัติงาน บริษัทโลจิสติกส์/ขนส่งจึงจำเป็นต้องวิเคราะห์บิ๊กดาต้าและแปลงเป็นอินไซต์ที่มีความหมาย
วิทยาศาสตร์ข้อมูลช่วยภาคขนส่งและโลจิสติกส์ได้อย่างไรบ้าง ต่อไปนี้คือรายการการประยุกต์ใช้ที่ยังไม่ครบถ้วน:
ติดตามกระบวนการขนส่งตั้งแต่ต้นทางถึงปลายทาง
ทำให้ทุกกิจกรรมเป็นอัตโนมัติและโปร่งใส
ส่งมอบตรงเวลา
ปรับเส้นทางให้เหมาะสม
กำหนดราคาแบบไดนามิก
รักษาระดับสต็อกวัสดุสิ้นเปลือง
ปกป้องสินค้าที่เน่าเสียง่าย
เฝ้าระวังสภาพยานพาหนะ
ปรับปรุงเครือข่ายการผลิต
ยกระดับบริการลูกค้า
กรณีใช้งานในขนส่งและโลจิสติกส์: ระบุตำแหน่งที่เหมาะสมที่สุดของรถแท็กซี่
Uber Technologies Inc. หรือ Uber เป็นบริษัทอเมริกันที่ให้บริการด้านโลจิสติกส์และขนส่งหลากหลาย กรณีศึกษานี้จะจัดกลุ่มข้อมูล GPS ของการแชร์การเดินทางของ Uber เพื่อระบุตำแหน่งที่เหมาะสมที่สุดของรถแท็กซี่ โดยเฉพาะมีประโยชน์ดังนี้:
คำขอโดยสารใหม่แต่ละรายการจะถูกจับคู่กับคลัสเตอร์ที่ใกล้ที่สุด แล้ว Uber จะส่งรถที่อยู่ใกล้จากคลัสเตอร์นั้นไปยังตำแหน่งของลูกค้า
การวิเคราะห์คลัสเตอร์ที่ได้ตามภาระงาน อาจแยกตามชั่วโมงหรือวันในสัปดาห์ ทำให้ Uber กระจายรถล่วงหน้าและส่งไปยังตำแหน่งยุทธศาสตร์ที่มีความต้องการสูง
ขึ้นอยู่กับอัตราส่วนอุปสงค์/อุปทานในแต่ละคลัสเตอร์ บริษัทสามารถปรับอัตราค่าโดยสารแบบไดนามิก
เราจะใช้ชุดข้อมูลจาก FiveThirtyEight เรื่อง การเดินทางของ Uber ในนิวยอร์กช่วงเมษายน 2014 :
import pandas as pd
uber_data = pd. read_csv( 'uber-raw-data-apr14.csv' )
print ( f'Number of trips: { uber_data. shape[ 0 ] : , } \n\n'
f' { uber_data. head( ) } ' ) ขับเคลื่อนโดย
Number of trips: 564 , 516
Date/ Time Lat Lon Base
0 4 / 1 / 2014 0 : 11 : 00 40.7690 - 73.9549 B02512
1 4 / 1 / 2014 0 : 17 : 00 40.7267 - 74.0345 B02512
2 4 / 1 / 2014 0 : 21 : 00 40.7316 - 73.9873 B02512
3 4 / 1 / 2014 0 : 28 : 00 40.7588 - 73.9776 B02512
4 4 / 1 / 2014 0 : 33 : 00 40.7594 - 73.9722 B02512ขับเคลื่อนโดย
มาลองแสดงตำแหน่งรับผู้โดยสารทั้งหมดอย่างคร่าว ๆ โดยให้ลองจิจูดเป็นแกน x และละติจูดเป็นแกน y:
import matplotlib. pyplot as plt
plt. scatter( uber_data. iloc[ : , 2 ] , uber_data. iloc[ : , 1 ] )
plt. show( ) ขับเคลื่อนโดย
เพื่อจัดกลุ่มข้อมูลนี้ จะใช้อัลกอริทึมเรียนรู้ของเครื่องแบบไม่มีผู้สอนที่เรียกว่า k-means แนวคิดคือแบ่งตัวอย่างข้อมูลทั้งหมดออกเป็นหลายกลุ่มที่มีความแปรปรวนเท่ากัน โดยรับจำนวนคลัสเตอร์ n_clusters (ค่าเริ่มต้นคือ 8) และแยกข้อมูลตามนั้น เพื่อหาจำนวนคลัสเตอร์ที่เหมาะสม จะใช้วิธีศอก (elbow method) ซึ่งประกอบด้วย:
ฝึกหลายโมเดลด้วยจำนวนคลัสเตอร์ต่างกัน และเก็บค่า WCSS (Within Cluster Sum of Squares) ของแต่ละโมเดล ซึ่งคือผลรวมกำลังสองของระยะทางของจุดสังเกตจากเซนทรอยด์ของคลัสเตอร์ที่ใกล้ที่สุด
พล็อตค่า WCSS เทียบกับจำนวนคลัสเตอร์ที่สอดคล้องกัน
เลือกจำนวนคลัสเตอร์น้อยที่สุดที่เห็นการลดลงของ WCSS อย่างมีนัยสำคัญ
from sklearn. cluster import KMeans
wcss = [ ]
for i in range ( 1 , 11 ) :
kmeans = KMeans( n_clusters= i, random_state= 1 )
kmeans. fit( uber_data[ [ 'Lat' , 'Lon' ] ] )
wcss. append( kmeans. inertia_)
plt. figure( figsize= ( 12 , 5 ) )
plt. plot( range ( 1 , 11 ) , wcss)
plt. title( 'Elbow Method' , fontsize= 25 )
plt. xlabel( 'Number of clusters' , fontsize= 18 )
plt. ylabel( 'WCSS' , fontsize= 18 )
plt. xticks( ticks= list ( range ( 1 , 11 ) ) ,
labels= [ '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' ] )
plt. show( ) ขับเคลื่อนโดย
กรณีนี้ จำนวนคลัสเตอร์ที่เหมาะสมที่สุดคือ 7 มาลองใช้ค่านี้เพื่อฝึกโมเดลและทำนายหมายเลขคลัสเตอร์สำหรับจุดรับผู้โดยสารแต่ละจุด จากนั้นจะแสดงข้อมูลอีกครั้งโดยเพิ่มตำแหน่งของเซนทรอยด์ทั้งเจ็ด:
kmeans = KMeans( n_clusters= 7 , random_state= 1 )
kmeans. fit_predict( df[ [ 'Lat' , 'Lon' ] ] )
plt. scatter( uber_data. iloc[ : , 2 ] , uber_data. iloc[ : , 1 ] )
plt. scatter( kmeans. cluster_centers_[ : , 1 ] , kmeans. cluster_centers_[ : , 0 ] , s= 100 , c= 'lime' )
plt. show( ) ขับเคลื่อนโดย
ต่อไปจะดึงพิกัดที่แน่นอนของเซนทรอยด์ทั้งหมดและแสดงแยกต่างหากโดยไม่รวมตัวข้อมูล:
centroids = pd. DataFrame( kmeans. cluster_centers_)
centroids. columns = [ 'Lat' , 'Lon' ]
print ( centroids)
plt. scatter( centroids[ 'Lon' ] , centroids[ 'Lat' ] )
plt. show( ) ขับเคลื่อนโดย
Lat Lon
0 40.688588 - 73.965694
1 40.765423 - 73.973165
2 40.788001 - 73.879858
3 40.656997 - 73.780035
4 40.731074 - 73.998644
5 40.700541 - 74.201673
6 40.971229 - 73.611288 ขับเคลื่อนโดย
จะแสดงให้เข้าใจง่ายขึ้นหากวางเซนทรอยด์เหล่านี้บนแผนที่นครนิวยอร์ก:
import folium
centroids_values = centroids. values. tolist( )
nyc_map = folium. Map( location= [ 40.79659011772687 , - 73.87341741832425 ] , zoom_start= 50000 )
for point in range ( 0 , len ( centroids_values) ) :
folium. Marker( centroids_values[ point] , popup= centroids_values[ point] ) . add_to( nyc_map)
nyc_mapขับเคลื่อนโดย
ด้วยโมเดลของเรา เราสามารถทำนายคลัสเตอร์ที่ใกล้ที่สุดสำหรับตำแหน่งใด ๆ ในนิวยอร์กที่ระบุด้วยพิกัดภูมิศาสตร์ ในทางปฏิบัติหมายถึง Uber จะส่งแท็กซี่ที่ว่างจากตำแหน่งที่ใกล้ที่สุดและให้บริการลูกค้าได้เร็วขึ้น
ลองหาคลัสเตอร์ที่ใกล้ที่สุดสำหรับ Lincoln Center for the Performing Arts ในเขตแมนฮัตตัน:
lincoln_center = [ ( 40.7725 , - 73.9835 ) ]
kmeans. predict( lincoln_center) ขับเคลื่อนโดย
array( [ 1 ] ) ขับเคลื่อนโดย
และสำหรับ Howard Beach ในเขตควีนส์:
howard_beach = [ ( 40.6571 , - 73.8430 ) ]
kmeans. predict( howard_beach) ขับเคลื่อนโดย
array( [ 3 ] ) ขับเคลื่อนโดย
แนวทางต่อไป อาจลองใช้อัลกอริทึมจัดกลุ่มแบบอื่น วิเคราะห์สไลซ์ของข้อมูลที่ต่างกัน (ตามชั่วโมง/วันในสัปดาห์/เดือน) หาโหลดมากสุดและน้อยสุดของแต่ละคลัสเตอร์ หรือศึกษา ความสัมพันธ์ระหว่างคลัสเตอร์ที่พบกับตัวแปร Base ในดาต้าเฟรม
กรณีใช้งานอื่นที่พบบ่อยในขนส่งและโลจิสติกส์:
การกำหนดราคาระบบไดนามิกเพื่อจับคู่ดีมานด์-ซัพพลาย
การพยากรณ์ความต้องการ
การทำงานอัตโนมัติแทนงานมือ
ยานยนต์ขับเคลื่อนอัตโนมัติ
การมองเห็นซัพพลายเชน
การตรวจจับความเสียหาย
การจัดการคลังสินค้า
การวิเคราะห์ความรู้สึกลูกค้า
แชตบอตบริการลูกค้า
วิทยาศาสตร์ข้อมูลในโทรคมนาคม
ในสองสามทศวรรษที่ผ่านมา เทคโนโลยีโทรคมนาคมเติบโตอย่างรวดเร็วและเข้าสู่ระยะใหม่ ทุกวันนี้เราถูกโอบล้อมด้วยอุปกรณ์อิเล็กทรอนิกส์นานาชนิด และหลายคนพึ่งพาอินเทอร์เน็ตอย่างแท้จริง โดยเฉพาะโซเชียลเน็ตเวิร์กและแอปส่งข้อความ บางครั้งการเสพติดอุปกรณ์ถูกวิจารณ์ว่ามาแทนที่การสื่อสารแบบพบหน้า ทว่าเราต้องยอมรับว่าโทรคมนาคมทำให้ชีวิตง่ายขึ้นมาก เปิดโอกาสให้เชื่อมต่อกับผู้คนทั่วโลกภายในไม่กี่วินาที
สิ่งนี้ยิ่งจริงช่วงการแพร่ระบาดของโควิด-19 เมื่อหลายบริษัทและโรงเรียนหันไปทำงาน/เรียนทางไกล ในความเป็นจริงที่เปลี่ยนเร็วเช่นนี้ คุณภาพและความราบรื่นของการเชื่อมต่อดิจิทัลมีความสำคัญอย่างไม่เคยมีมาก่อน ช่วงล็อกดาวน์ทำให้ผู้คนต้องโทรและส่งข้อความหาผู้ร่วมงาน ญาติ และเพื่อน มากกว่าก่อน แนวโน้มใหม่เหล่านี้นำไปสู่ปริมาณการสื่อสารที่เพิ่มขึ้นมหาศาล ซึ่งสร้างข้อมูลจำนวนมหาศาลในอุตสาหกรรมนี้
การใช้วิธีวิทยาศาสตร์ข้อมูลเพื่อต่อยอดจากข้อมูลที่สะสมช่วยอุตสาหกรรมโทรคมนาคมได้หลายทาง:
ทำให้กระบวนการลื่นไหล
ปรับเครือข่ายให้เหมาะสม
กรองสแปม
ปรับปรุงการรับส่งข้อมูล
วิเคราะห์แบบเรียลไทม์
พัฒนากลยุทธ์ธุรกิจที่มีประสิทธิภาพ
สร้างแคมเปญการตลาดที่ได้ผล
เพิ่มรายได้
ลองเจาะลึกภารกิจทั่วไปในโทรคมนาคมที่เกี่ยวข้องกับการตรวจจับและกรองข้อความที่ไม่ต้องการ
กรณีใช้งานในโทรคมนาคม: สร้างตัวกรองสแปม
การกรองสแปมเป็นฟังก์ชันสำคัญของช่องทางสื่อสารแบบตัวอักษรสมัยใหม่ เพราะช่วยป้องกันไม่ให้ถูกถล่มด้วยอีเมลรายวันพยายามหลอกเอาเงิน ในทางเทคนิค นี่เป็นอีกตัวอย่างของปัญหาการจัดหมวดหมู่ โดยอาศัยข้อมูลในอดีต ข้อความใหม่แต่ละข้อความจะถูกติดป้ายว่า ham (ข้อความปกติ) แล้วส่งตรงถึงผู้รับ หรือป้ายว่า spam แล้วถูกบล็อกหรือส่งเข้ากล่องสแปม
อัลกอริทึมแมชชีนเลิร์นนิงแบบกำกับที่นิยมสำหรับงานนี้คือตัวจัดหมวดหมู่ Naive Bayes ตั้งอยู่บนทฤษฎีเบส์ โดย "naive" สื่อถึงสมมติฐานว่าคำทุกคำในข้อความเป็นอิสระต่อกัน สมมติฐานนี้ไม่ถูกต้องนักเพราะมองข้ามบริบทและความสัมพันธ์เชิงความหมายของคำ อย่างไรก็ดี ในงานจัดหมวดหมู่ข้อความที่ข้อมูลไม่มาก วิธีนี้มักได้ผลและทำนายได้แม่น
Naive Bayes มีหลายเวอร์ชัน แต่ละแบบมีกรณีใช้งานที่เหมาะสม: multinomial, Bernoulli, Gaussian และ flexible Bayes สำหรับการตรวจจับสแปม เหมาะที่สุดคือ multinomial Naive Bayes ซึ่งอาศัยการนับความถี่แบบไม่ต่อเนื่องของคุณลักษณะเชิงหมวดหมู่หรือค่าต่อเนื่องที่แทนจำนวนคำในแต่ละข้อความ
มาลองใช้ multinomial Naive Bayes กับ ชุดข้อมูล SMS Spam Collection จาก UCI Machine Learning Repository
import pandas as pd
sms_data = pd. read_csv( 'SMSSpamCollection' , sep= '\t' , header= None , names= [ 'Label' , 'SMS' ] )
print ( f'Number of messages: { sms_data. shape[ 0 ] : , } \n\n'
f' { sms_data. head( ) } ' ) ขับเคลื่อนโดย
Number of messages: 5 , 572
Label SMS
0 ham Go until jurong point, crazy. . Available only . . .
1 ham Ok lar. . . Joking wif u oni. . .
2 spam Free entry in 2 a wkly comp to win FA Cup fina. . .
3 ham U dun say so early hor. . . U c already then say. . .
4 ham Nah I don't think he goes to usf, he lives aro. . . ขับเคลื่อนโดย
มีข้อความที่มนุษย์จัดหมวดหมู่ไว้ 5,572 ข้อความ กี่เปอร์เซ็นต์เป็นสแปม?
round ( sms_data[ 'Label' ] . value_counts( ) * 100 / len ( sms_data) ) . convert_dtypes( ) ขับเคลื่อนโดย
ham 87
spam 13
Name: Label, dtype: Int64ขับเคลื่อนโดย
13% ของ SMS ถูกระบุด้วยมือว่าเป็นสแปม
เพื่อเตรียมข้อมูลสำหรับ multinomial Naive Bayes ต้องทำขั้นตอนต่อไปนี้ก่อน:
เข้ารหัสป้ายกำกับจากสตริงเป็นตัวเลข กรณีนี้เป็นไบนารี จึงเข้ารหัสเป็น 0/1
แยกตัวแปรทำนายและตัวแปรเป้าหมาย
แบ่งข้อมูลเป็นชุดฝึกและทดสอบ
แปลงสตริงในคอลัมน์ SMS ของชุดฝึกและทดสอบของตัวทำนายเป็นเมทริกซ์แบบ CSR (compressed sparse row)
ขั้นที่ 4 ต้องอธิบายเพิ่ม จะสร้างออบเจ็กต์เมทริกซ์ ฝังพจนานุกรมคำศัพท์ (คำที่ไม่ซ้ำทั้งหมดจากข้อความในชุดฝึกของตัวทำนายพร้อมความถี่) แล้วแปลงชุดฝึกและทดสอบของตัวทำนายเป็นเมทริกซ์ ผลลัพธ์คือเมทริกซ์สองชุดสำหรับชุดฝึกและชุดทดสอบของตัวทำนาย โดยคอลัมน์สอดคล้องกับแต่ละคำที่ไม่ซ้ำจากข้อความทั้งหมดของชุดฝึก แถวสอดคล้องกับข้อความแต่ละข้อความ และค่าคือจำนวนครั้งที่คำปรากฏในข้อความนั้น
from sklearn. model_selection import train_test_split
from sklearn. feature_extraction. text import CountVectorizer
sms_data = sms_data. replace( 'ham' , 0 ) . replace( 'spam' , 1 )
X = sms_data[ 'SMS' ] . values
y = sms_data[ 'Label' ] . values
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size= 0.2 , random_state= 1 )
cv = CountVectorizer( max_df= 0.95 )
cv. fit( X_train)
X_train_csr_matrix = cv. transform( X_train)
X_test_csr_matrix = cv. transform( X_test) ขับเคลื่อนโดย
ถัดไปจะสร้างตัวจัดหมวดหมู่ multinomial Naive Bayes ด้วยพารามิเตอร์เริ่มต้นและตรวจสอบความแม่นยำ:
from sklearn. naive_bayes import MultinomialNB
from sklearn. metrics import accuracy_score, f1_score
clf = MultinomialNB( )
clf. fit( X_train_csr_matrix, y_train)
predictions = clf. predict( X_test_csr_matrix)
print ( f'Model accuracy:\n'
f'Accuracy score: { accuracy_score( y_test, predictions) : .3f } \n'
f'F1-score: { f1_score( y_test, predictions) : .3f } \n' ) ขับเคลื่อนโดย
Model accuracy:
Accuracy score: 0.990
F1- score: 0.962 ขับเคลื่อนโดย
ผลลัพธ์คือเราได้ตัวกรองสแปมที่มีความแม่นยำสูง
แนวทางต่อไป อาจลองวิธีแบ่ง train/test อื่น ๆ เพื่อปรับปรุงกระบวนการเวกเตอร์ไรซ์ด้วยการปรับพารามิเตอร์มากมายของมัน (เช่น ค่าตัดสำหรับคำที่พบบ่อยเกินไปทั้งในสแปมและแฮม) ตรวจสอบกรณีที่พบได้ยากซึ่งตัวจัดหมวดหมู่ทำนายผิดและทำความเข้าใจสาเหตุ นอกจากนี้ยังสามารถแสดงคำที่พบบ่อยในสแปมและแฮมด้วยวิธีอย่าง word cloud (หลังทำความสะอาดข้อมูลและตัดคำหยุดหรือคำที่ให้ข้อมูลต่ำออก) สุดท้ายลองใช้อัลกอริทึมแมชชีน/ดีพลเลิร์นนิงอื่น (SVM ต้นไม้ตัดสินใจ โครงข่ายประสาท) แล้วเปรียบเทียบกับ Naive Bayes
กรณีใช้งานอื่นที่พบบ่อยในโทรคมนาคม:
การแบ่งกลุ่มลูกค้า
การพัฒนาผลิตภัณฑ์
การวิเคราะห์บันทึกรายละเอียดการโทร
ระบบแนะนำ
การพยากรณ์การยกเลิกใช้บริการของลูกค้า
การทำการตลาดแบบเจาะจงเป้าหมาย
การตรวจจับการทุจริต
การจัดการและเพิ่มประสิทธิภาพเครือข่าย
เพิ่มความปลอดภัยของเครือข่าย
การปรับราคาให้เหมาะสม
การพยากรณ์มูลค่าตลอดอายุลูกค้า
กรณีศึกษาวิทยาศาสตร์ข้อมูล: คอร์สเรียน
ตลอดมาจนถึงตอนนี้ เราได้สำรวจการประยุกต์ใช้วิทยาศาสตร์ข้อมูลในหลายสาขาอย่างละเอียด หากกำลังอยากเรียนรู้กรณีใช้งานเพิ่มเติมบนชุดข้อมูลจริง และอยากนำความรู้และทักษะทางเทคนิคใหม่ไปแก้ปัญหาเชิงปฏิบัติในสายงานของตน ต่อไปนี้คือคอร์สสั้นระดับเริ่มต้นเกี่ยวกับกรณีศึกษาวิทยาศาสตร์ข้อมูลที่น่าจะเป็นประโยชน์:
Case Study: School Budgeting with Machine Learning in Python ในคอร์สที่อ้างอิงกรณีศึกษาจากการแข่งขันแมชชีนเลิร์นนิงบน DrivenData นี้ คุณจะได้สำรวจปัญหาเกี่ยวกับงบประมาณเขตการศึกษา และวิธีทำให้โรงเรียนเปรียบเทียบการใช้จ่ายกับที่อื่นได้ง่ายและเร็วขึ้น โดยใช้เทคนิคภาษาธรรมชาติบางส่วน คุณจะเตรียมงบประมาณของโรงเรียนและสร้างโมเดลเพื่อจัดหมวดหมู่รายการโดยอัตโนมัติ เริ่มจากเวอร์ชันง่ายแล้วค่อย ๆ ไปสู่ขั้นสูง นอกจากนี้ยังสามารถดูและวิเคราะห์วิธีของผู้ชนะการแข่งขัน รวมถึงดูผลงานของผู้เข้าร่วมรายอื่น
Analyzing Marketing Campaigns with pandas Pandas เป็นไลบรารีที่ได้รับความนิยมที่สุดของ Python และการพัฒนาทักษะการใช้เครื่องมือของมันอย่างแข็งแรงเป็นสิ่งจำเป็นสำหรับนักวิทยาศาสตร์ข้อมูล ในคอร์สเชิงปฏิบัติสูงนี้ คุณจะต่อยอดพื้นฐาน Python และ pandas (เพิ่มคอลัมน์ใหม่ ผสาน/ตัดชุดข้อมูล ทำงานกับคอลัมน์วันที่ แสดงผลด้วย matplotlib) โดยใช้ข้อมูลการตลาดสมมติของธุรกิจสมัครสมาชิกออนไลน์ คุณจะฝึกแปลงคำถามการตลาดทั่วไปเป็นค่าที่วัดได้ เช่น "แคมเปญนี้ทำผลงานอย่างไร?" "ทำไมช่องทางหนึ่งถึงทำผลงานต่ำ?" "ช่องทางไหนส่งลูกค้ามากที่สุด?" เป็นต้น
Analyzing US Census Data in Python ในคอร์สนี้ คุณจะเรียนรู้การนำทาง Decennial Census และ American Community Survey รายปีอย่างง่าย และดึงข้อมูลประชากรและสังคมเศรษฐกิจต่าง ๆ เช่น รายได้ครัวเรือน การเดินทาง เชื้อชาติ และโครงสร้างครอบครัว คุณจะใช้ Python เพื่อเรียกข้อมูลสำหรับภูมิศาสตร์ต่าง ๆ จาก Census API และใช้ไลบรารี pandas จัดการข้อมูลที่เก็บมาเพื่อดึงอินไซต์ที่มีความหมาย นอกจากนี้คุณยังจะฝึกทำแผนที่ด้วยไลบรารี geopandas
Case Study: Exploratory Data Analysis in R คอร์สสั้นนี้เหมาะหากมีพื้นฐานการจัดการและการแสดงผลข้อมูลใน R อยู่แล้ว เรียนคอร์สนี้คุณจะลองใช้ทักษะกับชุดข้อมูลจริงเพื่อสำรวจข้อมูลการลงมติของสมัชชาใหญ่แห่งสหประชาชาติในอดีต โดยเฉพาะจะวิเคราะห์แนวโน้มการลงมติระหว่างประเทศ ตามช่วงเวลา และประเด็นระหว่างประเทศ กรณีศึกษานี้จะทำให้คุณได้ทำ EDA ตั้งแต่ต้นจนจบ ฝึกใช้แพ็คเกจ dplyr และ ggplot2 มากขึ้น และเรียนรู้ทักษะใหม่
Human Resources Analytics: Exploring Employee Data in R R เป็นที่รู้จักว่าถูกปรับให้เหมาะกับการวิเคราะห์เชิงสถิติมากกว่า Python ในคอร์สนี้ คุณจะใช้ข้อได้เปรียบของ R เพื่อจัดการ แสดงผล และทดสอบสถิติกับชุดกรณีศึกษาด้าน HR เทคนิควิทยาศาสตร์ข้อมูลเพิ่งปรากฏในภาคทรัพยากรบุคคลไม่นาน แต่ปัจจุบันมีแนวโน้มที่ดีเพราะหลายบริษัทพึ่งพาฝ่าย HR มากขึ้นในการให้ข้อมูลเชิงลึกและข้อแนะนำที่นำไปใช้ได้จริงจากฐานข้อมูลพนักงาน
Data-Driven Decision Making in SQL ในคอร์สนี้ คุณจะได้เรียนรู้การใช้ SQL สนับสนุนการตัดสินใจและรายงานผลต่อผู้บริหาร กรณีศึกษามุ่งไปที่บริษัทให้เช่าหนังออนไลน์ที่มีฐานข้อมูลลูกค้า เรตติ้งภาพยนตร์ ข้อมูลพื้นหลังนักแสดง ฯลฯ งานบางส่วนคือใช้คิวรี SQL เพื่อศึกษาความชอบของลูกค้า การมีส่วนร่วม และการพัฒนาการขาย คุณจะได้เรียนรู้ส่วนขยาย SQL สำหรับการประมวลผลเชิงวิเคราะห์ออนไลน์ที่ช่วยดึงอินไซต์สำคัญจากข้อมูลหลายมิติที่ซับซ้อน
ไม่ว่าจะต้องการเป็นผู้เชี่ยวชาญระดับสูงด้านวิทยาศาสตร์ข้อมูล หรือเพียงต้องการเรียนทักษะการโค้ดที่เป็นประโยชน์เพื่อดึงอินไซต์ที่ขับเคลื่อนด้วยข้อมูลในสาขาของตน ทรัพยากรข้างต้นเป็นจุดเริ่มต้นที่ดี
บทสรุป
สรุปแล้ว บทความนี้ได้สำรวจว่าวิทยาศาสตร์ข้อมูลคืออะไรในหลายมุมมอง แตกต่างจากการวิเคราะห์ข้อมูลอย่างไร ใช้ได้ในสาขาใดบ้าง กรณีการใช้งานคืออะไร และโรดแมปทั่วไปเพื่อแก้ไขให้สำเร็จ กล่าวถึงอย่างเจาะจงว่าวิทยาศาสตร์ข้อมูลมีประโยชน์ต่อภารกิจจริงในบางอุตสาหกรรมที่มีความต้องการสูงอย่างไร ขณะร่ายยาวถึงการประยุกต์ใช้ที่มีอยู่และที่เป็นไปได้ เรามุ่งเน้นกรณีใช้งานที่พบบ่อยที่สุดในแต่ละสาขายอดนิยม และสาธิตวิธีแก้ด้วยอัลกอริทึมด้านวิทยาศาสตร์และการวิเคราะห์ข้อมูล หากต้องการเรียนรู้กรณีใช้งานในอุตสาหกรรมอื่น โปรดชมบทความของเราเรื่อง แบงก์กิ้ง การตลาด และ การขาย ท้ายที่สุด เรายังได้ทบทวนคอร์สออนไลน์ที่เป็นประโยชน์หลายคอร์สสำหรับเจาะลึกกรณีศึกษาอื่น ๆ ในวิทยาศาสตร์ข้อมูล
ข้อสังเกตสุดท้ายที่น่าสนใจ: ไม่มีภาคส่วนใดที่เราพิจารณาในงานนี้ที่เป็นเรื่องใหม่ทั้งหมด บางภาคส่วนเช่นการแพทย์และการขายมีมานานเป็นศตวรรษ ตลอดประวัติศาสตร์ของพวกเขา นานก่อนยุคดิจิทัลทั่วโลก ข้อมูลจากอุตสาหกรรมเหล่านี้ก็ถูกเก็บในรูปแบบต่าง ๆ เขียนไว้ในหนังสือและเอกสาร เก็บในคลังและห้องสมุด สิ่งที่เปลี่ยนแปลงอย่างมากในไม่กี่ปีที่ผ่านมาพร้อมเทคโนโลยีใหม่คือความเข้าใจอย่างพื้นฐานถึงศักยภาพมหาศาลที่ซ่อนอยู่ในข้อมูลทุกชนิด และความสำคัญยิ่งของการบันทึก รวบรวม และเก็บรักษามันอย่างเหมาะสม การทุ่มเทความพยายามและพัฒนาระบบจัดการข้อมูลอย่างต่อเนื่องทำให้สามารถสะสมบิ๊กดาต้าในทุกอุตสาหกรรมเพื่อการวิเคราะห์และการพยากรณ์ต่อไป
วิทยาศาสตร์ข้อมูล: คำจำกัดความและการประยุกต์ใช้งานจริง
วิทยาศาสตร์ข้อมูล เป็นสาขาวิชาที่เกิดขึ้นไม่นานแต่เติบโตอย่างรวดเร็วและมีหลายมิติ ใช้ในหลายแวดวง โดยอาศัยเทคนิคการวิเคราะห์ขั้นสูงและอัลกอริทึมเชิงพยากรณ์เพื่อดึงเอาองค์ความรู้ที่มีความหมายจากข้อมูล มาช่วยตอบคำถามเชิงกลยุทธ์ทางธุรกิจหรือวิทยาศาสตร์ วิทยาศาสตร์ข้อมูลผสานทักษะหลากหลาย ตั้งแต่ทักษะเชิงเทคนิค (การเขียนโปรแกรม พีชคณิตเชิงเส้น สถิติ และการสร้างแบบจำลอง) ไปจนถึงทักษะที่ไม่ใช่เทคนิค (การสื่อสารและถ่ายทอดผลอย่างมีประสิทธิภาพ) นอกจากนี้ ขึ้นอยู่กับอุตสาหกรรมที่นำวิทยาศาสตร์ข้อมูลไปใช้ จำเป็นต้องมีความรู้เฉพาะโดเมนที่แข็งแรงเพื่อให้ตีความข้อมูลและข้อค้นพบได้อย่างถูกต้อง
อัลกอริทึมด้านวิทยาศาสตร์ข้อมูลสามารถประยุกต์ใช้ได้สำเร็จในบริบทที่มีหรือสามารถเก็บข้อมูลได้จำนวนมาก: การเงิน พาณิชย์ การตลาด การบริหารโครงการ ประกันภัย การแพทย์ การศึกษา การผลิต ทรัพยากรบุคคล ภาษาศาสตร์ สังคมวิทยา ฯลฯ แทบทุกอุตสาหกรรมหรือศาสตร์ใด ๆ ล้วนได้ประโยชน์อย่างมากจากการรวบรวม เก็บ วิเคราะห์ และทำแบบจำลองข้อมูลของตน
กรณีการใช้งานวิทยาศาสตร์ข้อมูลคืออะไร?
กรณีการใช้งานวิทยาศาสตร์ข้อมูลคือภารกิจจริงในโลกความเป็นจริงที่ต้องแก้ด้วยข้อมูลที่มีอยู่ ภายใต้กรอบของบริษัทหนึ่ง ๆ จะวิเคราะห์ตัวแปรมากมายด้วยเทคนิควิทยาศาสตร์ข้อมูลในบริบทของอุตสาหกรรมเฉพาะของบริษัท กรณีการใช้งานอาจเป็นปัญหาที่ต้องแก้ ข้อสันนิษฐานที่ต้องตรวจสอบ หรือคำถามที่ต้องการคำตอบ แก่นแท้ของการทำวิทยาศาสตร์ข้อมูลก็คือการแก้โจทย์ใช้จริงเหล่านี้
แม้เนื้อหาของแต่ละกรณีจะต่างกันมาก แต่ก็มีสิ่งร่วมที่ควรคำนึงเสมอ:
จะแก้โจทย์กรณีศึกษาในวิทยาศาสตร์ข้อมูลอย่างไร?
คำตอบขึ้นอยู่กับแต่ละกรณี ถูกขับเคลื่อนโดยกลยุทธ์ธุรกิจของบริษัท และขึ้นกับแก่นของกรณีศึกษาเอง อย่างไรก็ตาม การวางโรดแมปทั่วไปเพื่อใช้กับทุกกรณีใช้งานอาจช่วยได้:
กรณีการใช้งานวิทยาศาสตร์ข้อมูลตามอุตสาหกรรม
กรณีการใช้งานวิทยาศาสตร์ข้อมูลเกี่ยวข้องได้แทบทุกอุตสาหกรรมที่มีหรือสามารถสะสมข้อมูลจำนวนมาก บทนี้จะกล่าวถึงกรณีใช้งานที่พบบ่อยในสาขาที่มีความต้องการสูง ได้แก่ โลจิสติกส์ การดูแลสุขภาพ และโทรคมนาคม บางกรณีใช้งานเป็นแบบสหวิทยาการและพบได้ในหลายแวดวง ทำให้มีความเป็นสากลและประยุกต์ใช้ได้กว้าง จึงควรรู้แนวทางโดยรวมในการแก้ นอกจากนี้ สำหรับแต่ละอุตสาหกรรมที่เลือก จะยกหัวข้ออื่น ๆ ที่สามารถทำแบบจำลองด้วยวิธีวิทยาศาสตร์ข้อมูลได้
วิทยาศาสตร์ข้อมูลในด้านสุขภาพ
สามบทก่อนหน้าเราได้กล่าวถึงวิธีที่วิทยาศาสตร์ข้อมูลช่วยให้บริษัทจากอุตสาหกรรมต่าง ๆ เพิ่มรายได้ สำหรับภาคสุขภาพ การใช้และตีความข้อมูลที่มีอย่างถูกต้องไม่เพียงเป็นประโยชน์กับนักการตลาดของภาคส่วนนี้เท่านั้น แต่ยังช่วยวินิจฉัยโรคร้ายได้ทันท่วงที และอาจช่วยชีวิตผู้คนได้ด้วย
การแพทย์และผู้ให้บริการสุขภาพเก็บข้อมูลจำนวนมหาศาลจากหลายแหล่ง: ระบบเวชระเบียนอิเล็กทรอนิกส์ (EHR) ข้อมูลจากอุปกรณ์สวมใส่ งานวิจัยทางการแพทย์ และเอกสารการเรียกเก็บเงิน การใช้ประโยชน์จากเทคนิควิทยาศาสตร์ข้อมูลและการวิเคราะห์ข้อมูลเชิงนวัตกรรมกำลังเปลี่ยนโฉมทั้งอุตสาหกรรมสุขภาพ มอบแนวทางแก้ที่ทรงพลังและมีผลกระทบต่อการพัฒนาในอนาคต โดยเฉพาะบางสาขาเฉพาะทาง เช่น พันธุศาสตร์ เวชศาสตร์การเจริญพันธุ์ มะเร็งวิทยา เทคโนโลยีชีวภาพ รังสีวิทยา การวินิจฉัยเชิงพยากรณ์ และเภสัชกรรม ต่างยกระดับขึ้นอย่างมากจากการปลดล็อกศักยภาพของข้อมูล
เพื่อให้เห็นภาพชัดขึ้นว่าดาต้าไซเอนซ์มีคุณค่าในทางการแพทย์อย่างไร ลองโฟกัสที่หนึ่งในกรณีใช้งานคลาสสิก
กรณีใช้งานในสุขภาพ: การพยากรณ์มะเร็งเต้านม
ตามข้อมูลของ World Cancer Research Fund International มะเร็งเต้านมเป็นมะเร็งที่พบบ่อยที่สุดในสตรี และเป็นชนิดที่พบบ่อยเป็นอันดับสองโดยรวม การวินิจฉัยพยาธิสภาพของเต้านมให้ทันท่วงที ไม่ว่าจะเป็นเนื้องอกธรรมดาหรือร้ายแรง สำคัญยิ่ง เพราะเพิ่มโอกาสการรักษาให้สำเร็จและอัตรารอดชีวิต นี่คือจุดที่วิทยาศาสตร์ข้อมูลเข้ามาช่วย
ความก้าวหน้าของวิธีทำเหมืองข้อมูลควบคู่กับอัลกอริทึมเรียนรู้ของเครื่องทำให้สามารถพยากรณ์ความเสี่ยงของมะเร็งเต้านม ตรวจจับความผิดปกติระยะเริ่มแรก ประเมินพลวัต และวางแผนต่อสู้โรคได้ดีที่สุด โดยแก่นแท้แล้วนี่คือปัญหาการจัดหมวดหมู่ของแมชชีนเลิร์นนิง ข่าวดีก็คือเพราะมะเร็งชนิดนี้พบได้ค่อนข้างมาก จึงมีงานศึกษาละเอียดจำนวนมากทั่วโลก และสะสมข้อมูลจากผู้ป่วยมากมาย
ประเด็นหลักของการใช้ชุดข้อมูลดังกล่าวกับตัวจัดหมวดหมู่คือความไม่สมดุลอย่างรุนแรง ตัวอย่างเช่น เมื่อผลลัพธ์อยู่ในรูป มีมะเร็ง/ไม่มีมะเร็ง ความน่าจะเป็นของการมีพยาธิสภาพ (ระเบียนในคลาสส่วนน้อย) ต่ำกว่าการไม่มีพยาธิสภาพ (ระเบียนในคลาสส่วนใหญ่) อย่างมาก ส่งผลให้อัลกอริทึมโน้มเอียงไปจัดกรณีใหม่เป็นไม่พบพยาธิสภาพ ดังนั้นการประเมินความแม่นยำของแบบจำลองประเภทนี้ให้มีประสิทธิภาพ ควรใช้ค่า F1-score เป็นเมตริก เพราะประเมินกรณีบวกลวง (ความคลาดเคลื่อนชนิดที่ I) และลบลวง (ความคลาดเคลื่อนชนิดที่ II) แทนการนับเฉพาะกรณีที่จัดถูกต้อง
ลองดูชุดข้อมูลจริงเรื่อง มะเร็งเต้านม จากรัฐหนึ่งของสหรัฐฯ คุณลักษณะต่าง ๆ อธิบายไว้ละเอียดในเอกสาร แต่โดยสรุปคือค่าเฉลี่ย ค่าเบี่ยงเบนมาตรฐาน และค่าสูงสุดของแอตทริบิวต์จากแต่ละภาพดิจิทัลที่แสดงนิวเคลียสของเซลล์จากก้อนเนื้อเต้านมของผู้หญิง แต่ละระเบียนในชุดข้อมูลสอดคล้องกับสตรีที่มีเนื้องอกชนิดร้ายหรือไม่ร้าย (กล่าวคือผู้หญิงทั้งหมดในชุดนี้มีเนื้องอกบางชนิด) แอตทริบิวต์รวมถึงรัศมีของเซลล์ เนื้อสัมผัส ความเรียบ ความกะทัดรัด ความเว้า ความสมมาตร ฯลฯ
มาลองลบคอลัมน์สุดท้ายที่มีแต่ค่าว่างกัน:
ผู้หญิงกี่เปอร์เซ็นต์ที่ได้รับการยืนยันว่าเป็นมะเร็ง (เนื้องอกเต้านมชนิดร้าย)?
37% ของผู้ตอบทั้งหมดเป็นมะเร็งเต้านม ดังนั้นชุดข้อมูลจึงค่อนข้างสมดุล
เนื่องจากค่าของตัวแปรการวินิจฉัยเป็นเชิงหมวดหมู่ จึงต้องเข้ารหัสให้เป็นตัวเลขเพื่อใช้กับแมชชีนเลิร์นนิง ก่อนทำเช่นนั้น แยกข้อมูลเป็นตัวแปรทำนายและตัวแปรเป้าหมาย diagnosis ก่อน:
ต่อไป แบ่งชุด train/test แล้วทำการสเกลคุณลักษณะ:
เพื่อจำลองข้อมูลของเรา จะใช้อัลกอริทึมเริ่มต้นสองแบบ: k-nearest neighbors (KNN) และลอจิสติกรีเกรสชัน:
ก่อนหน้านี้เห็นว่าชุดข้อมูลค่อนข้างสมดุล จึงใช้เมตริก accuracy score เพื่อระบุแบบจำลองที่แม่นยำที่สุด:
จากข้อมูลของเรา แบบจำลองลอจิสติกรีเกรสชันทำผลงานได้ดีที่สุดในการทำนายเนื้องอกเต้านมชนิดร้าย/ไม่ร้ายสำหรับสตรีที่ตรวจพบพยาธิสภาพใด ๆ
แนวทางต่อไป เนื่องจากอัลกอริทึมลอจิสติกรีเกรสชันไม่มีพารามิเตอร์สำคัญให้ปรับมากนัก อาจลองปรับวิธีแบ่ง train/test และ/หรือทดลองเทคนิคการพยากรณ์แบบอื่น
กรณีใช้งานอื่นที่พบบ่อยในสุขภาพ:
วิทยาศาสตร์ข้อมูลในด้านขนส่งและโลจิสติกส์
โลจิสติกส์คือการจัดการกระบวนการส่งมอบสินค้าจากจุดหนึ่งไปยังอีกจุดหนึ่ง ส่วนการขนส่งคือการขนย้ายผู้โดยสารหรือสินค้า ขึ้นอยู่กับลักษณะธุรกิจของบริษัท (เช่น ส่งอาหาร ไปรษณีย์ ขนส่งระหว่างประเทศ สายการบิน บริการแท็กซี่หรือรถบัส) แหล่งข้อมูลอาจเป็นตารางเวลา ไทม์ชีต รายละเอียดเส้นทาง รายการสต็อกคลังสินค้า รายงาน สัญญา เอกสารทางกฎหมาย และข้อเสนอแนะจากลูกค้า ตัวข้อมูลอาจมีโครงสร้างหรือไม่มีก็ได้ และรวมถึงเวลา เส้นทาง พิกัด ข้อมูลลูกค้า รายละเอียดสินค้า ต้นทุนและราคา
ประสิทธิภาพธุรกิจในซัพพลายเชนและภาคขนส่งไม่ได้ตรงไปตรงมาเสมอไป และขึ้นอยู่กับปัจจัยมากมาย: ปัญหาการจราจรที่ไม่คาดคิด คุณภาพเส้นทาง สภาพอากาศ เหตุฉุกเฉิน ความผันผวนของราคาน้ำมัน การขาดแคลนสต็อก ความเสียหายทางเทคนิค ความล่าช้าเกี่ยวกับความปลอดภัย กฎระเบียบและมาตรการคว่ำบาตรของรัฐ ฯลฯ อีกทั้งช่วงไม่กี่ปีมีผู้เล่นรายใหม่เกิดขึ้นมาก ทำให้การแข่งขันรุนแรงยิ่งขึ้น ดังนั้นเพื่อก้าวทันคู่แข่งและเพิ่มผลิตภาพการปฏิบัติงาน บริษัทโลจิสติกส์/ขนส่งจึงจำเป็นต้องวิเคราะห์บิ๊กดาต้าและแปลงเป็นอินไซต์ที่มีความหมาย
วิทยาศาสตร์ข้อมูลช่วยภาคขนส่งและโลจิสติกส์ได้อย่างไรบ้าง ต่อไปนี้คือรายการการประยุกต์ใช้ที่ยังไม่ครบถ้วน:
กรณีใช้งานในขนส่งและโลจิสติกส์: ระบุตำแหน่งที่เหมาะสมที่สุดของรถแท็กซี่
Uber Technologies Inc. หรือ Uber เป็นบริษัทอเมริกันที่ให้บริการด้านโลจิสติกส์และขนส่งหลากหลาย กรณีศึกษานี้จะจัดกลุ่มข้อมูล GPS ของการแชร์การเดินทางของ Uber เพื่อระบุตำแหน่งที่เหมาะสมที่สุดของรถแท็กซี่ โดยเฉพาะมีประโยชน์ดังนี้:
เราจะใช้ชุดข้อมูลจาก FiveThirtyEight เรื่อง การเดินทางของ Uber ในนิวยอร์กช่วงเมษายน 2014:
มาลองแสดงตำแหน่งรับผู้โดยสารทั้งหมดอย่างคร่าว ๆ โดยให้ลองจิจูดเป็นแกน x และละติจูดเป็นแกน y:
เพื่อจัดกลุ่มข้อมูลนี้ จะใช้อัลกอริทึมเรียนรู้ของเครื่องแบบไม่มีผู้สอนที่เรียกว่า k-means แนวคิดคือแบ่งตัวอย่างข้อมูลทั้งหมดออกเป็นหลายกลุ่มที่มีความแปรปรวนเท่ากัน โดยรับจำนวนคลัสเตอร์ n_clusters (ค่าเริ่มต้นคือ 8) และแยกข้อมูลตามนั้น เพื่อหาจำนวนคลัสเตอร์ที่เหมาะสม จะใช้วิธีศอก (elbow method) ซึ่งประกอบด้วย:
กรณีนี้ จำนวนคลัสเตอร์ที่เหมาะสมที่สุดคือ 7 มาลองใช้ค่านี้เพื่อฝึกโมเดลและทำนายหมายเลขคลัสเตอร์สำหรับจุดรับผู้โดยสารแต่ละจุด จากนั้นจะแสดงข้อมูลอีกครั้งโดยเพิ่มตำแหน่งของเซนทรอยด์ทั้งเจ็ด:
ต่อไปจะดึงพิกัดที่แน่นอนของเซนทรอยด์ทั้งหมดและแสดงแยกต่างหากโดยไม่รวมตัวข้อมูล:
จะแสดงให้เข้าใจง่ายขึ้นหากวางเซนทรอยด์เหล่านี้บนแผนที่นครนิวยอร์ก:
ด้วยโมเดลของเรา เราสามารถทำนายคลัสเตอร์ที่ใกล้ที่สุดสำหรับตำแหน่งใด ๆ ในนิวยอร์กที่ระบุด้วยพิกัดภูมิศาสตร์ ในทางปฏิบัติหมายถึง Uber จะส่งแท็กซี่ที่ว่างจากตำแหน่งที่ใกล้ที่สุดและให้บริการลูกค้าได้เร็วขึ้น
ลองหาคลัสเตอร์ที่ใกล้ที่สุดสำหรับ Lincoln Center for the Performing Arts ในเขตแมนฮัตตัน:
และสำหรับ Howard Beach ในเขตควีนส์:
แนวทางต่อไป อาจลองใช้อัลกอริทึมจัดกลุ่มแบบอื่น วิเคราะห์สไลซ์ของข้อมูลที่ต่างกัน (ตามชั่วโมง/วันในสัปดาห์/เดือน) หาโหลดมากสุดและน้อยสุดของแต่ละคลัสเตอร์ หรือศึกษา ความสัมพันธ์ระหว่างคลัสเตอร์ที่พบกับตัวแปร Base ในดาต้าเฟรม
กรณีใช้งานอื่นที่พบบ่อยในขนส่งและโลจิสติกส์:
วิทยาศาสตร์ข้อมูลในโทรคมนาคม
ในสองสามทศวรรษที่ผ่านมา เทคโนโลยีโทรคมนาคมเติบโตอย่างรวดเร็วและเข้าสู่ระยะใหม่ ทุกวันนี้เราถูกโอบล้อมด้วยอุปกรณ์อิเล็กทรอนิกส์นานาชนิด และหลายคนพึ่งพาอินเทอร์เน็ตอย่างแท้จริง โดยเฉพาะโซเชียลเน็ตเวิร์กและแอปส่งข้อความ บางครั้งการเสพติดอุปกรณ์ถูกวิจารณ์ว่ามาแทนที่การสื่อสารแบบพบหน้า ทว่าเราต้องยอมรับว่าโทรคมนาคมทำให้ชีวิตง่ายขึ้นมาก เปิดโอกาสให้เชื่อมต่อกับผู้คนทั่วโลกภายในไม่กี่วินาที
สิ่งนี้ยิ่งจริงช่วงการแพร่ระบาดของโควิด-19 เมื่อหลายบริษัทและโรงเรียนหันไปทำงาน/เรียนทางไกล ในความเป็นจริงที่เปลี่ยนเร็วเช่นนี้ คุณภาพและความราบรื่นของการเชื่อมต่อดิจิทัลมีความสำคัญอย่างไม่เคยมีมาก่อน ช่วงล็อกดาวน์ทำให้ผู้คนต้องโทรและส่งข้อความหาผู้ร่วมงาน ญาติ และเพื่อน มากกว่าก่อน แนวโน้มใหม่เหล่านี้นำไปสู่ปริมาณการสื่อสารที่เพิ่มขึ้นมหาศาล ซึ่งสร้างข้อมูลจำนวนมหาศาลในอุตสาหกรรมนี้
การใช้วิธีวิทยาศาสตร์ข้อมูลเพื่อต่อยอดจากข้อมูลที่สะสมช่วยอุตสาหกรรมโทรคมนาคมได้หลายทาง:
ลองเจาะลึกภารกิจทั่วไปในโทรคมนาคมที่เกี่ยวข้องกับการตรวจจับและกรองข้อความที่ไม่ต้องการ
กรณีใช้งานในโทรคมนาคม: สร้างตัวกรองสแปม
การกรองสแปมเป็นฟังก์ชันสำคัญของช่องทางสื่อสารแบบตัวอักษรสมัยใหม่ เพราะช่วยป้องกันไม่ให้ถูกถล่มด้วยอีเมลรายวันพยายามหลอกเอาเงิน ในทางเทคนิค นี่เป็นอีกตัวอย่างของปัญหาการจัดหมวดหมู่ โดยอาศัยข้อมูลในอดีต ข้อความใหม่แต่ละข้อความจะถูกติดป้ายว่า ham (ข้อความปกติ) แล้วส่งตรงถึงผู้รับ หรือป้ายว่า spam แล้วถูกบล็อกหรือส่งเข้ากล่องสแปม
อัลกอริทึมแมชชีนเลิร์นนิงแบบกำกับที่นิยมสำหรับงานนี้คือตัวจัดหมวดหมู่ Naive Bayes ตั้งอยู่บนทฤษฎีเบส์ โดย "naive" สื่อถึงสมมติฐานว่าคำทุกคำในข้อความเป็นอิสระต่อกัน สมมติฐานนี้ไม่ถูกต้องนักเพราะมองข้ามบริบทและความสัมพันธ์เชิงความหมายของคำ อย่างไรก็ดี ในงานจัดหมวดหมู่ข้อความที่ข้อมูลไม่มาก วิธีนี้มักได้ผลและทำนายได้แม่น
Naive Bayes มีหลายเวอร์ชัน แต่ละแบบมีกรณีใช้งานที่เหมาะสม: multinomial, Bernoulli, Gaussian และ flexible Bayes สำหรับการตรวจจับสแปม เหมาะที่สุดคือ multinomial Naive Bayes ซึ่งอาศัยการนับความถี่แบบไม่ต่อเนื่องของคุณลักษณะเชิงหมวดหมู่หรือค่าต่อเนื่องที่แทนจำนวนคำในแต่ละข้อความ
มาลองใช้ multinomial Naive Bayes กับ ชุดข้อมูล SMS Spam Collection จาก UCI Machine Learning Repository
มีข้อความที่มนุษย์จัดหมวดหมู่ไว้ 5,572 ข้อความ กี่เปอร์เซ็นต์เป็นสแปม?
13% ของ SMS ถูกระบุด้วยมือว่าเป็นสแปม
เพื่อเตรียมข้อมูลสำหรับ multinomial Naive Bayes ต้องทำขั้นตอนต่อไปนี้ก่อน:
ขั้นที่ 4 ต้องอธิบายเพิ่ม จะสร้างออบเจ็กต์เมทริกซ์ ฝังพจนานุกรมคำศัพท์ (คำที่ไม่ซ้ำทั้งหมดจากข้อความในชุดฝึกของตัวทำนายพร้อมความถี่) แล้วแปลงชุดฝึกและทดสอบของตัวทำนายเป็นเมทริกซ์ ผลลัพธ์คือเมทริกซ์สองชุดสำหรับชุดฝึกและชุดทดสอบของตัวทำนาย โดยคอลัมน์สอดคล้องกับแต่ละคำที่ไม่ซ้ำจากข้อความทั้งหมดของชุดฝึก แถวสอดคล้องกับข้อความแต่ละข้อความ และค่าคือจำนวนครั้งที่คำปรากฏในข้อความนั้น
ถัดไปจะสร้างตัวจัดหมวดหมู่ multinomial Naive Bayes ด้วยพารามิเตอร์เริ่มต้นและตรวจสอบความแม่นยำ:
ผลลัพธ์คือเราได้ตัวกรองสแปมที่มีความแม่นยำสูง
แนวทางต่อไป อาจลองวิธีแบ่ง train/test อื่น ๆ เพื่อปรับปรุงกระบวนการเวกเตอร์ไรซ์ด้วยการปรับพารามิเตอร์มากมายของมัน (เช่น ค่าตัดสำหรับคำที่พบบ่อยเกินไปทั้งในสแปมและแฮม) ตรวจสอบกรณีที่พบได้ยากซึ่งตัวจัดหมวดหมู่ทำนายผิดและทำความเข้าใจสาเหตุ นอกจากนี้ยังสามารถแสดงคำที่พบบ่อยในสแปมและแฮมด้วยวิธีอย่าง word cloud (หลังทำความสะอาดข้อมูลและตัดคำหยุดหรือคำที่ให้ข้อมูลต่ำออก) สุดท้ายลองใช้อัลกอริทึมแมชชีน/ดีพลเลิร์นนิงอื่น (SVM ต้นไม้ตัดสินใจ โครงข่ายประสาท) แล้วเปรียบเทียบกับ Naive Bayes
กรณีใช้งานอื่นที่พบบ่อยในโทรคมนาคม:
กรณีศึกษาวิทยาศาสตร์ข้อมูล: คอร์สเรียน
ตลอดมาจนถึงตอนนี้ เราได้สำรวจการประยุกต์ใช้วิทยาศาสตร์ข้อมูลในหลายสาขาอย่างละเอียด หากกำลังอยากเรียนรู้กรณีใช้งานเพิ่มเติมบนชุดข้อมูลจริง และอยากนำความรู้และทักษะทางเทคนิคใหม่ไปแก้ปัญหาเชิงปฏิบัติในสายงานของตน ต่อไปนี้คือคอร์สสั้นระดับเริ่มต้นเกี่ยวกับกรณีศึกษาวิทยาศาสตร์ข้อมูลที่น่าจะเป็นประโยชน์:
ไม่ว่าจะต้องการเป็นผู้เชี่ยวชาญระดับสูงด้านวิทยาศาสตร์ข้อมูล หรือเพียงต้องการเรียนทักษะการโค้ดที่เป็นประโยชน์เพื่อดึงอินไซต์ที่ขับเคลื่อนด้วยข้อมูลในสาขาของตน ทรัพยากรข้างต้นเป็นจุดเริ่มต้นที่ดี
บทสรุป
สรุปแล้ว บทความนี้ได้สำรวจว่าวิทยาศาสตร์ข้อมูลคืออะไรในหลายมุมมอง แตกต่างจากการวิเคราะห์ข้อมูลอย่างไร ใช้ได้ในสาขาใดบ้าง กรณีการใช้งานคืออะไร และโรดแมปทั่วไปเพื่อแก้ไขให้สำเร็จ กล่าวถึงอย่างเจาะจงว่าวิทยาศาสตร์ข้อมูลมีประโยชน์ต่อภารกิจจริงในบางอุตสาหกรรมที่มีความต้องการสูงอย่างไร ขณะร่ายยาวถึงการประยุกต์ใช้ที่มีอยู่และที่เป็นไปได้ เรามุ่งเน้นกรณีใช้งานที่พบบ่อยที่สุดในแต่ละสาขายอดนิยม และสาธิตวิธีแก้ด้วยอัลกอริทึมด้านวิทยาศาสตร์และการวิเคราะห์ข้อมูล หากต้องการเรียนรู้กรณีใช้งานในอุตสาหกรรมอื่น โปรดชมบทความของเราเรื่อง แบงก์กิ้ง การตลาด และ การขาย ท้ายที่สุด เรายังได้ทบทวนคอร์สออนไลน์ที่เป็นประโยชน์หลายคอร์สสำหรับเจาะลึกกรณีศึกษาอื่น ๆ ในวิทยาศาสตร์ข้อมูล
ข้อสังเกตสุดท้ายที่น่าสนใจ: ไม่มีภาคส่วนใดที่เราพิจารณาในงานนี้ที่เป็นเรื่องใหม่ทั้งหมด บางภาคส่วนเช่นการแพทย์และการขายมีมานานเป็นศตวรรษ ตลอดประวัติศาสตร์ของพวกเขา นานก่อนยุคดิจิทัลทั่วโลก ข้อมูลจากอุตสาหกรรมเหล่านี้ก็ถูกเก็บในรูปแบบต่าง ๆ เขียนไว้ในหนังสือและเอกสาร เก็บในคลังและห้องสมุด สิ่งที่เปลี่ยนแปลงอย่างมากในไม่กี่ปีที่ผ่านมาพร้อมเทคโนโลยีใหม่คือความเข้าใจอย่างพื้นฐานถึงศักยภาพมหาศาลที่ซ่อนอยู่ในข้อมูลทุกชนิด และความสำคัญยิ่งของการบันทึก รวบรวม และเก็บรักษามันอย่างเหมาะสม การทุ่มเทความพยายามและพัฒนาระบบจัดการข้อมูลอย่างต่อเนื่องทำให้สามารถสะสมบิ๊กดาต้าในทุกอุตสาหกรรมเพื่อการวิเคราะห์และการพยากรณ์ต่อไป