Giảm kích thước là gì? Sự khác biệt giữa lựa chọn tính năng và trích xuất là gì?


58

Từ wikipedia,

giảm kích thước hoặc giảm kích thước là quá trình giảm số lượng biến ngẫu nhiên đang được xem xét và có thể được chia thành lựa chọn tính năng và trích xuất tính năng.

Sự khác biệt giữa lựa chọn tính năng và trích xuất tính năng là gì?

Một ví dụ về giảm kích thước trong tác vụ Xử lý ngôn ngữ tự nhiên là gì?

Câu trả lời:


51

Chỉ cần đặt:

  • lựa chọn tính năng: bạn chọn một tập hợp con của bộ tính năng gốc; trong khi
  • trích xuất tính năng: bạn xây dựng một bộ tính năng mới từ bộ tính năng gốc.

Ví dụ về trích xuất tính năng: trích xuất các đường viền trong hình ảnh, trích xuất các digram từ một văn bản, trích xuất các âm vị từ ghi âm văn bản nói, v.v.

Khai thác tính năng liên quan đến việc chuyển đổi các tính năng, thường không thể đảo ngược do một số thông tin bị mất trong quá trình giảm kích thước.


2
Cả hai đều thuộc danh mục kỹ thuật tính năng vì chúng liên quan đến việc tạo hoặc chọn thủ công các tính năng. Giảm kích thước thường liên quan đến thay đổi cơ sở hoặc một số biểu diễn lại toán học khác của dữ liệu
ragingSloth

1
@ragingSloth, tôi nghĩ rằng cái đầu tiên chắc chắn là lựa chọn tính năng - và không phải tính năng kỹ thuật. Trong khi các ví dụ xử lý hình ảnh và văn bản thực sự có vẻ là kỹ thuật đặc trưng
Alexey Grigorev

Theo cách tôi tìm thấy, đối với một số trích xuất tính năng, bạn vẫn có thể xây dựng lại kích thước ban đầu. Nhưng để lựa chọn tính năng, không có cấu trúc lại, vì bạn đã loại bỏ các kích thước vô dụng.
Bob

16

Giảm kích thước thường chọn một cơ sở hoặc biểu diễn toán học trong đó bạn có thể mô tả hầu hết nhưng không phải tất cả các phương sai trong dữ liệu của bạn, do đó giữ lại thông tin có liên quan, đồng thời giảm lượng thông tin cần thiết để thể hiện thông tin đó. Có rất nhiều kỹ thuật để làm việc này bao gồm nhưng không giới hạn PCA, ICAMatrix Feature Factorization. Chúng sẽ lấy dữ liệu hiện có và giảm dữ liệu thành các thành phần phân biệt đối xử nhất. Tất cả những điều này cho phép bạn thể hiện hầu hết thông tin trong tập dữ liệu của mình với ít tính năng phân biệt đối xử hơn.

Lựa chọn tính năng là lựa chọn tay các tính năng có tính phân biệt cao. Điều này có liên quan nhiều đến kỹ thuật tính năng hơn là phân tích và đòi hỏi nhiều công việc hơn đáng kể về phía nhà khoa học dữ liệu. Nó đòi hỏi sự hiểu biết về các khía cạnh của bộ dữ liệu của bạn là quan trọng trong bất kỳ dự đoán nào bạn thực hiện và không. Khai thác tính năng thường liên quan đến việc tạo ra các tính năng mới là vật liệu tổng hợp của các tính năng hiện có. Cả hai kỹ thuật này đều thuộc danh mục kỹ thuật tính năng. Nói chung kỹ thuật tính năng rất quan trọng nếu bạn muốn có được kết quả tốt nhất, vì nó liên quan đến việc tạo thông tin có thể không tồn tại trong tập dữ liệu của bạn và tăng tín hiệu của bạn thành tỷ lệ nhiễu.


2
Tôi đồng ý chủ yếu, với độ chính xác: Việc lựa chọn tính năng không cần phải thực hiện bằng tay, nó có thể tự động. Xem ví dụ phương thức Lasso ( en.wikipedia.org/wiki/Least_squares#Lasso_method ).
jrouquie

Tôi đồng ý với Dimensionality Reductionđiều khoản của bạn nhưng khác một chút về Feature Engineeringcách sử dụng - điều mà từ những gì tôi thấy chỉFeature Extraction: Feature Selectionđược xem xét riêng. Nó chỉ là một sự khác biệt trong thuật ngữ.
javadba

7

Như trong @damienfrancois lựa chọn tính năng trả lời là về việc chọn một tập hợp con các tính năng. Vì vậy, trong NLP, nó sẽ chọn một tập hợp các từ cụ thể (điển hình trong NLP là mỗi từ đại diện cho một tính năng có giá trị bằng tần số của từ hoặc một số trọng số khác dựa trên TF / IDF hoặc tương tự).

Giảm kích thước là việc giới thiệu không gian tính năng mới nơi các tính năng ban đầu được thể hiện. Không gian mới có kích thước thấp hơn không gian ban đầu. Trong trường hợp văn bản, một ví dụ sẽ là thủ thuật băm trong đó một đoạn văn bản được giảm xuống một vectơ vài bit (giả sử 16 hoặc 32) hoặc byte. Điều đáng kinh ngạc là hình học của không gian được bảo toàn (được cung cấp đủ bit), do đó khoảng cách tương đối giữa các tài liệu vẫn giống như trong không gian ban đầu, do đó bạn có thể triển khai các kỹ thuật học máy tiêu chuẩn mà không phải xử lý không liên kết (và số lượng lớn của) kích thước được tìm thấy trong văn bản.


5

Lựa chọn tính năng là về việc chọn một số tính năng dựa trên một số điểm thống kê nhưng trích xuất tính năng đang sử dụng các kỹ thuật để trích xuất một số thông tin lớp thứ hai từ dữ liệu, ví dụ tần số thú vị của tín hiệu sử dụng biến đổi Fourier.

Giảm kích thước là tất cả về việc chuyển đổi dữ liệu thành một không gian chiều thấp, trong đó dữ liệu bảo tồn cấu trúc euclide của nó nhưng không bị nguyền rủa về chiều. Chẳng hạn, giả sử bạn trích xuất một số tính năng từ từ tập dữ liệu trong đó mỗi tài liệu có thể được mô hình hóa thành một điểm trong không gian n chiều và n quá lớn (ví dụ về đồ chơi). Trong trường hợp này, nhiều thuật toán không hoạt động theo độ méo khoảng cách của không gian chiều cao. Bây giờ bạn cần giảm kích thước bằng cách chọn hầu hết các tính năng thông tin hoặc chuyển đổi chúng thành đa tạp chiều thấp bằng các phương pháp giảm kích thước, ví dụ PCA, LLE, v.v.[x1,...,xviết sai rồi]


Trong số các câu trả lời có sẵn, câu trả lời này phù hợp nhất với những gì tôi đã thấy trong một số nhóm Nền tảng Khoa học Dữ liệu và ML
javadba

3

Để hoàn thành câu trả lời của Damien, một ví dụ về giảm kích thước trong NLP là một mô hình chủ đề , trong đó bạn biểu diễn tài liệu bằng một vectơ chỉ ra trọng số của các chủ đề cấu thành của nó.



2

A1. Giảm kích thước là gì: Nếu bạn nghĩ về dữ liệu trong một ma trận, trong đó các hàng là các thể hiện và các cột là các thuộc tính (hoặc các tính năng), thì việc giảm kích thước sẽ ánh xạ ma trận dữ liệu này sang một ma trận mới với ít cột hơn. Để trực quan hóa, nếu bạn nghĩ mỗi cột ma trận (thuộc tính) là một thứ nguyên trong không gian đặc trưng, ​​thì việc giảm kích thước là hình chiếu của các thể hiện từ không gian chiều cao hơn (nhiều cột hơn) sang không gian phụ chiều thấp hơn (ít cột hơn). Giảm kích thước là phép chiếu không gian con Mục tiêu tiêu biểu cho sự chuyển đổi này là (1) lưu giữ thông tin trong ma trận dữ liệu, đồng thời giảm độ phức tạp tính toán; (2) cải thiện khả năng phân tách của các lớp khác nhau trong dữ liệu.

A2. Giảm kích thước dưới dạng lựa chọn tính năng hoặc trích xuất tính năng: Tôi sẽ sử dụng bộ dữ liệu Iris phổ biến , được cho là 'thế giới xin chào' của khoa học dữ liệu. Tóm lại, bộ dữ liệu Iris có 3 lớp và 4 thuộc tính (cột). Tôi sẽ minh họa lựa chọn và trích xuất tính năng cho nhiệm vụ giảm kích thước tập dữ liệu Iris từ 4 xuống 2.

Tôi tính toán phương sai cặp khôn ngoan của bộ dữ liệu này bằng thư viện trong Python có tên là seaborn. Mã là: sns.pairplot (iris, hue = "loài", markers = ["o", "s", "D"]) Hình tôi nhận được là Iris cặp-cốt truyện tôi có thể chọn cặp thuộc tính (2 chiều) cung cấp cho tôi sự tách biệt lớn nhất giữa 3 lớp (loài) trong bộ dữ liệu Iris. Đây sẽ là một trường hợp lựa chọn tính năng.

Tiếp theo là khai thác tính năng. Ở đây, tôi đang chiếu không gian đặc trưng 4 chiều của Iris sang không gian con 2 chiều mới, không phải là trục được căn chỉnh với không gian ban đầu. Đây là những thuộc tính mới. Chúng thường dựa trên sự phân phối trong không gian chiều cao ban đầu. Phương pháp phổ biến nhất là Phân tích thành phần chính, tính toán Eigenvector trong không gian ban đầu. PCA sử dụng SVD Rõ ràng, chúng tôi không bị hạn chế chỉ sử dụng phép chiếu tuyến tính và toàn cầu vào một không gian con dựa trên Eigenvector. Chúng ta có thể sử dụng các phương pháp chiếu phi tuyến tính là tốt. Dưới đây là một ví dụ về PCA phi tuyến tính sử dụng mạng thần kinh PCA phi tuyến tính sử dụng NN Các thuộc tính (kích thước) trong ví dụ cuối cùng được trích xuấttừ 4 thuộc tính ban đầu sử dụng mạng thần kinh. Bạn có thể thử nghiệm nhiều hương vị khác nhau của PCA cho chính bộ dữ liệu iris bằng mã phương pháp pca này .

Tóm tắt: Mặc dù các phương pháp trích xuất tính năng có thể có hiệu suất vượt trội so với lựa chọn tính năng, sự lựa chọn được đưa ra bởi ứng dụng. Các thuộc tính từ trích xuất tính năng thường mất đi sự diễn giải vật lý, có thể hoặc không thể là một vấn đề dựa trên nhiệm vụ hiện tại. Ví dụ: nếu bạn đang thiết kế một nhiệm vụ thu thập dữ liệu rất tốn kém với các cảm biến tốn kém và cần tiết kiệm cho các thuộc tính (số lượng cảm biến khác nhau), bạn muốn thu thập một mẫu thử nghiệm nhỏ bằng cách sử dụng tất cả các cảm biến có sẵn và sau đó chọn những cảm biến có sẵn là thông tin nhất cho các nhiệm vụ thu thập dữ liệu lớn.


1

Trích xuất từ ​​học máy thực hành với scikit-learn & Tensorflow

  1. Làm sạch dữ liệu: Khắc phục hoặc xóa các ngoại lệ (tùy chọn). Điền vào các giá trị còn thiếu (ví dụ: bằng 0, trung bình, trung bình) hoặc thả các hàng (hoặc cột) của chúng.
  2. Lựa chọn tính năng (tùy chọn): Bỏ các thuộc tính không cung cấp thông tin hữu ích cho tác vụ.
  3. Tính năng kỹ thuật, khi thích hợp: Phân biệt các tính năng liên tục. Phân tách các tính năng (ví dụ: phân loại, ngày / giờ, v.v.). Thêm các biến đổi đầy hứa hẹn của các tính năng (ví dụ: log (x), sqrt (x), x ^ 2, v.v.). Tổng hợp các tính năng thành các tính năng mới đầy hứa hẹn.
  4. Tính năng mở rộng: chuẩn hóa hoặc chuẩn hóa các tính năng.

0

Một số câu trả lời tuyệt vời ở đây, đặc biệt, câu trả lời của @ damienfrancois rất ngắn gọn nắm bắt ý tưởng chung.

Tuy nhiên, tôi không thấy bất kỳ ví dụ nào về kỹ thuật tính năng cho dữ liệu quan hệ hoặc chuỗi thời gian. Trong trường hợp đó, các nhà khoa học dữ liệu thường trích xuất các mẫu thống kê qua các mối quan hệ và theo thời gian. Chẳng hạn, để dự đoán khách hàng sẽ làm gì trong tương lai trong cơ sở dữ liệu thương mại điện tử, người ta có thể trích xuất số lượng như số tiền mua trung bình trong lịch sử hoặc tần suất mua trước đó.

Tôi đã viết một phần về chủ đề này đi sâu vào chi tiết hơn với một số ví dụ ở đây: https://www.featurelabs.com/blog/feature-engineering-vs-feature-selection/


0

Hãy để tôi bắt đầu với thứ tự ngược mà trích xuất tính năng và tại sao cần phải lựa chọn tính năng và giảm kích thước.

Bắt đầu với việc sử dụng tính năng trích xuất chủ yếu cho mục đích phân loại. Việc phân loại là quá trình đưa ra quyết định về loại đối tượng cụ thể thuộc về. Nó có hai giai đoạn đào tạo i), trong đó các dữ liệu hoặc đối tượng được cung cấp bằng cách sử dụng giai đoạn thử nghiệm (trích xuất tính năng) ii), trong đó đối tượng chưa biết được phân loại bằng các tính năng đã học trong giai đoạn (đào tạo) trước đó.

Khai thác tính năng như tên cho thấy mục đích dữ liệu là tìm mẫu bên dưới. Mẫu cơ bản này được gọi là tính năng tương ứng với dữ liệu tương ứng. Có nhiều phương pháp khác nhau hiện có để trích xuất tính năng, chẳng hạn như Support Vector Machine (SVM).

Bây giờ, trích xuất tính năng sẽ tạo ra các tính năng cần được

  • mạnh mẽ
  • phân biệt đối xử
  • bộ tính năng tối ưu

Lựa chọn tính năng: Một tập hợp dữ liệu cụ thể có thể được biểu diễn bằng một tính năng hoặc một bộ tính năng. Trong quá trình phân loại, một hệ thống được đào tạo cho ít nhất hai lớp. Vì vậy, hệ thống đào tạo sẽ tạo ra một tính năng hoặc một bộ tính năng. Những tính năng này nên sở hữu các thuộc tính nêu trên.

Vấn đề xảy ra khi có một bộ tính năng cho mỗi lớp và tồn tại mối tương quan giữa một số tính năng. Điều đó ngụ ý trong số các tính năng tương quan đó, một hoặc một vài tính năng là đủ để thể hiện và đó là nơi lựa chọn tính năng xuất hiện trong hình ảnh. Ngoài ra, các tính năng này cần được lưu trữ với sự gia tăng yêu cầu bộ nhớ của bộ tính năng cũng tăng.

Sau đó là giảm kích thước mà không phải là một phần của quá trình lựa chọn tính năng. Đây là quá trình chọn tập hợp các tính năng tối ưu để mô tả dữ liệu tốt nhất. Có nhiều kỹ thuật giống nhau như phân tích thành phần chính, phân tích thành phần độc lập và nhân tố ma trận, v.v.


-3

Ví dụ ... nếu bạn có đất nông nghiệp thì việc chọn một khu vực cụ thể của khu đất đó sẽ là lựa chọn tính năng. Nếu bạn muốn tìm các nhà máy bị ảnh hưởng trong khu vực đó, bạn cần phải quan sát từng nhà máy dựa trên một đặc điểm chung. trong mỗi nhà máy để tìm ra sự bất thường ... vì điều này bạn sẽ xem xét khai thác tính năng. Trong ví dụ này, đất nông nghiệp ban đầu tương ứng với việc giảm kích thước.


Không, nó không liên quan gì đến dữ liệu không gian nói riêng. Nó cũng có thể áp dụng cho các loại dữ liệu tạm thời, không gian và các loại dữ liệu khác.
Emre
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.