Bạn có muốn bắt đầu với học máy?
Tôi đã tạo một hướng dẫn đơn giản và dễ dàng cho người mới bắt đầu. Chúng ta sẽ cùng nhau tìm hiểu các bước cơ bản để đào tạo một mô hình máy học.
Trong khi giải thích từng bước đào tạo một mô hình, tôi cũng sẽ đưa ra một ví dụ rất cơ bản về vấn đề học máy. Vì vậy, nếu bạn muốn làm theo, bạn có thể tải xuống tập dữ liệu mẫu này từ đây Link.
Đây chỉ là tập dữ liệu mẫu để giúp bạn bắt đầu học máy.
Chúng tôi có 18 giá trị của những người ở các độ tuổi và giới tính khác nhau được xác định loại nhạc yêu thích của họ. Bằng cách sử dụng các tính năng của “độ tuổi” và “giới tính”, chúng tôi sẽ cố gắng đoán xem thể loại âm nhạc nào họ yêu thích.
Lưu ý: 1 và 0 được gán cho giới tính là nữ và nam trong bộ dữ liệu này.
Tuy nhiên, nếu bạn không muốn làm theo ví dụ này, điều đó cũng hoàn toàn ổn. Tôi sẽ giải thích tất cả các bước này một cách chi tiết. Vì vậy, chúng ta hãy đi sâu vào!
Những điều đầu tiên cần biết
Trước khi đi vào các bước đào tạo một mô hình, chúng ta hãy làm rõ một số điểm. Học máy là một trí tuệ nhân tạo kỷ luật tập trung vào phát triển các thuật toán có thể học hỏi từ dữ liệu.
Để làm được điều này, các mô hình học máy được đào tạo trên một tập dữ liệu hướng dẫn mô hình cách đưa ra dự đoán chính xác hoặc phân loại trên dữ liệu mới, chưa biết trước đây.
Vì vậy, những mô hình này là gì? MỘT mô hình học máy tương tự như một công thức mà máy tính sử dụng để tạo ra các dự đoán hoặc lựa chọn dữ liệu.
Một mô hình, giống như một công thức, tuân theo một tập hợp các hướng dẫn để đánh giá dữ liệu và đưa ra các dự đoán hoặc phán đoán dựa trên các mẫu được tìm thấy trong dữ liệu. Mô hình được đào tạo càng nhiều dữ liệu thì dự đoán của nó càng trở nên chính xác hơn.
Chúng ta có thể đào tạo loại người mẫu nào?
Hãy xem các mô hình máy học cơ bản là gì.
- Linear Regression: mô hình dự đoán biến mục tiêu liên tục từ một hoặc nhiều biến đầu vào.
- Mạng thần kinh: một mạng lưới các nút được liên kết có thể học cách phát hiện các mẫu phức tạp trong dữ liệu.
- Cây quyết định: một cách tiếp cận ra quyết định được xây dựng trên một chuỗi các câu lệnh if-else phân nhánh.
- Phân cụm: một tập hợp các mô hình nhóm các điểm dữ liệu có thể so sánh dựa trên sự tương đồng.
- Hồi quy logistic: một mô hình cho các vấn đề phân loại nhị phân trong đó biến mục tiêu có hai giá trị tiềm năng.
- Cây quyết định: một cách tiếp cận ra quyết định được xây dựng trên một chuỗi các câu lệnh if-else phân nhánh.
- Rừng ngẫu nhiên: một mô hình tập hợp bao gồm nhiều cây quyết định. Chúng thường được sử dụng cho các ứng dụng phân loại và hồi quy.
- K-Hàng xóm gần nhất: một mô hình dự đoán biến mục tiêu bằng cách sử dụng k điểm dữ liệu gần nhất trong tập huấn luyện.
Tùy thuộc vào vấn đề và tập dữ liệu của chúng tôi, chúng tôi quyết định mô hình học máy nào phù hợp nhất với tình huống của chúng tôi. Tuy nhiên, chúng ta sẽ quay lại vấn đề này sau. Bây giờ, hãy bắt đầu huấn luyện mô hình của chúng ta. Tôi hy vọng bạn đã tải về tập dữ liệu nếu bạn muốn làm theo ví dụ của chúng tôi.
Ngoài ra, tôi khuyên bạn nên có Máy tính xách tay Jupyter được cài đặt trên máy cục bộ của bạn và sử dụng nó cho các dự án máy học của bạn.
1: Xác định vấn đề
Giai đoạn đầu tiên trong đào tạo máy học mô hình đang xác định vấn đề cần giải quyết. Điều này đòi hỏi phải chọn các biến mà bạn muốn dự báo (được gọi là biến mục tiêu) và các biến sẽ được sử dụng để tạo các dự đoán đó (được gọi là tính năng hoặc biến dự đoán).
Bạn cũng nên quyết định loại vấn đề học máy mà bạn đang cố gắng giải quyết (phân loại, hồi quy, phân cụm, v.v.) và loại dữ liệu nào bạn sẽ cần thu thập hoặc lấy để đào tạo mô hình của mình.
Loại mô hình bạn sử dụng sẽ được xác định bởi loại vấn đề học máy mà bạn đang hướng tới giải quyết. Phân loại, hồi quy và phân cụm là ba loại chính của thách thức học máy. Khi bạn muốn dự đoán một biến phân loại, chẳng hạn như email có phải là thư rác hay không, bạn sử dụng phân loại.
Khi bạn muốn dự báo một biến số liên tục, chẳng hạn như giá nhà, bạn sử dụng phương pháp hồi quy. Phân cụm được sử dụng để tập hợp các mục dữ liệu có thể so sánh được dựa trên những điểm chung của chúng.
Nếu chúng ta nhìn vào ví dụ của mình; thách thức của chúng tôi là xác định phong cách âm nhạc ưa thích của một người từ giới tính và tuổi tác của họ. Chúng tôi sẽ sử dụng tập dữ liệu gồm 18 người cho ví dụ này và thông tin về độ tuổi, giới tính và phong cách âm nhạc yêu thích của họ.
2. Chuẩn bị dữ liệu
Sau khi bạn đã chỉ định vấn đề, bạn sẽ cần chuẩn bị dữ liệu để huấn luyện mô hình. Điều này đòi hỏi phải làm sạch và xử lý dữ liệu. Vì vậy, chúng tôi có thể đảm bảo rằng nó ở định dạng mà thuật toán học máy co thể sử dụng.
Điều này có thể bao gồm các hoạt động như xóa các giá trị bị thiếu, chuyển đổi dữ liệu phân loại thành dữ liệu số và chia tỷ lệ hoặc chuẩn hóa dữ liệu để đảm bảo tất cả các đặc điểm đều có cùng tỷ lệ.
Ví dụ: đây là cách bạn xóa các giá trị bị thiếu:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
Lưu ý nhỏ: Ở dòng o “import pandas as pd",
chúng tôi nhập thư viện Pandas và gán cho nó bí danh “pd” để giúp dễ dàng tham chiếu các chức năng và đối tượng của nó sau này trong mã.
Pandas là một mô-đun nổi tiếng dành cho Python để thao tác và phân tích dữ liệu, đặc biệt khi làm việc với dữ liệu có cấu trúc hoặc dạng bảng.
Trong ví dụ của chúng tôi về việc xác định thể loại âm nhạc. Trước tiên, chúng tôi sẽ nhập tập dữ liệu. Tôi đã đặt tên cho nó là music.csv, tuy nhiên, bạn có thể đặt tên cho nó theo cách bạn muốn.
Để chuẩn bị dữ liệu cho việc đào tạo mô hình máy học, chúng tôi chia dữ liệu đó thành các thuộc tính (tuổi và giới tính) và mục tiêu (thể loại âm nhạc).
Ngoài ra, chúng tôi sẽ chia dữ liệu thành các bộ kiểm tra và huấn luyện 80:20 để đánh giá hiệu suất của mô hình của chúng tôi và tránh trang bị quá mức.
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. Chọn mô hình máy học.
Sau khi bạn đã chuẩn bị dữ liệu, bạn phải chọn một mô hình học máy phù hợp với nhiệm vụ của mình.
Có một số thuật toán để chọn, chẳng hạn như cây quyết định, hồi quy logistic, máy vectơ hỗ trợ, mạng nơ-ron và các thuật toán khác. Thuật toán bạn chọn sẽ được xác định theo loại sự cố mà bạn đang cố gắng giải quyết, loại dữ liệu bạn có và nhu cầu về hiệu suất của bạn.
Chúng tôi sẽ sử dụng một trình phân loại cây quyết định cho ví dụ này vì chúng tôi đang làm việc với một vấn đề phân loại (dự đoán dữ liệu phân loại).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Dưới đây là hình ảnh trực quan về cách thức hoạt động của Trình phân loại cây quyết định:
4. Huấn luyện mô hình
Bạn có thể bắt đầu huấn luyện mô hình khi đã chọn một thuật toán máy học chấp nhận được. Điều này đòi hỏi phải sử dụng dữ liệu được tạo trước đó để hướng dẫn thuật toán cách đưa ra dự đoán về dữ liệu mới, chưa từng thấy trước đây.
Thuật toán sẽ sửa đổi các tham số bên trong của nó trong quá trình đào tạo để giảm thiểu sự khác biệt giữa giá trị dự đoán của nó và giá trị thực tế trong dữ liệu đào tạo. Số lượng dữ liệu được sử dụng để đào tạo, cũng như các tham số cụ thể của thuật toán, đều có thể ảnh hưởng đến độ chính xác của mô hình kết quả.
Trong ví dụ cụ thể của chúng tôi, bây giờ chúng tôi đã quyết định một phương pháp, chúng tôi có thể đào tạo mô hình của mình bằng dữ liệu đào tạo.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Đánh giá mô hình
Sau khi mô hình đã được đào tạo, nó phải được đánh giá trên dữ liệu mới để đảm bảo rằng nó chính xác và đáng tin cậy. Điều này đòi hỏi phải thử nghiệm mô hình với dữ liệu không được sử dụng trong quá trình đào tạo và so sánh các giá trị dự kiến của nó với các giá trị thực tế trong dữ liệu thử nghiệm.
Đánh giá này có thể hỗ trợ trong việc xác định bất kỳ sai sót nào của mô hình, chẳng hạn như trang bị thừa hoặc thiếu, và có thể dẫn đến bất kỳ tinh chỉnh nào có thể cần thiết.
Sử dụng dữ liệu thử nghiệm, chúng tôi sẽ đánh giá tính đúng đắn của mô hình của chúng tôi.
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
Điểm chính xác không quá tệ cho đến bây giờ. 🙂 Để cải thiện điểm chính xác, bạn luôn có thể làm sạch dữ liệu nhiều hơn hoặc thử các mô hình máy học khác nhau để xem mô hình nào cho điểm cao nhất.
6. Tinh chỉnh mô hình
Nếu hiệu quả của mô hình không đủ, bạn có thể tinh chỉnh nó bằng cách thay đổi các tham số thuật toán khác nhau hoặc bằng cách thử nghiệm hoàn toàn các thuật toán mới.
Quy trình này có thể bao gồm thử nghiệm các tốc độ học thay thế, sửa đổi cài đặt chuẩn hóa hoặc thay đổi số lượng hoặc kích thước của các lớp ẩn trong mạng thần kinh.
7. Sử dụng mô hình
Khi bạn hài lòng với hiệu suất của mô hình, bạn có thể bắt đầu sử dụng nó để tạo dự đoán về dữ liệu mới.
Điều này có thể đòi hỏi phải cung cấp dữ liệu mới vào mô hình và sử dụng các tham số đã học của mô hình để tạo dự đoán về dữ liệu đó hoặc tích hợp mô hình vào một ứng dụng hoặc hệ thống rộng hơn.
Chúng tôi có thể sử dụng mô hình của mình để tạo dự đoán về dữ liệu mới sau khi chúng tôi hài lòng với độ chính xác của nó. Bạn có thể thử các giá trị khác nhau của giới tính và tuổi tác.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Tổng kết
Chúng tôi đã hoàn thành đào tạo mô hình máy học đầu tiên của mình.
Tôi hy vọng bạn đã tìm thấy nó hữu ích. Giờ đây, bạn có thể thử sử dụng các mô hình máy học khác nhau như Hồi quy tuyến tính hoặc Rừng ngẫu nhiên.
Có nhiều bộ dữ liệu và thách thức trong Kaggle nếu bạn muốn cải thiện mã hóa và hiểu biết về học máy.
Bình luận