ในโลกของเทคโนโลยีที่เติบโตและพัฒนาไม่หยุดหย่อน ไพธอน (Python) ก็เป็นหนึ่งในภาษาโปรแกรมมิ่งที่ถูกใช้กันอย่างกว้างขวางในวงการเทคโนโลยี เฉพาะอย่างยิ่งในด้านของ Machine Learning (ML) ที่มีการใช้งานอย่างแพร่หลาย ด้วยไลบรารีที่สนับสนุนมากมาย ทำให้ Python เป็นตัวเลือกที่ดีสำหรับผู้ที่ต้องการเริ่มต้นศึกษาและสร้างโปรเจ็คที่เกี่ยวกับ Machine Learning ในบทความนี้เราจะพูดถึง 5 โปรเจ็คที่เกี่ยวกับ ML ซึ่งสามารถทำได้ด้วย Python และยังเข้าถึงง่ายแม้จะเพิ่งเริ่มเข้าสู่โลกของการเรียนรู้เครื่องจักร
การจำแนกประเภทดอกไอริสเป็นโปรเจ็คจำแนกประเภทพื้นฐานที่ใช้ข้อมูลดอกไอริสซึ่งประกอบด้วยชุดข้อมูลสามชนิด และแต่ละชนิดมีขนาดและสีที่แตกต่างกัน เพื่อทำนายชนิดของดอกไอริสนั้นๆ แน่นอนว่าไลบรารีของ Python อย่าง Scikit-learn มีการทำงานส่วนใหญ่ให้มีความง่ายและรวดเร็วทำให้คุณสามารถมุ่งเน้นไปที่การเรียนรู้แนวคิดของ ML มากกว่าการจัดสร้างอัลกอริธึมจากศูนย์
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)
# Initialize KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=3)
# Train the classifier
knn.fit(X_train, y_train)
# Predict and evaluate the model
prediction = knn.predict(X_test)
accuracy = np.mean(prediction == y_test)
print(f'Model accuracy: {accuracy * 100}%')
โปรเจ็คนี้เป็นการทำนายราคาบ้านโดยอาศัยชุดข้อมูลที่มีลักษณะต่างๆ เช่น พื้นที่, ปีที่สร้าง, จำนวนห้องนอน เป็นต้น นี่เป็นโปรจรเจ็คที่ดีที่จะเรียนรู้การใช้งานการเรียนรู้เชิงประสาทกล้ามเนื้อเชิงลึก (deep neural network) หรือการเรียนรู้เชิงลึก (deep learning) เพื่อปรับใช้โมเดลที่สามารถทำนายราคาที่แม่นยำได้
import pandas as pd
from keras.models import Sequential
from keras.layers import Dense
from sklearn.model_selection import train_test_split
# Load dataset
data = pd.read_csv('housing.csv')
# Prepare data
X = data.drop('price', axis=1).values
y = data['price'].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# Create model
model = Sequential()
model.add(Dense(10, activation='relu', input_shape=(X_train.shape[1],)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mean_squared_error')
# Train model
model.fit(X_train, y_train, epochs=100)
# Evaluate model
loss = model.evaluate(X_test, y_test)
print(f'Loss: {loss}')
การจำแนกอารมณ์ในข้อความมีความสำคัญเพื่อทำความเข้าใจว่าความเห็นหรือคำวิจารณ์ต่างๆ ในโลกอินเทอร์เน็ตนั้นมีลักษณะเป็นบวกหรือลบ โปรเจ็คนี้ใช้เทคนิคของ Natural Language Processing (NLP) ร่วมกับ ML เพื่อวิเคราะห์ข้อความและทำนายอารมณ์ที่แสดงออกมา
import nltk
from nltk.sentiment.vader import SentimentIntensityAnalyzer
nltk.download('vader_lexicon')
sentences = [
"This product is excellent!",
"It's not that good, I expected better.",
"Totally awful, I hate it."
]
analyzer = SentimentIntensityAnalyzer()
for sentence in sentences:
vs = analyzer.polarity_scores(sentence)
print(f"{sentence} \n {vs}")
การเสริมสร้างเป็นประเภทหนึ่งของ ML ซึ่งสามารถใช้เพื่อสร้างระบบที่สามารถเรียนรู้ได้จากการโต้ตอบกับสภาพแวดล้อมที่มีการเปลี่ยนแปลงอยู่ตลอดเวลา เช่นการสร้างระบบ AI เพื่อเล่นเกมหรือการจำลองวิธีการขับขี่ของยานพาหนะอัตโนมัติ โปรเจ็คนี้ค่อนข้างท้าทายและต้องใช้ความรู้เกี่ยวกับการเรียนรู้ขั้นสูง แต่เป็นโปรเจ็คที่ดีเพื่อสานเส้นทางไปยังระดับถัดไปของ ML
import gym
env = gym.make('CartPole-v1')
for _ in range(1000):
env.reset()
for _ in range(100):
env.render()
action = env.action_space.sample() # take a random action
env.step(action)
env.close()
โปรเจ็คจำแนกเลขเขียนด้วยมือนั้นเป็นหัวข้อคลาสสิคในโลกของ ML ที่ใช้ข้อมูลชุด MNIST ซึ่งประกอบไปด้วยรูปภาพเลขเขียนด้วยมือ เป้าหมายคือการสร้างโมเดลที่สามารถจำแนกเลขจากรูปภาพเหล่านั้นได้
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Flatten
from keras.utils import to_categorical
# Load MNIST dataset
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
# Normalize the images
train_images = train_images / 255.0
test_images = test_images / 255.0
# Prepare labels
train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)
# Create model
model = Sequential()
model.add(Flatten(input_shape=(28, 28)))
model.add(Dense(512, activation='relu'))
model.add(Dense(10, activation='softmax'))
# Compile model
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
# Train model
model.fit(train_images, train_labels, epochs=5, batch_size=128)
# Evaluate model
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Test accuracy: {test_acc * 100}%')
เหล่านี้คือ 5 โปรเจ็คง่ายๆ ที่คุณสามารถเริ่มต้นด้วย Python เพื่อฝึกฝนและพัฒนาทักษะของคุณในด้าน Machine Learning ได้ สิ่งสำคัญคือการลงมือทำและเรียนรู้จากการปฏิบัติจริงคือหัวใจหลักของการเป็น Machine Learning Engineer
การเริ่มต้นทำโปรเจกต์จริงเหล่านี้ ไม่ได้หมายความว่าคุณจะต้องทำลายกำแพงขอการเขียนโค้ดที่ซับซ้อนเสมอไป แต่คือการเริ่มต้นจากสิ่งเล็กๆ และสร้างมันขึ้นทีละขั้นตอน เพียงเท่านี้คุณก็สามารถก้าวไปสู่เส้นทางของนัก ML ที่มีประสิทธิภาพได้แล้ว
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: python machine_learning classification house_price_prediction deep_learning sentiment_analysis natural_language_processing reinforcement_learning handwritten_digit_classification neural_network data_science programming scikit-learn keras mnist
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com