Trích xuất Đặc trưng trong Machine Learning: Hướng dẫn toàn diện
Nắm vững kỹ thuật trích xuất đặc trưng với các ví dụ Python thực hành cho dữ liệu hình ảnh, âm thanh và chuỗi thời gian. Học cách biến dữ liệu thô thành các đặc trưng có ý nghĩa và vượt qua các thách thức thường gặp trong ứng dụng machine learning.
Trích xuất đặc trưng trong machine learning chuyển đổi dữ liệu thô thành một tập hợp các đặc điểm có ý nghĩa, nắm bắt thông tin cốt lõi đồng thời giảm dư thừa. Nó có thể bao gồm các kỹ thuật giảm chiều và các phương pháp tạo đặc trưng mới từ dữ liệu hiện có.
Hãy tưởng tượng bạn đang cố nhận diện các loại trái cây trong chợ. Dù bạn có thể cân nhắc vô số thuộc tính (khối lượng, màu sắc, kết cấu, hình dạng, mùi, v.v.), bạn có thể nhận ra chỉ vài đặc trưng then chốt như màu và kích thước là đủ để phân biệt táo với cam. Đó chính là điều trích xuất đặc trưng làm. Nó giúp bạn tập trung vào những đặc điểm cung cấp thông tin nhiều nhất của dữ liệu.
Khi thực hiện trích xuất đặc trưng, dữ liệu gốc được biến đổi toán học thành một tập đặc trưng mới. Các đặc trưng này được thiết kế để nắm bắt các khía cạnh quan trọng nhất của dữ liệu đồng thời có thể giảm độ phức tạp. Những đặc trưng trích xuất thường biểu diễn các mẫu hoặc cấu trúc tiềm ẩn có thể không dễ thấy trong dữ liệu ban đầu.
Trích xuất đặc trưng
Trong các phần tiếp theo, chúng ta sẽ tìm hiểu vì sao trích xuất đặc trưng lại quan trọng trong machine learning và xem xét các phương pháp trích xuất đặc trưng cho những kiểu dữ liệu khác nhau kèm theo mã nguồn. Nếu bạn muốn thực hành, hãy xem khóa học Dimensionality Reduction in Python của chúng tôi, trong đó có một chương dành riêng cho trích xuất đặc trưng.
Vì sao Trích xuất Đặc trưng quan trọng trong Machine Learning?
Trích xuất đặc trưng đóng vai trò quan trọng trong machine learning. Nó có thể quyết định giữa một mô hình thất bại và một mô hình thành công. Hãy xem vì sao điều này lại nền tảng cho việc xây dựng các mô hình hiệu quả.
Nâng cao độ chính xác và hiệu suất mô hình
Khi làm việc với dữ liệu thô, các mô hình machine learning thường khó phân biệt giữa các mẫu có ý nghĩa và nhiễu. Trích xuất đặc trưng đóng vai trò như một bước tiền xử lý dữ liệu có thể cải thiện đáng kể khả năng học và hiệu suất của mô hình.
Hiệu suất mô hình so với thời gian huấn luyện
Ví dụ, khi một mô hình đạt 85% độ chính xác với dữ liệu thô, cùng mô hình đó có thể đạt 95% khi được huấn luyện trên các đặc trưng được trích xuất cẩn thận. Sự cải thiện này không đến từ việc thay đổi mô hình mà từ việc cung cấp đầu vào chất lượng hơn để mô hình học.
Quản lý các tập dữ liệu có số chiều lớn
Các tập dữ liệu hiện đại thường có hàng trăm hoặc hàng nghìn đặc trưng. Điều này mang đến nhiều thách thức mà trích xuất đặc trưng giúp giải quyết.
Lời nguyền chiều dữ liệu: Khi số lượng đặc trưng tăng, dữ liệu trở nên thưa thớt hơn trong không gian đặc trưng. Điều này khiến mô hình khó tìm ra các mẫu có ý nghĩa. Trích xuất đặc trưng tạo ra biểu diễn gọn hơn, bảo toàn các mối quan hệ quan trọng đồng thời giảm số chiều.
Tiêu thụ bộ nhớ cao: Dữ liệu nhiều chiều đòi hỏi nhiều lưu trữ và bộ nhớ trong quá trình xử lý. Bằng cách chỉ trích xuất những đặc trưng liên quan nhất, chúng ta có thể giảm đáng kể dung lượng bộ nhớ của tập dữ liệu nhưng vẫn giữ giá trị thông tin.
Trực quan hóa dữ liệu: Không thể trực tiếp trực quan hóa dữ liệu với hơn ba chiều. Trích xuất đặc trưng có thể giảm chiều xuống hai hoặc ba đặc trưng, giúp vẽ và hiểu cấu trúc dữ liệu một cách trực quan.
Trích xuất đặc trưng giải quyết những thách thức này bằng cách giảm số chiều nhưng vẫn giữ thông tin cốt lõi. Sự giảm bớt này biến dữ liệu lớn, nhiều chiều thành dạng gọn nhẹ và dễ quản lý hơn, từ đó nâng cao hiệu suất mô hình.
Giảm độ phức tạp tính toán và ngăn ngừa overfitting
Trích xuất đặc trưng mang lại hai lợi ích quan trọng cho mô hình học máy:
Giảm yêu cầu tính toán
Ít đặc trưng hơn đồng nghĩa thời gian huấn luyện nhanh hơn
Giảm sử dụng bộ nhớ khi triển khai mô hình
Tạo dự đoán hiệu quả hơn
Khả năng khái quát tốt hơn
Không gian đặc trưng đơn giản giúp ngăn overfitting
Mô hình học được các mẫu bền vững hơn
Cải thiện hiệu suất trên dữ liệu mới, chưa từng thấy
Có trích xuất đặc trưng so với không trích xuất đặc trưng
Hình minh họa trên cho thấy trích xuất đặc trưng có thể dẫn đến các mô hình đơn giản hơn, vững chắc hơn. Biểu đồ bên trái hiển thị một mô hình phức tạp đang cố khớp dữ liệu nhiễu, nhiều chiều, trong khi biểu đồ bên phải cho thấy cách trích xuất đặc trưng có thể làm lộ ra một mẫu rõ ràng, dễ khái quát hơn.
Làm việc với các đặc trưng đã trích xuất thay vì dữ liệu thô giống như đưa cho mô hình của bạn phiên bản tinh gọn của thông tin cần học. Điều này không chỉ giúp quá trình học hiệu quả hơn mà còn tạo ra các mô hình có khả năng hoạt động tốt trong các ứng dụng thực tế.
Tiếp theo, hãy xem các phương pháp trích xuất đặc trưng khác nhau.
Các phương pháp Trích xuất Đặc trưng
Các phương pháp trích xuất đặc trưng có thể phân loại rộng thành hai hướng tiếp cận chính: kỹ thuật đặc trưng thủ công và trích xuất đặc trưng tự động. Hãy xem cả hai để hiểu cách chúng giúp biến dữ liệu thô thành đặc trưng có ý nghĩa.
Kỹ thuật đặc trưng thủ công
Kỹ thuật đặc trưng thủ công sử dụng chuyên môn lĩnh vực để xác định và tạo ra các đặc trưng liên quan từ dữ liệu thô. Cách tiếp cận thực hành này dựa trên hiểu biết của chúng ta về bài toán và dữ liệu để xây dựng các đặc trưng ý nghĩa.
Trong xử lý ảnh, kỹ thuật thủ công có thể bao gồm các kỹ thuật như phát hiện biên để nhận dạng ranh giới đối tượng, histogram màu để nắm bắt phân bố màu, phân tích kết cấu để định lượng mẫu, và mô tả hình dạng để đặc trưng hình học đối tượng.
Trích xuất đặc trưng hình ảnh
Với dữ liệu bảng, kỹ thuật thủ công bao gồm tạo các biến tương tác giữa các đặc trưng hiện có, biến đổi biến bằng hàm logarit hoặc đa thức, tổng hợp các điểm dữ liệu thành thống kê có ý nghĩa, và mã hóa biến phân loại.
Trích xuất đặc trưng dữ liệu bảng
Các kỹ thuật này, được dẫn dắt bởi chuyên môn lĩnh vực, nâng cao chất lượng biểu diễn dữ liệu và có thể cải thiện đáng kể hiệu suất mô hình.
Trích xuất đặc trưng tự động
Trích xuất đặc trưng tự động sử dụng thuật toán để khám phá và tạo đặc trưng mà không cần hướng dẫn rõ ràng từ con người. Các phương pháp này đặc biệt hữu ích khi xử lý các tập dữ liệu phức tạp, nơi kỹ thuật thủ công có thể không khả thi hoặc kém hiệu quả.
Các cách tiếp cận tự động thường gặp gồm:
Principal Component Analysis (PCA): Biến đổi dữ liệu thành một tập các thành phần không tương quan, trong đó mỗi thành phần nắm bắt phần phương sai còn lại lớn nhất. Cách tiếp cận này đặc biệt hữu ích cho giảm chiều, vì nó giữ được thông tin cốt lõi trong dữ liệu đồng thời đơn giản hóa cấu trúc.
Principal Component Analysis (PCA)
Autoencoder: Đây là các mạng nơ-ron học biểu diễn nén của dữ liệu, nắm bắt các mối quan hệ phi tuyến. Chúng đặc biệt hiệu quả với các tập dữ liệu nhiều chiều, nơi các phương pháp tuyến tính truyền thống có thể kém hiệu quả.
Nhiều công cụ và thư viện đã ra đời để đơn giản hóa tác vụ kỹ thuật đặc trưng. Ví dụ, mô-đun decomposition của Scikit-learn cung cấp nhiều phương pháp giảm chiều, và PyCaret hỗ trợ khả năng lựa chọn đặc trưng tự động.
Cả hai hướng tiếp cận thủ công và tự động đều có thế mạnh riêng. Hãy xem điểm mạnh của từng phương pháp.
Kỹ thuật thủ công
Trích xuất tự động
Tích hợp kiến thức lĩnh vực
Khả năng mở rộng
Đặc trưng dễ diễn giải
Xử lý được các mẫu phức tạp
Kiểm soát chi tiết
Giảm thiên lệch con người
Tùy chỉnh theo nhu cầu cụ thể
Khám phá các mối quan hệ ẩn
Lựa chọn giữa phương pháp thủ công và tự động thường phụ thuộc vào các yếu tố như độ phức tạp của tập dữ liệu, mức độ sẵn có của chuyên môn lĩnh vực, yêu cầu diễn giải, tài nguyên tính toán và ràng buộc thời gian.
Với các tập dữ liệu rất phức tạp hoặc khi thời gian và tài nguyên hạn chế, các phương pháp tự động có thể nhanh chóng tạo ra các đặc trưng hữu ích. Ngược lại, phương pháp thủ công có thể phù hợp hơn khi có chuyên môn lĩnh vực và ưu tiên tính diễn giải, cho phép kỹ thuật đặc trưng được điều chỉnh sát với bài toán.
Trong thực tế, nhiều dự án machine learning thành công kết hợp cả hai cách tiếp cận, dùng chuyên môn lĩnh vực để định hướng kỹ thuật đặc trưng đồng thời tận dụng phương pháp tự động để khám phá thêm các mẫu mà chuyên gia có thể chưa nhận ra ngay.
Trong phần tiếp theo, chúng ta sẽ xem một số kỹ thuật trích xuất đặc trưng ở nhiều lĩnh vực.
Các Kỹ thuật Trích xuất Đặc trưng
Mỗi loại dữ liệu cần các kỹ thuật trích xuất đặc trưng riêng, tối ưu cho đặc tính của nó. Hãy xem những kỹ thuật phổ biến nhất cho các kiểu dữ liệu khác nhau.
Các kỹ thuật trích xuất đặc trưng
Trích xuất đặc trưng hình ảnh
Trích xuất đặc trưng hình ảnh chuyển đổi dữ liệu điểm ảnh thô thành các biểu diễn có ý nghĩa, nắm bắt thông tin thị giác cốt lõi. Có ba nhóm kỹ thuật chính trong thị giác máy tính hiện đại: phương pháp truyền thống, phương pháp dựa trên học sâu và phương pháp thống kê.
Các phương pháp trích xuất đặc trưng hình ảnh
Hãy xem từng phương pháp.
Phương pháp thị giác máy tính truyền thống
Scale-Invariant Feature Transform (SIFT) là một phương pháp vững chắc phát hiện các đặc trưng cục bộ nổi bật trong ảnh. Nó hoạt động bằng cách xác định các điểm đặc trưng và tạo các descriptor có tính chất:
Bất biến theo tỉ lệ và xoay của ảnh
Phần nào bất biến với thay đổi chiếu sáng
Vững với biến dạng hình học cục bộ
Thuật toán SIFT xử lý ảnh qua nhiều giai đoạn. Nó bắt đầu bằng phát hiện cực trị trong không gian tỉ lệ để xác định các điểm đặc trưng tiềm năng bất biến theo tỉ lệ. Tiếp đến, định vị điểm đặc trưng tinh chỉnh các ứng viên này bằng cách xác định vị trí chính xác và loại bỏ các điểm không ổn định.
Sau đó, gán hướng xác định một hướng nhất quán cho mỗi điểm đặc trưng, đảm bảo tính bất biến theo xoay. Cuối cùng, sinh descriptor điểm đặc trưng tạo ra các descriptor khác biệt dựa trên gradient cục bộ của ảnh, giúp ghép khớp giữa các ảnh một cách vững chắc.
Một phương pháp khác là Histogram of Oriented Gradients (HOG). Nó nắm bắt thông tin hình dạng cục bộ bằng cách phân tích mẫu gradient trên ảnh. Quá trình bắt đầu bằng tính gradient trên toàn ảnh để làm nổi chi tiết biên.
Ảnh sau đó được chia thành các ô nhỏ, và với mỗi ô, một histogram hướng gradient được tạo để tóm tắt cấu trúc cục bộ. Cuối cùng, các histogram này được chuẩn hóa trên các khối lớn hơn để đảm bảo vững trước thay đổi về chiếu sáng và độ tương phản, tạo ra một descriptor đặc trưng hữu dụng cho các tác vụ như phát hiện và nhận dạng đối tượng.
Phương pháp học sâu
Convolutional Neural Networks (CNN) đã thay đổi cách chúng ta trích xuất đặc trưng bằng việc tự động học các biểu diễn có thứ bậc.
Trích xuất đặc trưng với CNN
CNN học đặc trưng thông qua cấu trúc phân cấp của chúng. Ở các lớp đầu, chúng phát hiện các thành phần thị giác cơ bản như cạnh và màu sắc. Các lớp giữa kết hợp những thành phần này để nhận diện mẫu và hình dạng, trong khi các lớp sâu hơn nắm bắt các đối tượng phức tạp và cho phép hiểu cảnh.
Transfer learning cho phép chúng ta dùng các đặc trưng đã học sẵn từ các mô hình huấn luyện trên tập dữ liệu lớn, đặc biệt hữu ích khi làm việc với dữ liệu hạn chế.
Phương pháp thống kê
Các phương pháp thống kê trích xuất cả mẫu toàn cục lẫn cục bộ từ ảnh, hỗ trợ phân tích và diễn giải ảnh một cách vững chắc.
Ví dụ, histogram màu biểu diễn phân bố màu trong ảnh và cung cấp các đặc trưng bất biến theo xoay và tỉ lệ, rất hữu ích cho các nhiệm vụ như phân loại và truy hồi ảnh.
Phân tích kết cấu nắm bắt các mẫu lặp lại và đặc điểm bề mặt bằng các kỹ thuật như Ma trận Đồng xuất hiện Mức xám (GLCM), hiệu quả cho các ứng dụng gồm nhận dạng vật liệu và phân loại cảnh.
Ngoài ra, phát hiện biên xác định ranh giới và các thay đổi cường độ đáng kể thông qua các phương pháp như Sobel, Canny và Laplacian, đóng vai trò then chốt trong phát hiện đối tượng và phân tích hình dạng.
Việc chọn phương pháp trích xuất đặc trưng phụ thuộc vào nhiều yếu tố. Nó cần phù hợp với yêu cầu cụ thể của tác vụ, cân nhắc tài nguyên tính toán sẵn có và tính cần thiết của khả năng diễn giải.
Ngoài ra, đặc điểm của tập dữ liệu—như kích thước, mức độ nhiễu và độ phức tạp—cũng rất quan trọng, cùng với các tính chất bất biến cần thiết như tỉ lệ, xoay và chiếu sáng.
Trích xuất đặc trưng âm thanh
Hãy tưởng tượng dạy máy tính hiểu lời nói như con người. Đây là lúc Mel-Frequency Cepstral Coefficients (MFCC) xuất hiện.
MFCC là các đặc trưng âm thanh đặc biệt phân rã âm thanh theo cách tương tự tai người xử lý. Chúng đặc biệt hiệu quả vì tập trung vào các tần số mà con người nhạy nhất. Hãy xem chúng như một cách chuyển âm thanh sang định dạng mà cả máy tính và thính giác con người đều thấy có ý nghĩa.
Mel-Frequency Cepstral Coefficients
Quy trình bắt đầu bằng việc chia tín hiệu âm thanh thành các đoạn ngắn, thường dài 20-40 mili giây. Với mỗi đoạn, chúng ta áp dụng một loạt biến đổi toán học chuyển sóng âm thô thành các thành phần tần số. Điểm thú vị là ở đây. Thay vì coi mọi tần số như nhau, ta dùng cái gọi là thang Mel.
Công thức này có thể trông phức tạp, nhưng thực chất chỉ là ánh xạ tần số để phù hợp với cách con người cảm nhận âm thanh. Tai chúng ta phân biệt tốt hơn ở dải tần thấp so với cao, và thang Mel phản ánh thiên kiến tự nhiên này.
Trong nhận dạng giọng nói, MFCC là nền tảng để hiểu ai đang nói và họ nói gì. Khi bạn nói chuyện với trợ lý ảo trên điện thoại, rất có thể nó đang dùng MFCC để xử lý giọng nói của bạn. Các hệ số này giúp nắm bắt đặc trưng riêng của từng giọng nói, nên rất quý giá cho hệ thống định danh người nói.
Với phân tích cảm xúc trong giọng nói, MFCC giúp phát hiện những thay đổi tinh tế thể hiện cảm xúc. Chúng có thể nắm bắt biến đổi cao độ, âm sắc và tốc độ nói cho thấy ai đó vui, buồn, giận dữ hay trung tính. Ví dụ, khi phân tích các cuộc gọi chăm sóc khách hàng, MFCC có thể giúp nhận diện mức độ hài lòng dựa trên cách họ nói, không chỉ nội dung họ nói.
Trích xuất đặc trưng chuỗi thời gian
Khi làm việc với dữ liệu chuỗi thời gian, việc trích xuất các đặc trưng có ý nghĩa giúp chúng ta nắm bắt các mẫu và xu hướng biến đổi theo thời gian. Hãy xem một số kỹ thuật chính dùng để biến đổi dữ liệu chuỗi thời gian thô thành đặc trưng hữu ích.
Các phương pháp trích xuất đặc trưng chuỗi thời gian
Biến đổi Fourier phân rã dữ liệu chuỗi thời gian thành các thành phần tần số, làm lộ ra các mẫu tuần hoàn ẩn. Công thức là:
Các phương pháp thống kê bổ trợ phân tích tần số bằng cách nắm bắt đặc tính theo thời gian. Các đặc trưng phổ biến gồm trung bình trượt, độ lệch chuẩn và thành phần xu hướng. Những kỹ thuật này đặc biệt mạnh trong dự báo tài chính, nơi chúng giúp nhận diện xu hướng thị trường và bất thường.
Ví dụ, trong phân tích thị trường chứng khoán, kết hợp đặc trưng Fourier với thước đo thống kê có thể làm rõ cả xu hướng dài hạn và các mẫu chu kỳ. Tương tự, trong môi trường công nghiệp, các phương pháp này giúp phát hiện bất thường thiết bị bằng cách phân tích các mẫu dữ liệu cảm biến theo thời gian.
Công cụ và Thư viện dành cho Trích xuất Đặc trưng
Hãy xem một số công cụ thiết yếu giúp triển khai các phương pháp trích xuất đặc trưng này một cách đơn giản và hiệu quả.
Công cụ và Thư viện cho Trích xuất Đặc trưng
Với xử lý ảnh, OpenCV và scikit-image cung cấp bộ công cụ toàn diện để triển khai nhiều kỹ thuật trích xuất đặc trưng. Các thư viện này có các triển khai hiệu quả của SIFT, HOG và các thuật toán đã bàn. Khi làm việc với phương pháp học sâu, các framework như TensorFlow và PyTorch trở nên vô giá. Bạn có thể bắt đầu với hướng dẫn OpenCV của chúng tôi để tìm hiểu thêm.
Các tác vụ xử lý âm thanh được đơn giản hóa với các thư viện như LibROSA, vốn xuất sắc trong việc trích xuất MFCC và các đặc trưng âm học khác. PyAudioAnalysis mở rộng khả năng này với các giao diện cấp cao cho các tác vụ phân tích âm thanh.
Với dữ liệu chuỗi thời gian, tsfresh và Featuretools tự động hóa quá trình trích xuất đặc trưng. Các thư viện này có thể tự động tạo và chọn đặc trưng liên quan từ dữ liệu thời gian của bạn, giúp bạn tập trung vào phát triển mô hình thay vì kỹ thuật đặc trưng.
Ví dụ về Trích xuất Đặc trưng
Hãy đưa kiến thức vào thực hành với một số ví dụ. Chúng ta sẽ bắt đầu với trích xuất đặc trưng hình ảnh, một trong những ứng dụng phổ biến nhất của thị giác máy tính.
Trích xuất đặc trưng hình ảnh bằng OpenCV
Đầu tiên, hãy import các thư viện cần thiết
# Import required librariesimport cv2
import numpy as np
import matplotlib.pyplot as pltĐược hỗ trợ bởi
Giờ hãy tải một ảnh để trích xuất các đặc trưng liên quan. Trong ví dụ này, chúng ta sẽ dùng một ảnh Godzilla tải từ internet.
# Load the image
image = cv2.imread('godzilla.jpg')# Convert BGR to RGB (OpenCV loads in BGR format)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)# Display the original image
plt.imshow(image_rgb)
plt.title('Original Image')
plt.axis('off')
plt.show()Được hỗ trợ bởi
Kết quả:
Trước khi áp dụng phát hiện biên, chúng ta cần tiền xử lý ảnh như sau:
# Convert the image to grayscale
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# Apply Gaussian blur to reduce noise
blurred = cv2.GaussianBlur(gray_image,(5,5),0)Được hỗ trợ bởi
Cuối cùng, hãy áp dụng thuật toán phát hiện biên Canny và trực quan hóa kết quả:
Bộ phát hiện biên Canny giúp xác định các ranh giới và đặc trưng quan trọng trong ảnh, có thể dùng cho phân tích tiếp theo hoặc làm đầu vào cho các mô hình học máy.
Trích xuất MFCC từ âm thanh bằng LibROSA
Trước khi xử lý tệp âm thanh, chúng ta cần cài đặt các thư viện cần thiết. Vì LibROSA không có trong thư viện chuẩn của Python, chúng ta sẽ dùng pip để cài đặt:
# Install required libraries# Run these commands in your terminal or command prompt
pip install librosa
pip install numpy
pip install matplotlibĐược hỗ trợ bởi
LibROSA là một thư viện mạnh mẽ dành cho phân tích nhạc và âm thanh, nên hãy bắt đầu bằng cách import nó cùng các thư viện cần thiết khác:
# Import required librariesimport librosa
import librosa.display
import numpy as np
import matplotlib.pyplot as pltĐược hỗ trợ bởi
Các tệp âm thanh chứa rất nhiều thông tin ở dạng sóng. Để làm việc với dữ liệu này, đầu tiên ta cần tải nó vào chương trình. LibROSA giúp chuyển tệp âm thanh sang định dạng có thể phân tích:
# Load the audio file# Duration is limited to 10 seconds for this example
audio_path ='audio_sample.wav'
y, sr = librosa.load(audio_path, duration=10)# Display the waveform
plt.figure(figsize=(10,4))
plt.plot(y)
plt.title('Audio Waveform')
plt.show()Được hỗ trợ bởi
Kết quả:
Sau khi đã tải âm thanh, ta cần trích xuất các đặc trưng có ý nghĩa. Tai người tự nhiên phân rã âm thanh thành các thành phần tần số khác nhau, và MFCC mô phỏng quá trình này. Chúng ta dùng hàm trích xuất đặc trưng của librosa để tính các hệ số này:
# Extract MFCC features
mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13)# Display the MFCC
plt.figure(figsize=(10,4))
librosa.display.specshow(mfccs, x_axis='time')
plt.colorbar(format='%+2.0f dB')
plt.title('MFCC')
plt.show()Được hỗ trợ bởi
Kết quả:
Ở đây, chúng ta đặt n_mfcc=13 vì 13 hệ số đầu tiên thường nắm bắt những khía cạnh quan trọng nhất của âm thanh, hữu ích cho các tác vụ như nhận dạng giọng nói. Biểu đồ kết quả cho thấy các đặc trưng này thay đổi theo thời gian, trong đó màu sáng hơn biểu thị giá trị cao hơn.
Trích xuất đặc trưng từ chuỗi thời gian với tsfresh
Đầu tiên, hãy cài đặt các thư viện cần thiết. Chúng ta sẽ dùng yfinance để lấy dữ liệu tài chính, cùng với tsfresh để trích xuất đặc trưng:
# Install required libraries# Run these commands in your terminal or command prompt
pip install tsfresh
pip install pandas
pip install numpy
pip install matplotlib
pip install yfinanceĐược hỗ trợ bởi
Bây giờ hãy import các thư viện và lấy một số dữ liệu tài chính thực tế:
# Import required librariesimport pandas as pd
import numpy as np
from tsfresh import extract_features
from tsfresh.feature_extraction import MinimalFCParameters
import matplotlib.pyplot as plt
import yfinance as yfĐược hỗ trợ bởi
Hãy lấy dữ liệu thị trường chứng khoán thực. Chúng ta sẽ dùng dữ liệu cổ phiếu của Apple làm ví dụ:
# Download Apple's stock data for the last 2 years
aapl = yf.Ticker("AAPL")
df = aapl.history(period="2y")# Prepare the data in the format tsfresh expects
df_tsfresh = pd.DataFrame({'id':[0]*len(df),# Each time series needs an ID'time':range(len(df)),'closing_price': df['Close']# We'll use closing prices})# Display first few rows of our dataprint("Original stock data shape:", df_tsfresh.shape)print("\nFirst few rows:")print(df_tsfresh.head())Được hỗ trợ bởi
Kết quả:
Giờ hãy trích xuất đặc trưng từ dữ liệu chuỗi thời gian tài chính của chúng ta:
# Set up the feature extraction parameters
extraction_settings = MinimalFCParameters()# Extract features automatically
extracted_features = extract_features(df_tsfresh,
column_id='id',
column_sort='time',
column_value='values',
default_fc_parameters=extraction_settings)# Display the extracted featuresprint("\nExtracted features shape:", extracted_features.shape)print("\nExtracted features:")print(extracted_features.head())Được hỗ trợ bởi
Kết quả:
Ở đây, chúng ta dùng MinimalFCParameters() để chỉ định các đặc trưng cần trích xuất. Điều này cung cấp một bộ cơ bản các đặc trưng chuỗi thời gian có ý nghĩa như trung bình, phương sai và đặc tính xu hướng, thiết yếu để hiểu các mẫu trong dữ liệu.
Thách thức trong Trích xuất Đặc trưng
Khi làm việc với trích xuất đặc trưng, chúng ta thường gặp các thách thức.
Số chiều lớn và ràng buộc tính toán thường xuất hiện khi xử lý các tập dữ liệu lớn. Ví dụ, trích xuất đặc trưng từ ảnh độ phân giải cao hoặc tệp âm thanh dài có thể tiêu tốn đáng kể bộ nhớ và năng lực xử lý.
Overfitting do các đặc trưng không liên quan hoặc dư thừa là một thách thức phổ biến khác. Khi trích xuất quá nhiều đặc trưng, mô hình có thể học nhiễu thay vì các mẫu có ý nghĩa. Điều này đặc biệt thường gặp trong xử lý ảnh và âm thanh nơi có thể sinh ra hàng nghìn đặc trưng.
Để vượt qua các thách thức này, hãy cân nhắc các chiến lược sau:
Dùng kiến thức lĩnh vực để chọn đặc trưng liên quan
Áp dụng các phương pháp lựa chọn đặc trưng để giảm số chiều
Triển khai kỹ thuật đặc trưng phù hợp với loại dữ liệu của bạn
Những thách thức này đòi hỏi xem xét kỹ lưỡng và cân bằng giữa sự phong phú của đặc trưng và hiệu quả tính toán.
Kết luận
Trích xuất đặc trưng là kỹ năng nền tảng trong machine learning, chuyển dữ liệu thô thành các biểu diễn có ý nghĩa. Qua các ví dụ thực hành với OpenCV, LibROSA và tsfresh, chúng ta đã thấy cách trích xuất đặc trưng từ các loại dữ liệu khác nhau. Bằng cách hiểu các kỹ thuật này và thách thức của chúng, chúng ta có thể xây dựng các mô hình machine learning hiệu quả.
Sẵn sàng tìm hiểu sâu hơn? Hãy xem các tài nguyên sau:
Tôi là một biên tập viên nội dung về khoa học dữ liệu. Tôi yêu thích sáng tạo nội dung xoay quanh các chủ đề AI/ML/DS. Tôi cũng khám phá các công cụ AI mới và viết về chúng.
Trích xuất đặc trưng trong machine learning chuyển đổi dữ liệu thô thành một tập hợp các đặc điểm có ý nghĩa, nắm bắt thông tin cốt lõi đồng thời giảm dư thừa. Nó có thể bao gồm các kỹ thuật giảm chiều và các phương pháp tạo đặc trưng mới từ dữ liệu hiện có.
Hãy tưởng tượng bạn đang cố nhận diện các loại trái cây trong chợ. Dù bạn có thể cân nhắc vô số thuộc tính (khối lượng, màu sắc, kết cấu, hình dạng, mùi, v.v.), bạn có thể nhận ra chỉ vài đặc trưng then chốt như màu và kích thước là đủ để phân biệt táo với cam. Đó chính là điều trích xuất đặc trưng làm. Nó giúp bạn tập trung vào những đặc điểm cung cấp thông tin nhiều nhất của dữ liệu.
Khi thực hiện trích xuất đặc trưng, dữ liệu gốc được biến đổi toán học thành một tập đặc trưng mới. Các đặc trưng này được thiết kế để nắm bắt các khía cạnh quan trọng nhất của dữ liệu đồng thời có thể giảm độ phức tạp. Những đặc trưng trích xuất thường biểu diễn các mẫu hoặc cấu trúc tiềm ẩn có thể không dễ thấy trong dữ liệu ban đầu.
Trích xuất đặc trưng
Trong các phần tiếp theo, chúng ta sẽ tìm hiểu vì sao trích xuất đặc trưng lại quan trọng trong machine learning và xem xét các phương pháp trích xuất đặc trưng cho những kiểu dữ liệu khác nhau kèm theo mã nguồn. Nếu bạn muốn thực hành, hãy xem khóa học Dimensionality Reduction in Python của chúng tôi, trong đó có một chương dành riêng cho trích xuất đặc trưng.
Vì sao Trích xuất Đặc trưng quan trọng trong Machine Learning?
Trích xuất đặc trưng đóng vai trò quan trọng trong machine learning. Nó có thể quyết định giữa một mô hình thất bại và một mô hình thành công. Hãy xem vì sao điều này lại nền tảng cho việc xây dựng các mô hình hiệu quả.
Nâng cao độ chính xác và hiệu suất mô hình
Khi làm việc với dữ liệu thô, các mô hình machine learning thường khó phân biệt giữa các mẫu có ý nghĩa và nhiễu. Trích xuất đặc trưng đóng vai trò như một bước tiền xử lý dữ liệu có thể cải thiện đáng kể khả năng học và hiệu suất của mô hình.
Hiệu suất mô hình so với thời gian huấn luyện
Ví dụ, khi một mô hình đạt 85% độ chính xác với dữ liệu thô, cùng mô hình đó có thể đạt 95% khi được huấn luyện trên các đặc trưng được trích xuất cẩn thận. Sự cải thiện này không đến từ việc thay đổi mô hình mà từ việc cung cấp đầu vào chất lượng hơn để mô hình học.
Quản lý các tập dữ liệu có số chiều lớn
Các tập dữ liệu hiện đại thường có hàng trăm hoặc hàng nghìn đặc trưng. Điều này mang đến nhiều thách thức mà trích xuất đặc trưng giúp giải quyết.
Trích xuất đặc trưng giải quyết những thách thức này bằng cách giảm số chiều nhưng vẫn giữ thông tin cốt lõi. Sự giảm bớt này biến dữ liệu lớn, nhiều chiều thành dạng gọn nhẹ và dễ quản lý hơn, từ đó nâng cao hiệu suất mô hình.
Giảm độ phức tạp tính toán và ngăn ngừa overfitting
Trích xuất đặc trưng mang lại hai lợi ích quan trọng cho mô hình học máy:
Có trích xuất đặc trưng so với không trích xuất đặc trưng
Hình minh họa trên cho thấy trích xuất đặc trưng có thể dẫn đến các mô hình đơn giản hơn, vững chắc hơn. Biểu đồ bên trái hiển thị một mô hình phức tạp đang cố khớp dữ liệu nhiễu, nhiều chiều, trong khi biểu đồ bên phải cho thấy cách trích xuất đặc trưng có thể làm lộ ra một mẫu rõ ràng, dễ khái quát hơn.
Làm việc với các đặc trưng đã trích xuất thay vì dữ liệu thô giống như đưa cho mô hình của bạn phiên bản tinh gọn của thông tin cần học. Điều này không chỉ giúp quá trình học hiệu quả hơn mà còn tạo ra các mô hình có khả năng hoạt động tốt trong các ứng dụng thực tế.
Tiếp theo, hãy xem các phương pháp trích xuất đặc trưng khác nhau.
Các phương pháp Trích xuất Đặc trưng
Các phương pháp trích xuất đặc trưng có thể phân loại rộng thành hai hướng tiếp cận chính: kỹ thuật đặc trưng thủ công và trích xuất đặc trưng tự động. Hãy xem cả hai để hiểu cách chúng giúp biến dữ liệu thô thành đặc trưng có ý nghĩa.
Kỹ thuật đặc trưng thủ công
Kỹ thuật đặc trưng thủ công sử dụng chuyên môn lĩnh vực để xác định và tạo ra các đặc trưng liên quan từ dữ liệu thô. Cách tiếp cận thực hành này dựa trên hiểu biết của chúng ta về bài toán và dữ liệu để xây dựng các đặc trưng ý nghĩa.
Trong xử lý ảnh, kỹ thuật thủ công có thể bao gồm các kỹ thuật như phát hiện biên để nhận dạng ranh giới đối tượng, histogram màu để nắm bắt phân bố màu, phân tích kết cấu để định lượng mẫu, và mô tả hình dạng để đặc trưng hình học đối tượng.
Trích xuất đặc trưng hình ảnh
Với dữ liệu bảng, kỹ thuật thủ công bao gồm tạo các biến tương tác giữa các đặc trưng hiện có, biến đổi biến bằng hàm logarit hoặc đa thức, tổng hợp các điểm dữ liệu thành thống kê có ý nghĩa, và mã hóa biến phân loại.
Trích xuất đặc trưng dữ liệu bảng
Các kỹ thuật này, được dẫn dắt bởi chuyên môn lĩnh vực, nâng cao chất lượng biểu diễn dữ liệu và có thể cải thiện đáng kể hiệu suất mô hình.
Trích xuất đặc trưng tự động
Trích xuất đặc trưng tự động sử dụng thuật toán để khám phá và tạo đặc trưng mà không cần hướng dẫn rõ ràng từ con người. Các phương pháp này đặc biệt hữu ích khi xử lý các tập dữ liệu phức tạp, nơi kỹ thuật thủ công có thể không khả thi hoặc kém hiệu quả.
Các cách tiếp cận tự động thường gặp gồm:
Principal Component Analysis (PCA): Biến đổi dữ liệu thành một tập các thành phần không tương quan, trong đó mỗi thành phần nắm bắt phần phương sai còn lại lớn nhất. Cách tiếp cận này đặc biệt hữu ích cho giảm chiều, vì nó giữ được thông tin cốt lõi trong dữ liệu đồng thời đơn giản hóa cấu trúc.
Principal Component Analysis (PCA)
Autoencoder: Đây là các mạng nơ-ron học biểu diễn nén của dữ liệu, nắm bắt các mối quan hệ phi tuyến. Chúng đặc biệt hiệu quả với các tập dữ liệu nhiều chiều, nơi các phương pháp tuyến tính truyền thống có thể kém hiệu quả.
Nhiều công cụ và thư viện đã ra đời để đơn giản hóa tác vụ kỹ thuật đặc trưng. Ví dụ, mô-đun decomposition của Scikit-learn cung cấp nhiều phương pháp giảm chiều, và PyCaret hỗ trợ khả năng lựa chọn đặc trưng tự động.
Cả hai hướng tiếp cận thủ công và tự động đều có thế mạnh riêng. Hãy xem điểm mạnh của từng phương pháp.
Kỹ thuật thủ công
Trích xuất tự động
Tích hợp kiến thức lĩnh vực
Khả năng mở rộng
Đặc trưng dễ diễn giải
Xử lý được các mẫu phức tạp
Kiểm soát chi tiết
Giảm thiên lệch con người
Tùy chỉnh theo nhu cầu cụ thể
Khám phá các mối quan hệ ẩn
Lựa chọn giữa phương pháp thủ công và tự động thường phụ thuộc vào các yếu tố như độ phức tạp của tập dữ liệu, mức độ sẵn có của chuyên môn lĩnh vực, yêu cầu diễn giải, tài nguyên tính toán và ràng buộc thời gian.
Với các tập dữ liệu rất phức tạp hoặc khi thời gian và tài nguyên hạn chế, các phương pháp tự động có thể nhanh chóng tạo ra các đặc trưng hữu ích. Ngược lại, phương pháp thủ công có thể phù hợp hơn khi có chuyên môn lĩnh vực và ưu tiên tính diễn giải, cho phép kỹ thuật đặc trưng được điều chỉnh sát với bài toán.
Trong thực tế, nhiều dự án machine learning thành công kết hợp cả hai cách tiếp cận, dùng chuyên môn lĩnh vực để định hướng kỹ thuật đặc trưng đồng thời tận dụng phương pháp tự động để khám phá thêm các mẫu mà chuyên gia có thể chưa nhận ra ngay.
Trong phần tiếp theo, chúng ta sẽ xem một số kỹ thuật trích xuất đặc trưng ở nhiều lĩnh vực.
Các Kỹ thuật Trích xuất Đặc trưng
Mỗi loại dữ liệu cần các kỹ thuật trích xuất đặc trưng riêng, tối ưu cho đặc tính của nó. Hãy xem những kỹ thuật phổ biến nhất cho các kiểu dữ liệu khác nhau.
Các kỹ thuật trích xuất đặc trưng
Trích xuất đặc trưng hình ảnh
Trích xuất đặc trưng hình ảnh chuyển đổi dữ liệu điểm ảnh thô thành các biểu diễn có ý nghĩa, nắm bắt thông tin thị giác cốt lõi. Có ba nhóm kỹ thuật chính trong thị giác máy tính hiện đại: phương pháp truyền thống, phương pháp dựa trên học sâu và phương pháp thống kê.
Các phương pháp trích xuất đặc trưng hình ảnh
Hãy xem từng phương pháp.
Phương pháp thị giác máy tính truyền thống
Scale-Invariant Feature Transform (SIFT) là một phương pháp vững chắc phát hiện các đặc trưng cục bộ nổi bật trong ảnh. Nó hoạt động bằng cách xác định các điểm đặc trưng và tạo các descriptor có tính chất:
Thuật toán SIFT xử lý ảnh qua nhiều giai đoạn. Nó bắt đầu bằng phát hiện cực trị trong không gian tỉ lệ để xác định các điểm đặc trưng tiềm năng bất biến theo tỉ lệ. Tiếp đến, định vị điểm đặc trưng tinh chỉnh các ứng viên này bằng cách xác định vị trí chính xác và loại bỏ các điểm không ổn định.
Sau đó, gán hướng xác định một hướng nhất quán cho mỗi điểm đặc trưng, đảm bảo tính bất biến theo xoay. Cuối cùng, sinh descriptor điểm đặc trưng tạo ra các descriptor khác biệt dựa trên gradient cục bộ của ảnh, giúp ghép khớp giữa các ảnh một cách vững chắc.
Một phương pháp khác là Histogram of Oriented Gradients (HOG). Nó nắm bắt thông tin hình dạng cục bộ bằng cách phân tích mẫu gradient trên ảnh. Quá trình bắt đầu bằng tính gradient trên toàn ảnh để làm nổi chi tiết biên.
Ảnh sau đó được chia thành các ô nhỏ, và với mỗi ô, một histogram hướng gradient được tạo để tóm tắt cấu trúc cục bộ. Cuối cùng, các histogram này được chuẩn hóa trên các khối lớn hơn để đảm bảo vững trước thay đổi về chiếu sáng và độ tương phản, tạo ra một descriptor đặc trưng hữu dụng cho các tác vụ như phát hiện và nhận dạng đối tượng.
Phương pháp học sâu
Convolutional Neural Networks (CNN) đã thay đổi cách chúng ta trích xuất đặc trưng bằng việc tự động học các biểu diễn có thứ bậc.
Trích xuất đặc trưng với CNN
CNN học đặc trưng thông qua cấu trúc phân cấp của chúng. Ở các lớp đầu, chúng phát hiện các thành phần thị giác cơ bản như cạnh và màu sắc. Các lớp giữa kết hợp những thành phần này để nhận diện mẫu và hình dạng, trong khi các lớp sâu hơn nắm bắt các đối tượng phức tạp và cho phép hiểu cảnh.
Transfer learning cho phép chúng ta dùng các đặc trưng đã học sẵn từ các mô hình huấn luyện trên tập dữ liệu lớn, đặc biệt hữu ích khi làm việc với dữ liệu hạn chế.
Phương pháp thống kê
Các phương pháp thống kê trích xuất cả mẫu toàn cục lẫn cục bộ từ ảnh, hỗ trợ phân tích và diễn giải ảnh một cách vững chắc.
Ví dụ, histogram màu biểu diễn phân bố màu trong ảnh và cung cấp các đặc trưng bất biến theo xoay và tỉ lệ, rất hữu ích cho các nhiệm vụ như phân loại và truy hồi ảnh.
Phân tích kết cấu nắm bắt các mẫu lặp lại và đặc điểm bề mặt bằng các kỹ thuật như Ma trận Đồng xuất hiện Mức xám (GLCM), hiệu quả cho các ứng dụng gồm nhận dạng vật liệu và phân loại cảnh.
Ngoài ra, phát hiện biên xác định ranh giới và các thay đổi cường độ đáng kể thông qua các phương pháp như Sobel, Canny và Laplacian, đóng vai trò then chốt trong phát hiện đối tượng và phân tích hình dạng.
Việc chọn phương pháp trích xuất đặc trưng phụ thuộc vào nhiều yếu tố. Nó cần phù hợp với yêu cầu cụ thể của tác vụ, cân nhắc tài nguyên tính toán sẵn có và tính cần thiết của khả năng diễn giải.
Ngoài ra, đặc điểm của tập dữ liệu—như kích thước, mức độ nhiễu và độ phức tạp—cũng rất quan trọng, cùng với các tính chất bất biến cần thiết như tỉ lệ, xoay và chiếu sáng.
Trích xuất đặc trưng âm thanh
Hãy tưởng tượng dạy máy tính hiểu lời nói như con người. Đây là lúc Mel-Frequency Cepstral Coefficients (MFCC) xuất hiện.
MFCC là các đặc trưng âm thanh đặc biệt phân rã âm thanh theo cách tương tự tai người xử lý. Chúng đặc biệt hiệu quả vì tập trung vào các tần số mà con người nhạy nhất. Hãy xem chúng như một cách chuyển âm thanh sang định dạng mà cả máy tính và thính giác con người đều thấy có ý nghĩa.
Mel-Frequency Cepstral Coefficients
Quy trình bắt đầu bằng việc chia tín hiệu âm thanh thành các đoạn ngắn, thường dài 20-40 mili giây. Với mỗi đoạn, chúng ta áp dụng một loạt biến đổi toán học chuyển sóng âm thô thành các thành phần tần số. Điểm thú vị là ở đây. Thay vì coi mọi tần số như nhau, ta dùng cái gọi là thang Mel.
Công thức này có thể trông phức tạp, nhưng thực chất chỉ là ánh xạ tần số để phù hợp với cách con người cảm nhận âm thanh. Tai chúng ta phân biệt tốt hơn ở dải tần thấp so với cao, và thang Mel phản ánh thiên kiến tự nhiên này.
Trong nhận dạng giọng nói, MFCC là nền tảng để hiểu ai đang nói và họ nói gì. Khi bạn nói chuyện với trợ lý ảo trên điện thoại, rất có thể nó đang dùng MFCC để xử lý giọng nói của bạn. Các hệ số này giúp nắm bắt đặc trưng riêng của từng giọng nói, nên rất quý giá cho hệ thống định danh người nói.
Với phân tích cảm xúc trong giọng nói, MFCC giúp phát hiện những thay đổi tinh tế thể hiện cảm xúc. Chúng có thể nắm bắt biến đổi cao độ, âm sắc và tốc độ nói cho thấy ai đó vui, buồn, giận dữ hay trung tính. Ví dụ, khi phân tích các cuộc gọi chăm sóc khách hàng, MFCC có thể giúp nhận diện mức độ hài lòng dựa trên cách họ nói, không chỉ nội dung họ nói.
Trích xuất đặc trưng chuỗi thời gian
Khi làm việc với dữ liệu chuỗi thời gian, việc trích xuất các đặc trưng có ý nghĩa giúp chúng ta nắm bắt các mẫu và xu hướng biến đổi theo thời gian. Hãy xem một số kỹ thuật chính dùng để biến đổi dữ liệu chuỗi thời gian thô thành đặc trưng hữu ích.
Các phương pháp trích xuất đặc trưng chuỗi thời gian
Biến đổi Fourier phân rã dữ liệu chuỗi thời gian thành các thành phần tần số, làm lộ ra các mẫu tuần hoàn ẩn. Công thức là:
Các phương pháp thống kê bổ trợ phân tích tần số bằng cách nắm bắt đặc tính theo thời gian. Các đặc trưng phổ biến gồm trung bình trượt, độ lệch chuẩn và thành phần xu hướng. Những kỹ thuật này đặc biệt mạnh trong dự báo tài chính, nơi chúng giúp nhận diện xu hướng thị trường và bất thường.
Ví dụ, trong phân tích thị trường chứng khoán, kết hợp đặc trưng Fourier với thước đo thống kê có thể làm rõ cả xu hướng dài hạn và các mẫu chu kỳ. Tương tự, trong môi trường công nghiệp, các phương pháp này giúp phát hiện bất thường thiết bị bằng cách phân tích các mẫu dữ liệu cảm biến theo thời gian.
Công cụ và Thư viện dành cho Trích xuất Đặc trưng
Hãy xem một số công cụ thiết yếu giúp triển khai các phương pháp trích xuất đặc trưng này một cách đơn giản và hiệu quả.
Công cụ và Thư viện cho Trích xuất Đặc trưng
Với xử lý ảnh, OpenCV và scikit-image cung cấp bộ công cụ toàn diện để triển khai nhiều kỹ thuật trích xuất đặc trưng. Các thư viện này có các triển khai hiệu quả của SIFT, HOG và các thuật toán đã bàn. Khi làm việc với phương pháp học sâu, các framework như TensorFlow và PyTorch trở nên vô giá. Bạn có thể bắt đầu với hướng dẫn OpenCV của chúng tôi để tìm hiểu thêm.
Các tác vụ xử lý âm thanh được đơn giản hóa với các thư viện như LibROSA, vốn xuất sắc trong việc trích xuất MFCC và các đặc trưng âm học khác. PyAudioAnalysis mở rộng khả năng này với các giao diện cấp cao cho các tác vụ phân tích âm thanh.
Với dữ liệu chuỗi thời gian, tsfresh và Featuretools tự động hóa quá trình trích xuất đặc trưng. Các thư viện này có thể tự động tạo và chọn đặc trưng liên quan từ dữ liệu thời gian của bạn, giúp bạn tập trung vào phát triển mô hình thay vì kỹ thuật đặc trưng.
Ví dụ về Trích xuất Đặc trưng
Hãy đưa kiến thức vào thực hành với một số ví dụ. Chúng ta sẽ bắt đầu với trích xuất đặc trưng hình ảnh, một trong những ứng dụng phổ biến nhất của thị giác máy tính.
Trích xuất đặc trưng hình ảnh bằng OpenCV
Đầu tiên, hãy import các thư viện cần thiết
Giờ hãy tải một ảnh để trích xuất các đặc trưng liên quan. Trong ví dụ này, chúng ta sẽ dùng một ảnh Godzilla tải từ internet.
Kết quả:
Trước khi áp dụng phát hiện biên, chúng ta cần tiền xử lý ảnh như sau:
Cuối cùng, hãy áp dụng thuật toán phát hiện biên Canny và trực quan hóa kết quả:
Kết quả:
Bộ phát hiện biên Canny giúp xác định các ranh giới và đặc trưng quan trọng trong ảnh, có thể dùng cho phân tích tiếp theo hoặc làm đầu vào cho các mô hình học máy.
Trích xuất MFCC từ âm thanh bằng LibROSA
Trước khi xử lý tệp âm thanh, chúng ta cần cài đặt các thư viện cần thiết. Vì LibROSA không có trong thư viện chuẩn của Python, chúng ta sẽ dùng pip để cài đặt:
LibROSA là một thư viện mạnh mẽ dành cho phân tích nhạc và âm thanh, nên hãy bắt đầu bằng cách import nó cùng các thư viện cần thiết khác:
Các tệp âm thanh chứa rất nhiều thông tin ở dạng sóng. Để làm việc với dữ liệu này, đầu tiên ta cần tải nó vào chương trình. LibROSA giúp chuyển tệp âm thanh sang định dạng có thể phân tích:
Kết quả:
Sau khi đã tải âm thanh, ta cần trích xuất các đặc trưng có ý nghĩa. Tai người tự nhiên phân rã âm thanh thành các thành phần tần số khác nhau, và MFCC mô phỏng quá trình này. Chúng ta dùng hàm trích xuất đặc trưng của librosa để tính các hệ số này:
Kết quả:
Ở đây, chúng ta đặt
n_mfcc=13vì 13 hệ số đầu tiên thường nắm bắt những khía cạnh quan trọng nhất của âm thanh, hữu ích cho các tác vụ như nhận dạng giọng nói. Biểu đồ kết quả cho thấy các đặc trưng này thay đổi theo thời gian, trong đó màu sáng hơn biểu thị giá trị cao hơn.Trích xuất đặc trưng từ chuỗi thời gian với tsfresh
Đầu tiên, hãy cài đặt các thư viện cần thiết. Chúng ta sẽ dùng
yfinanceđể lấy dữ liệu tài chính, cùng vớitsfreshđể trích xuất đặc trưng:Bây giờ hãy import các thư viện và lấy một số dữ liệu tài chính thực tế:
Hãy lấy dữ liệu thị trường chứng khoán thực. Chúng ta sẽ dùng dữ liệu cổ phiếu của Apple làm ví dụ:
Kết quả:
Giờ hãy trích xuất đặc trưng từ dữ liệu chuỗi thời gian tài chính của chúng ta:
Kết quả:
Ở đây, chúng ta dùng
MinimalFCParameters()để chỉ định các đặc trưng cần trích xuất. Điều này cung cấp một bộ cơ bản các đặc trưng chuỗi thời gian có ý nghĩa như trung bình, phương sai và đặc tính xu hướng, thiết yếu để hiểu các mẫu trong dữ liệu.Thách thức trong Trích xuất Đặc trưng
Khi làm việc với trích xuất đặc trưng, chúng ta thường gặp các thách thức.
Số chiều lớn và ràng buộc tính toán thường xuất hiện khi xử lý các tập dữ liệu lớn. Ví dụ, trích xuất đặc trưng từ ảnh độ phân giải cao hoặc tệp âm thanh dài có thể tiêu tốn đáng kể bộ nhớ và năng lực xử lý.
Overfitting do các đặc trưng không liên quan hoặc dư thừa là một thách thức phổ biến khác. Khi trích xuất quá nhiều đặc trưng, mô hình có thể học nhiễu thay vì các mẫu có ý nghĩa. Điều này đặc biệt thường gặp trong xử lý ảnh và âm thanh nơi có thể sinh ra hàng nghìn đặc trưng.
Để vượt qua các thách thức này, hãy cân nhắc các chiến lược sau:
Những thách thức này đòi hỏi xem xét kỹ lưỡng và cân bằng giữa sự phong phú của đặc trưng và hiệu quả tính toán.
Kết luận
Trích xuất đặc trưng là kỹ năng nền tảng trong machine learning, chuyển dữ liệu thô thành các biểu diễn có ý nghĩa. Qua các ví dụ thực hành với OpenCV, LibROSA và tsfresh, chúng ta đã thấy cách trích xuất đặc trưng từ các loại dữ liệu khác nhau. Bằng cách hiểu các kỹ thuật này và thách thức của chúng, chúng ta có thể xây dựng các mô hình machine learning hiệu quả.
Sẵn sàng tìm hiểu sâu hơn? Hãy xem các tài nguyên sau: