Khóa học
Chạy và chỉnh sửa mã từ hướng dẫn trực tuyến này
Chạy mãNếu bạn muốn học thêm về Python, hãy tham gia khóa học miễn phí Intro to Python for Data Science của DataCamp.
Chắc hẳn bạn đã từng thấy các tập dữ liệu. Đôi khi chúng nhỏ, nhưng cũng thường rất lớn về kích thước. Việc xử lý các tập dữ liệu rất lớn trở nên đầy thách thức, ít nhất đủ lớn để gây ra nút thắt cổ chai trong xử lý.
Vậy điều gì khiến các tập dữ liệu trở nên lớn như vậy? Chính là các đặc trưng (features). Số lượng đặc trưng càng nhiều thì tập dữ liệu càng lớn. À, không phải lúc nào cũng vậy. Bạn sẽ gặp những tập dữ liệu có rất nhiều đặc trưng nhưng lại không có nhiều quan sát. Nhưng đó không phải trọng tâm thảo luận ở đây. Bạn có thể tự hỏi với một máy tính phổ thông trong tay, làm sao xử lý những loại tập dữ liệu này mà không lúng túng, vòng vo.
Thường thì trong một tập dữ liệu có số chiều cao, vẫn tồn tại một số đặc trưng hoàn toàn không liên quan, không đáng kể và không quan trọng. Người ta thấy rằng đóng góp của những đặc trưng kiểu này thường thấp hơn so với các đặc trưng cốt lõi đối với mô hình dự đoán. Thậm chí chúng có thể không đóng góp gì. Những đặc trưng này gây ra nhiều vấn đề, từ đó cản trở quá trình xây dựng mô hình dự đoán hiệu quả -
- Phân bổ tài nguyên không cần thiết cho các đặc trưng này.
- Chúng tạo ra nhiễu khiến mô hình học máy có thể hoạt động rất kém.
- Mô hình tốn nhiều thời gian huấn luyện hơn.
Vậy giải pháp là gì? Giải pháp kinh tế nhất là Chọn Đặc Trưng (Feature Selection).
Chọn Đặc Trưng là quá trình chọn ra những đặc trưng quan trọng nhất từ một tập dữ liệu. Trong nhiều trường hợp, Chọn Đặc Trưng cũng có thể nâng cao hiệu năng của mô hình học máy.
Nghe thú vị đúng không?
Bạn vừa có phần giới thiệu không chính thức về Chọn Đặc Trưng và tầm quan trọng của nó trong Khoa học Dữ liệu và Học máy. Trong bài viết này, bạn sẽ tìm hiểu:
- Giới thiệu về chọn đặc trưng và hiểu tầm quan trọng của nó
- Sự khác nhau giữa chọn đặc trưng và giảm chiều dữ liệu
- Các phương pháp chọn đặc trưng khác nhau
- Cài đặt các phương pháp chọn đặc trưng với scikit-learn
Giới thiệu về Chọn Đặc Trưng
Chọn đặc trưng còn được gọi là Chọn biến hoặc Chọn thuộc tính.
Về bản chất, đây là quá trình chọn ra những đặc trưng quan trọng/liên quan nhất của một tập dữ liệu.
Hiểu tầm quan trọng của Chọn Đặc Trưng
Tầm quan trọng của chọn đặc trưng được nhận thấy rõ nhất khi bạn làm việc với một tập dữ liệu có số lượng đặc trưng rất lớn. Kiểu tập dữ liệu này thường được gọi là tập dữ liệu số chiều cao. Cùng với số chiều cao là hàng loạt vấn đề: thời gian huấn luyện mô hình tăng đáng kể, mô hình có thể trở nên rất phức tạp và dẫn đến hiện tượng overfitting.
Thường trong một tập đặc trưng có số chiều cao, tồn tại nhiều đặc trưng dư thừa, tức là chỉ là phần mở rộng của các đặc trưng quan trọng khác. Những đặc trưng dư thừa này cũng không đóng góp hiệu quả cho huấn luyện mô hình. Rõ ràng là cần trích xuất những đặc trưng quan trọng và liên quan nhất cho một tập dữ liệu để đạt hiệu năng dự đoán hiệu quả nhất.
"Mục tiêu của chọn biến có ba phần: cải thiện hiệu năng dự đoán của các bộ dự đoán, cung cấp các bộ dự đoán nhanh hơn và tiết kiệm chi phí hơn, và mang lại hiểu biết tốt hơn về quá trình nền tảng đã tạo ra dữ liệu."
-An Introduction to Variable and Feature Selection
Bây giờ hãy hiểu sự khác nhau giữa giảm chiều dữ liệu và chọn đặc trưng.
Đôi khi, chọn đặc trưng bị nhầm với giảm chiều dữ liệu. Nhưng chúng khác nhau. Cả hai đều có xu hướng giảm số lượng thuộc tính trong tập dữ liệu, nhưng phương pháp giảm chiều làm điều đó bằng cách tạo ra các tổ hợp thuộc tính mới (đôi khi gọi là biến đổi đặc trưng), trong khi các phương pháp chọn đặc trưng thì thêm/bớt các thuộc tính hiện có trong dữ liệu mà không thay đổi chúng.
Một vài ví dụ về giảm chiều bao gồm Phân tích Thành phần Chính (PCA), Phân rã Giá trị Riêng (SVD), Phân tích Phân biệt Tuyến tính (LDA), v.v.
Tóm lược tầm quan trọng của chọn đặc trưng:
- Giúp thuật toán học máy huấn luyện nhanh hơn.
- Giảm độ phức tạp của mô hình và giúp mô hình dễ diễn giải hơn.
- Cải thiện độ chính xác nếu chọn đúng tập con đặc trưng.
- Giảm overfitting.
Ở phần tiếp theo, bạn sẽ học các loại phương pháp chọn đặc trưng phổ biến - Phương pháp Filter, Wrapper và Embedded.
Phương pháp Filter
Hình dưới đây mô tả rõ nhất các phương pháp chọn đặc trưng dựa trên Filter:

Nguồn ảnh: Analytics Vidhya
Phương pháp filter dựa trên tính chất tổng quát của dữ liệu để đánh giá và chọn tập con đặc trưng, không dùng bất kỳ thuật toán khai phá nào. Phương pháp filter sử dụng các tiêu chí đánh giá như khoảng cách, thông tin, phụ thuộc và nhất quán. Nó sử dụng tiêu chí xếp hạng làm nguyên tắc chính và áp dụng cách sắp hạng để chọn biến. Lý do dùng phương pháp xếp hạng là vì sự đơn giản, tạo ra các đặc trưng tốt và phù hợp. Phương pháp này sẽ loại bỏ các đặc trưng không liên quan trước khi quá trình phân loại bắt đầu.
Phương pháp filter thường được dùng như một bước tiền xử lý dữ liệu. Việc chọn đặc trưng độc lập với bất kỳ thuật toán học máy nào. Các đặc trưng được xếp hạng dựa trên các điểm số thống kê nhằm xác định mức độ tương quan của chúng với biến đầu ra. Tương quan là một khái niệm phụ thuộc ngữ cảnh và thay đổi theo từng bài toán. Bạn có thể tham khảo bảng sau để xác định hệ số tương quan cho các kiểu dữ liệu khác nhau (trong trường hợp này là liên tục và phân loại).

Nguồn ảnh: Analytics Vidhya
Một số ví dụ về phương pháp filter gồm kiểm định Chi-squared, information gain và điểm hệ số tương quan.
Tiếp theo, bạn sẽ xem các phương pháp Wrapper.
Phương pháp Wrapper
Tương tự phương pháp filter, dưới đây là một đồ họa giúp bạn hiểu rõ hơn về phương pháp wrapper:

Nguồn ảnh: Analytics Vidhya
Như bạn thấy trong hình, một phương pháp wrapper cần một thuật toán học máy và dùng hiệu năng của nó làm tiêu chí đánh giá. Phương pháp này tìm kiếm tập đặc trưng phù hợp nhất cho thuật toán học máy và hướng đến cải thiện hiệu năng khai phá. Để đánh giá đặc trưng, độ chính xác dự đoán được dùng cho bài toán phân loại, và chất lượng cụm được đánh giá trong phân cụm.
Một số ví dụ điển hình của phương pháp wrapper là chọn đặc trưng tiến (forward), loại bỏ đặc trưng lùi (backward), loại bỏ đặc trưng đệ quy (RFE), v.v.
- Forward Selection: Quy trình bắt đầu với một tập đặc trưng rỗng [tập rút gọn]. Đặc trưng tốt nhất trong tập gốc được xác định và thêm vào tập rút gọn. Ở mỗi vòng lặp tiếp theo, đặc trưng tốt nhất còn lại được thêm vào tập.
- Backward Elimination: Quy trình bắt đầu với toàn bộ tập đặc trưng. Ở mỗi bước, loại bỏ đặc trưng tệ nhất còn lại trong tập.
- Kết hợp forward selection và backward elimination: Hai phương pháp bước tiến và bước lùi có thể được kết hợp để ở mỗi bước, quy trình sẽ chọn đặc trưng tốt nhất và loại bỏ đặc trưng tệ nhất trong số những đặc trưng còn lại.
- Loại bỏ đặc trưng đệ quy (RFE): RFE thực hiện tìm kiếm tham lam (greedy) để tìm tập con đặc trưng hoạt động tốt nhất. Nó lặp lại việc xây dựng mô hình và xác định đặc trưng tốt nhất hoặc tệ nhất ở mỗi vòng. Nó xây dựng các mô hình tiếp theo với các đặc trưng còn lại cho đến khi duyệt hết. Cuối cùng, nó xếp hạng các đặc trưng dựa trên thứ tự bị loại. Trong trường hợp xấu nhất, nếu tập dữ liệu có N đặc trưng, RFE sẽ tìm kiếm tham lam qua 2N tổ hợp đặc trưng.
Tạm ổn!
Giờ hãy học các phương pháp embedded.
Phương pháp Embedded
Phương pháp embedded có tính lặp: ở mỗi vòng lặp của quá trình huấn luyện mô hình, chúng cẩn trọng trích xuất những đặc trưng đóng góp nhiều nhất cho việc huấn luyện trong vòng lặp đó. Các phương pháp chính quy hóa (regularization) là các phương pháp embedded được dùng phổ biến nhất, chúng phạt một đặc trưng khi hệ số vượt ngưỡng.
Vì vậy, các phương pháp chính quy hóa cũng được gọi là phương pháp phạt (penalization) khi đưa thêm ràng buộc vào tối ưu hóa của một thuật toán dự đoán (như hồi quy), làm thiên lệch mô hình về phía ít phức tạp hơn (ít hệ số hơn).
Ví dụ về thuật toán chính quy hóa gồm LASSO, Elastic Net, Ridge Regression, v.v.
Khác biệt giữa Phương pháp Filter và Wrapper
Đôi lúc sẽ khó để phân biệt phương pháp filter và wrapper về chức năng. Hãy xem chúng khác nhau ở những điểm nào.
- Phương pháp filter không tích hợp mô hình học máy để quyết định một đặc trưng tốt hay xấu, trong khi phương pháp wrapper sử dụng mô hình học máy và huấn luyện trên đặc trưng để quyết định nó có thiết yếu hay không.
- Phương pháp filter nhanh hơn nhiều so với wrapper vì không cần huấn luyện mô hình. Ngược lại, wrapper tốn kém tính toán, và với các tập dữ liệu khổng lồ, wrapper không phải là lựa chọn hiệu quả nhất để chọn đặc trưng.
- Phương pháp filter có thể không tìm ra tập con đặc trưng tốt nhất khi không đủ dữ liệu để mô hình hóa tương quan thống kê giữa các đặc trưng, nhưng các phương pháp wrapper có thể tìm được tập con tốt nhất nhờ tính chất duyệt kiệt.
- Việc dùng các đặc trưng từ wrapper trong mô hình cuối cùng có thể dẫn đến overfitting vì wrapper đã huấn luyện mô hình với các đặc trưng này, ảnh hưởng đến sức mạnh thực sự của việc học. Còn các đặc trưng từ phương pháp filter trong đa số trường hợp sẽ không dẫn đến overfitting
Tới đây bạn đã học tầm quan trọng của chọn đặc trưng, hiểu sự khác nhau với giảm chiều dữ liệu, và bao quát các loại phương pháp chọn đặc trưng. Rất tốt!
Bây giờ, hãy xem một số bẫy bạn có thể gặp khi thực hiện chọn đặc trưng:
Lưu ý quan trọng
Chắc bạn đã hiểu giá trị của chọn đặc trưng trong một pipeline học máy và những lợi ích nếu tích hợp nó. Nhưng rất quan trọng là phải hiểu chính xác nên tích hợp bước này ở đâu trong pipeline.
Nói đơn giản, bạn nên đưa bước chọn đặc trưng vào trước khi cấp dữ liệu cho mô hình để huấn luyện, đặc biệt khi bạn dùng các phương pháp ước lượng độ chính xác như cross-validation. Điều này đảm bảo chọn đặc trưng được thực hiện trên từng fold dữ liệu ngay trước khi mô hình được huấn luyện. Còn nếu bạn thực hiện chọn đặc trưng trước để chuẩn bị dữ liệu, rồi mới chọn mô hình và huấn luyện trên các đặc trưng đã chọn, thì đó là một sai lầm nghiêm trọng.
Nếu bạn chọn đặc trưng trên toàn bộ dữ liệu rồi mới cross-validate, thì dữ liệu kiểm thử trong mỗi fold của quy trình cross-validation cũng đã được dùng để chọn đặc trưng, và điều này làm lệch đánh giá hiệu năng mô hình của bạn.
Lý thuyết thế là đủ! Giờ hãy vào phần mã.
Nghiên cứu tình huống với Python
Trong nghiên cứu này, bạn sẽ dùng tập dữ liệu Pima Indians Diabetes. Mô tả tập dữ liệu có tại đây.
Tập dữ liệu tương ứng với bài toán phân loại, trong đó bạn cần dự đoán một người có mắc tiểu đường hay không dựa trên 8 đặc trưng.
Có tổng cộng 768 quan sát trong tập dữ liệu. Nhiệm vụ đầu tiên là nạp dữ liệu để tiếp tục. Nhưng trước đó, hãy nhập các phụ thuộc cần thiết, những cái khác có thể nhập dần.
import pandas as pd
import numpy as np
Giờ các phụ thuộc đã được nhập, hãy nạp tập dữ liệu Pima Indians vào một đối tượng DataFrame với thư viện Pandas.
data = pd.read_csv("diabetes.csv")
Tập dữ liệu đã được nạp thành công vào đối tượng DataFrame data. Giờ hãy xem dữ liệu.
data.head()

Bạn thấy 8 đặc trưng khác nhau, được gắn nhãn kết quả 1 và 0, trong đó 1 là quan sát mắc tiểu đường, 0 là không mắc. Tập dữ liệu được biết là có giá trị thiếu. Cụ thể, có các quan sát thiếu ở một số cột được đánh dấu bằng giá trị 0. Bạn có thể suy ra điều này từ định nghĩa các cột đó, và việc có giá trị 0 là không hợp lệ đối với các phép đo này, ví dụ 0 cho chỉ số khối cơ thể hoặc huyết áp là không hợp lệ.
Nhưng trong hướng dẫn này, bạn sẽ dùng trực tiếp phiên bản đã tiền xử lý của tập dữ liệu.
# load data
url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = pd.read_csv(url, names=names)
Bạn đã nạp dữ liệu vào một đối tượng DataFrame tên là dataframe.
Hãy chuyển DataFrame thành mảng NumPy để tính toán nhanh hơn. Đồng thời, tách dữ liệu vào các biến riêng để tách đặc trưng và nhãn.
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]
Tuyệt vời! Bạn đã chuẩn bị xong dữ liệu.
Đầu tiên, bạn sẽ triển khai kiểm định thống kê Chi-Squared cho các đặc trưng không âm để chọn 4 đặc trưng tốt nhất từ tập dữ liệu. Bạn đã thấy kiểm định Chi-Squared thuộc lớp phương pháp filter. Nếu ai tò mò muốn hiểu nội hàm của Chi-Squared, video này giải thích rất hay.
Thư viện scikit-learn cung cấp lớp SelectKBest có thể dùng với nhiều kiểm định thống kê khác nhau để chọn số lượng đặc trưng cụ thể, trong trường hợp này là Chi-Squared.
# Import the necessary libraries first
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
Bạn đã nhập các thư viện để chạy thí nghiệm. Giờ hãy xem nó hoạt động.
# Feature extraction
test = SelectKBest(score_func=chi2, k=4)
fit = test.fit(X, Y)
# Summarize scores
np.set_printoptions(precision=3)
print(fit.scores_)
features = fit.transform(X)
# Summarize selected features
print(features[0:5,:])
[ 111.52 1411.887 17.605 53.108 2175.565 127.669 5.393 181.304]
[[148. 0. 33.6 50. ]
[ 85. 0. 26.6 31. ]
[183. 0. 23.3 32. ]
[ 89. 94. 28.1 21. ]
[137. 168. 43.1 33. ]]
Diễn giải:
Bạn có thể thấy điểm số cho mỗi thuộc tính và 4 thuộc tính được chọn (những thuộc tính có điểm cao nhất): plas, test, mass và age. Những điểm số này sẽ giúp bạn xác định thêm các đặc trưng tốt nhất để huấn luyện mô hình.
Lưu ý: Hàng đầu tiên biểu thị tên các đặc trưng. Trong bước tiền xử lý, tên đã được mã hóa thành số.
Tiếp theo, bạn sẽ triển khai Loại bỏ Đặc trưng Đệ quy (RFE), một phương pháp chọn đặc trưng kiểu wrapper.
RFE hoạt động bằng cách loại bỏ tuần tự các thuộc tính và xây dựng mô hình trên các thuộc tính còn lại.
Nó dùng độ chính xác của mô hình để xác định thuộc tính nào (và tổ hợp các thuộc tính nào) đóng góp nhiều nhất cho việc dự đoán thuộc tính mục tiêu.
Bạn có thể tìm hiểu thêm về lớp RFE trong tài liệu scikit-learn.
# Import your necessary dependencies
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression
Bạn sẽ dùng RFE với bộ phân loại Logistic Regression để chọn 3 đặc trưng hàng đầu. Lựa chọn thuật toán không quá quan trọng miễn là đủ tốt và nhất quán.
# Feature extraction
model = LogisticRegression()
rfe = RFE(model, 3)
fit = rfe.fit(X, Y)
print("Num Features: %s" % (fit.n_features_))
print("Selected Features: %s" % (fit.support_))
print("Feature Ranking: %s" % (fit.ranking_))
Num Features: 3
Selected Features: [ True False False False False True True False]
Feature Ranking: [1 2 3 5 6 1 1 4]
Bạn có thể thấy RFE chọn 3 đặc trưng hàng đầu là preg, mass và pedi.
Chúng được đánh dấu True trong mảng support và được đánh số chọn “1” trong mảng ranking. Điều này cho thấy sức mạnh của các đặc trưng này.
Tiếp theo bạn sẽ dùng hồi quy Ridge, về cơ bản là một kỹ thuật chính quy hóa và cũng là một phương pháp embedded để chọn đặc trưng.
Bài viết này cung cấp giải thích xuất sắc về hồi quy Ridge. Hãy xem qua.
# First things first
from sklearn.linear_model import Ridge
Tiếp đó, bạn sẽ dùng hồi quy Ridge để xác định hệ số R2.
Đồng thời, xem tài liệu chính thức của scikit-learn về hồi quy Ridge.
ridge = Ridge(alpha=1.0)
ridge.fit(X,Y)
Ridge(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=None,
normalize=False, random_state=None, solver='auto', tol=0.001)
Để hiểu tốt hơn kết quả của hồi quy Ridge, bạn sẽ triển khai một hàm trợ giúp nhỏ để in kết quả đẹp hơn, giúp diễn giải dễ dàng hơn.
# A helper method for pretty-printing the coefficients
def pretty_print_coefs(coefs, names = None, sort = False):
if names == None:
names = ["X%s" % x for x in range(len(coefs))]
lst = zip(coefs, names)
if sort:
lst = sorted(lst, key = lambda x:-np.abs(x[0]))
return " + ".join("%s * %s" % (round(coef, 3), name)
for coef, name in lst)
Tiếp theo, bạn sẽ truyền các hệ số của mô hình Ridge vào hàm nhỏ này và xem kết quả.
print ("Ridge model:", pretty_print_coefs(ridge.coef_))
Ridge model: 0.021 * X0 + 0.006 * X1 + -0.002 * X2 + 0.0 * X3 + -0.0 * X4 + 0.013 * X5 + 0.145 * X6 + 0.003 * X7
Bạn có thể thấy tất cả các hệ số đi kèm biến đặc trưng. Điều này sẽ tiếp tục giúp bạn chọn các đặc trưng cốt yếu nhất. Dưới đây là một vài điểm cần nhớ khi áp dụng hồi quy Ridge:
- Nó còn được gọi là Chính quy hóa L2.
- Với các đặc trưng tương quan, chúng có xu hướng nhận các hệ số tương tự nhau.
- Đặc trưng có hệ số âm thường không đóng góp nhiều. Nhưng trong bối cảnh phức tạp với rất nhiều đặc trưng, điểm số này chắc chắn sẽ giúp bạn trong quá trình ra quyết định chọn đặc trưng cuối cùng.
Vậy là kết thúc phần nghiên cứu tình huống. Những phương pháp bạn đã triển khai ở trên sẽ giúp bạn hiểu các đặc trưng của một tập dữ liệu cụ thể một cách toàn diện. Dưới đây là vài điểm then chốt về các kỹ thuật này:
- Chọn đặc trưng về bản chất là một phần của tiền xử lý dữ liệu, vốn được coi là phần tốn thời gian nhất trong bất kỳ pipeline học máy nào.
- Những kỹ thuật này sẽ giúp bạn tiếp cận vấn đề có hệ thống và thân thiện với học máy hơn. Bạn sẽ diễn giải đặc trưng chính xác hơn.
Tổng kết!
Trong bài viết này, bạn đã đề cập một trong những chủ đề thống kê được nghiên cứu kỹ lưỡng nhất: chọn đặc trưng. Bạn cũng đã làm quen với các biến thể của nó và dùng chúng để xem đặc trưng nào trong một tập dữ liệu là quan trọng.
Bạn có thể tiếp tục bài hướng dẫn này bằng cách kết hợp một thước đo tương quan vào phương pháp wrapper và xem hiệu quả ra sao. Trong quá trình đó, bạn có thể tự tạo cơ chế chọn đặc trưng của riêng mình. Đó là cách bạn xây nền tảng cho nghiên cứu nhỏ của mình. Các nhà nghiên cứu cũng đang dùng nhiều nguyên lý tính toán mềm để thực hiện chọn đặc trưng. Bản thân chủ đề này là cả một lĩnh vực học thuật và nghiên cứu. Ngoài ra, bạn nên thử các thuật toán chọn đặc trưng hiện có trên nhiều tập dữ liệu và rút ra nhận định của riêng bạn.
Vì sao các phương pháp chọn đặc trưng truyền thống vẫn còn giá trị?
Vâng, câu hỏi này là hiển nhiên. Bởi vì có các kiến trúc mạng nơ-ron (ví dụ CNN) rất có khả năng trích xuất các đặc trưng quan trọng nhất từ dữ liệu, nhưng chúng cũng có giới hạn. Dùng CNN cho một tập dữ liệu dạng bảng thông thường không có những tính chất cụ thể (những tính chất mà ảnh thường có như tính chuyển vị, biên, vị trí, đường viền, v.v.) không phải là quyết định khôn ngoan. Hơn nữa, khi bạn có dữ liệu và tài nguyên hạn chế, huấn luyện một CNN trên tập dữ liệu dạng bảng thường có thể trở thành lãng phí hoàn toàn. Vì vậy, trong những tình huống như vậy, các phương pháp bạn đã học chắc chắn sẽ hữu ích.
Dưới đây là một số tài nguyên nếu bạn muốn đào sâu hơn về chủ đề này:
- Feature Selection for Knowledge Discovery and Data Mining
- Subspace, Latent Structure, and Feature Selection: Statistical and Optimization Perspectives Workshop
- Feature Selection: Problem statement and Uses
- Using genetic algorithms for feature selection in Data Analytics
Dưới đây là các tài liệu tham khảo được dùng để viết hướng dẫn này.
- Data Mining: Concepts and Techniques; Jiawei Han Micheline Kamber Jian Pei.
- An introduction to feature selection
- Bài viết của Analytics Vidhya về chọn đặc trưng
- Hierarchical and Mixed Model - khóa học DataCamp
- Feature Selection For Machine Learning in Python
- Outlier Detection in Stream Data by Machine Learning and Feature Selection Methods
- S. Visalakshi và V. Radha, "A literature review of feature selection techniques and applications: Review of feature selection in data mining," 2014 IEEE International Conference on Computational Intelligence and Computing Research, Coimbatore, 2014, tr. 1-6.
Nếu có thắc mắc, nhớ để lại bình luận nhé!
