โดย opj » 19/12/2024 4:05 pm
การเตรียมข้อมูล (Data Preprocessing) เป็นขั้นตอนสำคัญในการพัฒนาโมเดล
Machine Learning ที่มีประสิทธิภาพ การเตรียมข้อมูลที่ดีจะช่วยให้โมเดลสามารถเรียนรู้ได้ดีขึ้น และทำงานได้อย่างมีประสิทธิภาพ การเตรียมข้อมูลมักจะประกอบด้วยหลายขั้นตอน ตั้งแต่
การรวบรวมข้อมูลไปจนถึงการปรับแต่งข้อมูลให้เหมาะสมกับโมเดลที่เราจะใช้ ในบทความนี้ เราจะมาพูดถึงขั้นตอนการเตรียมข้อมูลที่สำคัญสำหรับโมเดล Machine Learning
- การรวบรวมข้อมูล (Data Collection)
การรวบรวมข้อมูลเป็นขั้นตอนแรกที่สำคัญในการเตรียมข้อมูล หากไม่มีข้อมูลที่เหมาะสมก็จะไม่สามารถฝึกโมเดลได้ ข้อมูลสามารถมาจากหลายแหล่ง เช่น
- ฐานข้อมูล (Databases)
- ไฟล์ CSV หรือ Excel
- API ที่ให้ข้อมูลจากแหล่งต่าง ๆ
- การสแครปข้อมูลจากเว็บไซต์ (Web Scraping)
นอกจากนั้นเรายังต้องตรวจสอบคุณภาพของข้อมูลที่ได้มาเพื่อช่วยให้มั่นใจว่าเรามีข้อมูลที่เพียงพอและเหมาะสมกับปัญหาที่ต้องการแก้ไข
- การตรวจสอบและจัดการข้อมูล (Data Cleaning)
เมื่อได้ข้อมูลแล้ว ขั้นตอนต่อไปคือการ Clean ข้อมูล เนื่องจากข้อมูลจริงอาจมีข้อผิดพลาดหรือไม่สมบูรณ์ ซึ่งอาจส่งผลเสียต่อประสิทธิภาพของโมเดล
- การจัดการกับค่าที่ขาดหาย (Handling Missing Values)
ค่าที่ขาดหายเป็นปัญหาที่พบบ่อยในข้อมูลจริง การจัดการกับค่าที่ขาดหายมีหลายวิธี เช่น
- การลบแถวหรือคอลัมน์ที่มีค่าหาย: หากข้อมูลที่ขาดหายไม่มากจนเกินไป สามารถลบแถวหรือคอลัมน์ที่มีค่าหายได้
- การแทนค่าหายด้วยค่าเฉลี่ย (Mean): สำหรับข้อมูลเชิงตัวเลขสามารถแทนค่าที่หายด้วยค่าเฉลี่ยของคอลัมน์นั้นๆ
ตัวอย่างเช่น
โค้ด: เลือกทั้งหมด
import pandas as pd
from sklearn.impute import SimpleImputer
# ตัวอย่างข้อมูล
data = {'age': [25, 30, None, 35, 40],
'salary': [50000, 60000, 70000, None, 80000]}
df = pd.DataFrame(data)
# ใช้ SimpleImputer เพื่อแทนค่าที่ขาดหายด้วยค่าเฉลี่ย
imputer = SimpleImputer(strategy='mean')
df['age'] = imputer.fit_transform(df[['age']])
df['salary'] = imputer.fit_transform(df[['salary']])
ผลลัพธ์แสดงดังภาพ

- Missing Values.png (28.64 KiB) Viewed 1725 times
- การใช้เทคนิคอื่นๆ: เช่น การใช้ค่าเฉลี่ยถ่วงน้ำหนัก (weighted mean) หรือการใช้โมเดลที่คาดการณ์ค่าที่ขาดหาย
- การจัดการกับค่าผิดพลาด (Handling Outliers)
ค่าผิดพลาดหรือ outliers คือตัวเลขที่ห่างไกลจากค่าปกติ ซึ่งอาจเกิดจากข้อผิดพลาดในการเก็บข้อมูล หรือข้อมูลที่ผิดปกติ ค่าผิดพลาดอาจมีผลกระทบต่อโมเดล เช่น การทำให้ค่าความแม่นยำของโมเดลต่ำลง วิธีการจัดการกับ outliers ได้แก่
- การใช้เทคนิคการตรวจสอบค่าผิดปกติ เช่น การใช้ IQR (Interquartile Range) หรือ Z-score
ตัวอย่างเช่น
โค้ด: เลือกทั้งหมด
import numpy as np
# ตัวอย่างข้อมูล
data = {'age': [25, 30, 35, 1000, 40]} # 1000 เป็น outlier
df = pd.DataFrame(data)
# คำนวณ Z-score
from scipy.stats import zscore
df['z_score'] = zscore(df['age'])
# ลบ outliers
df_no_outliers = df[df['z_score'].abs() < 3]
ผลลัพธ์แสดงดังภาพ

- Outliers.png (25.92 KiB) Viewed 1725 times
- การลบข้อมูลที่เป็น outliers หรือใช้การแปลงค่าข้อมูลให้เหมาะสม
- การแก้ไขค่าผิดปกติ (Fixing Incorrect Values)
บางครั้งข้อมูลที่รวบรวมอาจมีข้อผิดพลาดจากการป้อนข้อมูลหรือการเก็บข้อมูลที่ผิดพลาด เช่น ข้อมูลที่มีตัวอักษรแทนตัวเลข การแก้ไขข้อผิดพลาดเหล่านี้จะช่วยให้ข้อมูลมีความถูกต้องมากขึ้น วิธีการแก้ไขข้อมูล ได้แก่:
- การแทนค่าผิดพลาดด้วยค่าอื่นที่เหมาะสม
- การลบข้อมูลที่มีข้อผิดพลาดออกไป
- การแปลงข้อมูล (Data Transformation)
หลังจากที่ข้อมูลสะอาดแล้ว ขั้นตอนถัดไปคือการแปลงข้อมูลให้เหมาะสมกับโมเดล Machine Learning ที่จะใช้งาน ซึ่งรวมถึง:
- การแปลงข้อมูลเป็นตัวเลข (Encoding)
ข้อมูลที่เป็นประเภทข้อความ (Categorical Data) เช่น เพศ, สี, หรือประเภทของสินค้าจะไม่สามารถใช้ได้กับโมเดล Machine Learning โดยตรง วิธีการแปลงข้อมูลประเภทนี้คือ
- One-Hot Encoding: การสร้างคอลัมน์ใหม่สำหรับแต่ละประเภทของข้อมูล และแทนค่าด้วย 0 หรือ 1
ตัวอย่างเช่น
โค้ด: เลือกทั้งหมด
# ตัวอย่างข้อมูล
data = {'color': ['red', 'blue', 'green', 'blue']}
df = pd.DataFrame(data)
# One-Hot Encoding
df_encoded = pd.get_dummies(df, columns=['color'])
ผลลัพธ์แสดงดังภาพ

- One-Hot.png (13.8 KiB) Viewed 1725 times
- Label Encoding: การแปลงข้อมูลประเภทข้อความให้เป็นตัวเลข
ตัวอย่างเช่น
โค้ด: เลือกทั้งหมด
from sklearn.preprocessing import LabelEncoder
# ตัวอย่างข้อมูล
data = {'color': ['red', 'blue', 'green', 'blue']}
df = pd.DataFrame(data)
# Label Encoding
label_encoder = LabelEncoder()
df['color_encoded'] = label_encoder.fit_transform(df['color'])
ผลลัพธ์แสดงดังภาพ

- Label Encoding.png (15.04 KiB) Viewed 1725 times
- การปรับขนาดข้อมูล (Normalization/Standardization)
ข้อมูลที่มีขนาดแตกต่างกัน เช่น ค่าของน้ำหนักและส่วนสูง อาจทำให้โมเดลไม่สามารถเรียนรู้ได้ดี การปรับขนาดข้อมูลจะช่วยให้ข้อมูลทั้งหมดมีขนาดที่ใกล้เคียงกัน วิธีการปรับขนาดข้อมูลได้แก่
- Normalization: การแปลงข้อมูลให้อยู่ในช่วง [0, 1]
ตัวอย่างเช่น
โค้ด: เลือกทั้งหมด
from sklearn.preprocessing import MinMaxScaler
# ตัวอย่างข้อมูล
data = {'age': [25, 30, 35, 40, 45], 'salary': [50000, 60000, 70000, 80000, 90000]}
df = pd.DataFrame(data)
# Normalization (Scaler จะเปลี่ยนค่าทั้งหมดให้เป็นช่วง [0, 1])
scaler = MinMaxScaler()
df_scaled = scaler.fit_transform(df)
# แปลงผลลัพธ์กลับเป็น DataFrame
df_scaled = pd.DataFrame(df_scaled, columns=df.columns)
ผลลัพธ์แสดงดังภาพ

- MinMaxScaler.png (24.1 KiB) Viewed 1725 times
- Standardization: การปรับข้อมูลให้มีค่าเฉลี่ยเป็น 0 และส่วนเบี่ยงเบนมาตรฐานเป็น 1
ตัวอย่างเช่น
โค้ด: เลือกทั้งหมด
from sklearn.preprocessing import StandardScaler
# ตัวอย่างข้อมูล
data = {'age': [25, 30, 35, 40, 45], 'salary': [50000, 60000, 70000, 80000, 90000]}
df = pd.DataFrame(data)
# Standardization (Scaler จะทำให้ข้อมูลมีค่าเฉลี่ยเป็น 0 และส่วนเบี่ยงเบนมาตรฐานเป็น 1)
scaler = StandardScaler()
df_standardized = scaler.fit_transform(df)
# แปลงผลลัพธ์กลับเป็น DataFrame
df_standardized = pd.DataFrame(df_standardized, columns=df.columns)
ผลลัพธ์แสดงดังภาพ

- StandardScaler.png (23.94 KiB) Viewed 1725 times
- การแบ่งข้อมูล (Data Splitting)
การแบ่งข้อมูลเป็นชุดฝึกสอน (Training Set) และชุดทดสอบ (Test Set) เป็นขั้นตอนที่สำคัญในการฝึกและทดสอบโมเดล โดยทั่วไปแล้วจะใช้การแบ่งข้อมูลเป็น 70%-80% สำหรับชุดฝึกสอนและ 20%-30% สำหรับชุดทดสอบ หรืออาจใช้เทคนิคอื่นๆ เช่น Cross-validation เพื่อเพิ่มความแม่นยำในการประเมินผลของโมเดล
ตัวอย่างเช่น
โค้ด: เลือกทั้งหมด
from sklearn.model_selection import train_test_split
# ตัวอย่างข้อมูล
data = {'age': [25, 30, 35, 40, 45], 'salary': [50000, 60000, 70000, 80000, 90000]}
df = pd.DataFrame(data)
# แบ่งข้อมูลเป็นชุดฝึกสอน (train) และชุดทดสอบ (test)
X = df[['age']] # ตัวแปรที่ใช้ทำนาย
y = df['salary'] # ตัวแปรที่ต้องการทำนาย
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
print("X_train:\n", X_train)
print("X_test:\n", X_test)
- การตรวจสอบความสมบูรณ์ของข้อมูล (Data Quality Check)
หลังจากทำการเตรียมข้อมูลทั้งหมดแล้ว ควรตรวจสอบข้อมูลว่ามีความสมบูรณ์และถูกต้อง เพื่อให้มั่นใจว่าข้อมูลที่นำมาฝึกโมเดลนั้นมีคุณภาพสูงและสามารถนำไปใช้งานได้จริง
สรุป
การเตรียมข้อมูลสำหรับโมเดล Machine Learning เป็นขั้นตอนสำคัญในการสร้างโมเดลที่มีประสิทธิภาพ โดยประกอบด้วยเทคนิคดังนี้ การจัดการค่าที่ขาดหาย, การจัดการค่าผิดปกติ, การแปลงข้อมูลประเภทข้อความ (เช่น One-Hot Encoding หรือ Label Encoding), การปรับขนาดข้อมูล (Normalization/Standardization) และการแบ่งข้อมูล (การแยกข้อมูลเป็นชุดฝึกสอนและชุดทดสอบ) การเตรียมข้อมูลที่ดีจะช่วยให้โมเดลทำงานได้แม่นยำและมีประสิทธิภาพสูงขึ้นในการนำไปใช้ในงานต่างๆ เช่น
การทำนาย,
การจำแนกประเภท, และ
การวิเคราะห์ข้อมูลเชิงลึก
อ้างอิง
https://medium.com/mmp-li/จัดการกับข้อมูลไปจนถึงสร้างโมเดล-ml-มีขั้นตอนอะไรบ้าง-445da6d776a2
https://algoaddict.wordpress.com/2020/03/07/machine-learning-life-cycle-7-ขั้นตอนง่ายๆ-ในการส/
https://www.mindphp.com/บทเรียนออนไลน์/ ... taset.html
[url=https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/9015-what-is-data-preprocessing.html#google_vignette]การเตรียมข้อมูล (Data Preprocessing)[/url] เป็นขั้นตอนสำคัญในการพัฒนาโมเดล [url=https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/102-uncategorised/5260-what-is-machine-learning.html]Machine Learning[/url] ที่มีประสิทธิภาพ การเตรียมข้อมูลที่ดีจะช่วยให้โมเดลสามารถเรียนรู้ได้ดีขึ้น และทำงานได้อย่างมีประสิทธิภาพ การเตรียมข้อมูลมักจะประกอบด้วยหลายขั้นตอน ตั้งแต่[url=https://www.mindphp.com/forums/viewtopic.php?t=39475]การรวบรวมข้อมูล[/url]ไปจนถึงการปรับแต่งข้อมูลให้เหมาะสมกับโมเดลที่เราจะใช้ ในบทความนี้ เราจะมาพูดถึงขั้นตอนการเตรียมข้อมูลที่สำคัญสำหรับโมเดล Machine Learning
[list=1]
[*][b]การรวบรวมข้อมูล (Data Collection)[/b]
การรวบรวมข้อมูลเป็นขั้นตอนแรกที่สำคัญในการเตรียมข้อมูล หากไม่มีข้อมูลที่เหมาะสมก็จะไม่สามารถฝึกโมเดลได้ ข้อมูลสามารถมาจากหลายแหล่ง เช่น
[list]
[*]ฐานข้อมูล (Databases)
[*]ไฟล์ CSV หรือ Excel
[*]API ที่ให้ข้อมูลจากแหล่งต่าง ๆ
[*]การสแครปข้อมูลจากเว็บไซต์ (Web Scraping)
[/list]
นอกจากนั้นเรายังต้องตรวจสอบคุณภาพของข้อมูลที่ได้มาเพื่อช่วยให้มั่นใจว่าเรามีข้อมูลที่เพียงพอและเหมาะสมกับปัญหาที่ต้องการแก้ไข
[*][b]การตรวจสอบและจัดการข้อมูล (Data Cleaning)[/b]
เมื่อได้ข้อมูลแล้ว ขั้นตอนต่อไปคือการ Clean ข้อมูล เนื่องจากข้อมูลจริงอาจมีข้อผิดพลาดหรือไม่สมบูรณ์ ซึ่งอาจส่งผลเสียต่อประสิทธิภาพของโมเดล
[list=1]
[*][b]การจัดการกับค่าที่ขาดหาย (Handling Missing Values)[/b]
ค่าที่ขาดหายเป็นปัญหาที่พบบ่อยในข้อมูลจริง การจัดการกับค่าที่ขาดหายมีหลายวิธี เช่น
[list]
[*]การลบแถวหรือคอลัมน์ที่มีค่าหาย: หากข้อมูลที่ขาดหายไม่มากจนเกินไป สามารถลบแถวหรือคอลัมน์ที่มีค่าหายได้
[*]การแทนค่าหายด้วยค่าเฉลี่ย (Mean): สำหรับข้อมูลเชิงตัวเลขสามารถแทนค่าที่หายด้วยค่าเฉลี่ยของคอลัมน์นั้นๆ
ตัวอย่างเช่น
[code]import pandas as pd
from sklearn.impute import SimpleImputer
# ตัวอย่างข้อมูล
data = {'age': [25, 30, None, 35, 40],
'salary': [50000, 60000, 70000, None, 80000]}
df = pd.DataFrame(data)
# ใช้ SimpleImputer เพื่อแทนค่าที่ขาดหายด้วยค่าเฉลี่ย
imputer = SimpleImputer(strategy='mean')
df['age'] = imputer.fit_transform(df[['age']])
df['salary'] = imputer.fit_transform(df[['salary']])
[/code]
ผลลัพธ์แสดงดังภาพ
[attachment=5]Missing Values.png[/attachment]
[*]การใช้เทคนิคอื่นๆ: เช่น การใช้ค่าเฉลี่ยถ่วงน้ำหนัก (weighted mean) หรือการใช้โมเดลที่คาดการณ์ค่าที่ขาดหาย[/list]
[*][b]การจัดการกับค่าผิดพลาด (Handling Outliers)[/b]
ค่าผิดพลาดหรือ outliers คือตัวเลขที่ห่างไกลจากค่าปกติ ซึ่งอาจเกิดจากข้อผิดพลาดในการเก็บข้อมูล หรือข้อมูลที่ผิดปกติ ค่าผิดพลาดอาจมีผลกระทบต่อโมเดล เช่น การทำให้ค่าความแม่นยำของโมเดลต่ำลง วิธีการจัดการกับ outliers ได้แก่
[list]
[*]การใช้เทคนิคการตรวจสอบค่าผิดปกติ เช่น การใช้ IQR (Interquartile Range) หรือ Z-score
ตัวอย่างเช่น
[code]import numpy as np
# ตัวอย่างข้อมูล
data = {'age': [25, 30, 35, 1000, 40]} # 1000 เป็น outlier
df = pd.DataFrame(data)
# คำนวณ Z-score
from scipy.stats import zscore
df['z_score'] = zscore(df['age'])
# ลบ outliers
df_no_outliers = df[df['z_score'].abs() < 3]
[/code]
ผลลัพธ์แสดงดังภาพ
[attachment=4]Outliers.png[/attachment]
[*]การลบข้อมูลที่เป็น outliers หรือใช้การแปลงค่าข้อมูลให้เหมาะสม[/list]
[*][b]การแก้ไขค่าผิดปกติ (Fixing Incorrect Values)[/b]
บางครั้งข้อมูลที่รวบรวมอาจมีข้อผิดพลาดจากการป้อนข้อมูลหรือการเก็บข้อมูลที่ผิดพลาด เช่น ข้อมูลที่มีตัวอักษรแทนตัวเลข การแก้ไขข้อผิดพลาดเหล่านี้จะช่วยให้ข้อมูลมีความถูกต้องมากขึ้น วิธีการแก้ไขข้อมูล ได้แก่:
[list]
[*]การแทนค่าผิดพลาดด้วยค่าอื่นที่เหมาะสม
[*]การลบข้อมูลที่มีข้อผิดพลาดออกไป[/list][/list]
[*][b]การแปลงข้อมูล (Data Transformation)[/b]
หลังจากที่ข้อมูลสะอาดแล้ว ขั้นตอนถัดไปคือการแปลงข้อมูลให้เหมาะสมกับโมเดล Machine Learning ที่จะใช้งาน ซึ่งรวมถึง:
[list=1]
[*][b]การแปลงข้อมูลเป็นตัวเลข (Encoding)[/b]
ข้อมูลที่เป็นประเภทข้อความ (Categorical Data) เช่น เพศ, สี, หรือประเภทของสินค้าจะไม่สามารถใช้ได้กับโมเดล Machine Learning โดยตรง วิธีการแปลงข้อมูลประเภทนี้คือ
[list]
[*]One-Hot Encoding: การสร้างคอลัมน์ใหม่สำหรับแต่ละประเภทของข้อมูล และแทนค่าด้วย 0 หรือ 1
ตัวอย่างเช่น
[code]# ตัวอย่างข้อมูล
data = {'color': ['red', 'blue', 'green', 'blue']}
df = pd.DataFrame(data)
# One-Hot Encoding
df_encoded = pd.get_dummies(df, columns=['color'])
[/code]
ผลลัพธ์แสดงดังภาพ
[attachment=3]One-Hot.png[/attachment]
[*]Label Encoding: การแปลงข้อมูลประเภทข้อความให้เป็นตัวเลข
ตัวอย่างเช่น
[code]from sklearn.preprocessing import LabelEncoder
# ตัวอย่างข้อมูล
data = {'color': ['red', 'blue', 'green', 'blue']}
df = pd.DataFrame(data)
# Label Encoding
label_encoder = LabelEncoder()
df['color_encoded'] = label_encoder.fit_transform(df['color'])
[/code]
ผลลัพธ์แสดงดังภาพ
[attachment=2]Label Encoding.png[/attachment]
[/list]
[*][b]การปรับขนาดข้อมูล (Normalization/Standardization)[/b]
ข้อมูลที่มีขนาดแตกต่างกัน เช่น ค่าของน้ำหนักและส่วนสูง อาจทำให้โมเดลไม่สามารถเรียนรู้ได้ดี การปรับขนาดข้อมูลจะช่วยให้ข้อมูลทั้งหมดมีขนาดที่ใกล้เคียงกัน วิธีการปรับขนาดข้อมูลได้แก่
[list]
[*]Normalization: การแปลงข้อมูลให้อยู่ในช่วง [0, 1]
ตัวอย่างเช่น
[code]from sklearn.preprocessing import MinMaxScaler
# ตัวอย่างข้อมูล
data = {'age': [25, 30, 35, 40, 45], 'salary': [50000, 60000, 70000, 80000, 90000]}
df = pd.DataFrame(data)
# Normalization (Scaler จะเปลี่ยนค่าทั้งหมดให้เป็นช่วง [0, 1])
scaler = MinMaxScaler()
df_scaled = scaler.fit_transform(df)
# แปลงผลลัพธ์กลับเป็น DataFrame
df_scaled = pd.DataFrame(df_scaled, columns=df.columns)
[/code]
ผลลัพธ์แสดงดังภาพ
[attachment=0]MinMaxScaler.png[/attachment]
[*]Standardization: การปรับข้อมูลให้มีค่าเฉลี่ยเป็น 0 และส่วนเบี่ยงเบนมาตรฐานเป็น 1
ตัวอย่างเช่น
[code]from sklearn.preprocessing import StandardScaler
# ตัวอย่างข้อมูล
data = {'age': [25, 30, 35, 40, 45], 'salary': [50000, 60000, 70000, 80000, 90000]}
df = pd.DataFrame(data)
# Standardization (Scaler จะทำให้ข้อมูลมีค่าเฉลี่ยเป็น 0 และส่วนเบี่ยงเบนมาตรฐานเป็น 1)
scaler = StandardScaler()
df_standardized = scaler.fit_transform(df)
# แปลงผลลัพธ์กลับเป็น DataFrame
df_standardized = pd.DataFrame(df_standardized, columns=df.columns)
[/code]
ผลลัพธ์แสดงดังภาพ
[attachment=1]StandardScaler.png[/attachment]
[/list][/list]
[*][b]การแบ่งข้อมูล (Data Splitting)[/b]
การแบ่งข้อมูลเป็นชุดฝึกสอน (Training Set) และชุดทดสอบ (Test Set) เป็นขั้นตอนที่สำคัญในการฝึกและทดสอบโมเดล โดยทั่วไปแล้วจะใช้การแบ่งข้อมูลเป็น 70%-80% สำหรับชุดฝึกสอนและ 20%-30% สำหรับชุดทดสอบ หรืออาจใช้เทคนิคอื่นๆ เช่น Cross-validation เพื่อเพิ่มความแม่นยำในการประเมินผลของโมเดล
ตัวอย่างเช่น
[code]from sklearn.model_selection import train_test_split
# ตัวอย่างข้อมูล
data = {'age': [25, 30, 35, 40, 45], 'salary': [50000, 60000, 70000, 80000, 90000]}
df = pd.DataFrame(data)
# แบ่งข้อมูลเป็นชุดฝึกสอน (train) และชุดทดสอบ (test)
X = df[['age']] # ตัวแปรที่ใช้ทำนาย
y = df['salary'] # ตัวแปรที่ต้องการทำนาย
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
print("X_train:\n", X_train)
print("X_test:\n", X_test)
[/code]
[*][b]การตรวจสอบความสมบูรณ์ของข้อมูล (Data Quality Check)[/b]
หลังจากทำการเตรียมข้อมูลทั้งหมดแล้ว ควรตรวจสอบข้อมูลว่ามีความสมบูรณ์และถูกต้อง เพื่อให้มั่นใจว่าข้อมูลที่นำมาฝึกโมเดลนั้นมีคุณภาพสูงและสามารถนำไปใช้งานได้จริง[/list]
[b]สรุป[/b]
การเตรียมข้อมูลสำหรับโมเดล Machine Learning เป็นขั้นตอนสำคัญในการสร้างโมเดลที่มีประสิทธิภาพ โดยประกอบด้วยเทคนิคดังนี้ การจัดการค่าที่ขาดหาย, การจัดการค่าผิดปกติ, การแปลงข้อมูลประเภทข้อความ (เช่น One-Hot Encoding หรือ Label Encoding), การปรับขนาดข้อมูล (Normalization/Standardization) และการแบ่งข้อมูล (การแยกข้อมูลเป็นชุดฝึกสอนและชุดทดสอบ) การเตรียมข้อมูลที่ดีจะช่วยให้โมเดลทำงานได้แม่นยำและมีประสิทธิภาพสูงขึ้นในการนำไปใช้ในงานต่างๆ เช่น [url=https://www.mindphp.com/forums/viewtopic.php?t=62714]การทำนาย[/url], [url=https://www.mindphp.com/forums/viewtopic.php?t=104893]การจำแนกประเภท[/url], และ[url=https://www.mindphp.com/forums/viewtopic.php?t=96477]การวิเคราะห์ข้อมูลเชิงลึก[/url]
[b]อ้างอิง[/b]
https://medium.com/mmp-li/จัดการกับข้อมูลไปจนถึงสร้างโมเดล-ml-มีขั้นตอนอะไรบ้าง-445da6d776a2
https://algoaddict.wordpress.com/2020/03/07/machine-learning-life-cycle-7-ขั้นตอนง่ายๆ-ในการส/
[url]https://www.mindphp.com/บทเรียนออนไลน์/python-tensorflow/8576-how-to-split-dataset.html[/url]