Làm thế nào để thực hiện tính năng kỹ thuật trên các tính năng chưa biết?


19

Tôi đang tham gia một cuộc thi kaggle. Bộ dữ liệu có khoảng 100 tính năng và tất cả đều chưa được biết (về những gì chúng thực sự đại diện). Về cơ bản chúng chỉ là những con số.

Mọi người đang thực hiện rất nhiều tính năng kỹ thuật trên các tính năng này. Tôi tự hỏi làm thế nào chính xác một người có thể thực hiện kỹ thuật tính năng trên các tính năng chưa biết? Ai đó có thể vui lòng giúp tôi hiểu điều này và một số mẹo về cách tôi có thể thực hiện kỹ thuật tính năng trên các tính năng chưa biết?

Câu trả lời:


19

Bạn không cần kiến ​​thức về miền (kiến thức về ý nghĩa của dữ liệu của bạn ) để thực hiện tính năng kỹ thuật (tìm các cách biểu cảm hơn để đóng khung dữ liệu của bạn).


Như Tu N. đã giải thích , bạn có thể tìm thấy các kết hợp các tính năng "nhanh và bẩn" có thể hữu ích khá dễ dàng. Với sản lượng và một tính năng cá nhân x , bạn có thể lấy biến đổi sau, x '{ e x , log ( x ) , x 2 , x 3 , tanh ( x ) } . Kiểm tra nhanh về tính hữu ích của phép biến đổi là nếu tương quan giữa { y , x } cao hơn tương quan giữayxx{ex,log(x),x2,x3,tanh(x)}{y,x} .{y,x}

Cảnh báo về tương quan: Tương quan không hiển thị tất cả mọi thứ và tùy thuộc vào mô hình bạn đang sử dụng (rất phi tuyến tính như NN hoặc RF) và tương tác với các biến khác, sự thay đổi trong tương quan có thể không có nghĩa gì.

Tuy nhiên, nếu bạn đang sử dụng một mô hình tuyến tính đơn giản như hồi quy logistic, thì đó là một chỉ số OK về độ hoàn hảo. Tuy nhiên, cách tốt nhất để đánh giá một phép chuyển đổi như vậy, như Fokhruz Zaman lưu ý , là xây dựng một mô hình có và không có tính năng chuyển đổi của bạn, và xem lỗi xác thực (trên các nếp gấp Xác thực chéo của bạn) phát triển như thế nào.

Nó khá dễ dàng để phát hiện các biến đổi tính năng đơn theo cách này. Những dữ liệu này áp dụng cho nhiều dữ liệu, trong đó mối quan hệ rõ ràng hơn giữa đầu vào và đầu ra của bạn có thể ở một quy mô khác. Ví dụ, mối quan hệ giữa Thu nhập và "Hạnh phúc" dường như là logarit, nhưng bạn sẽ không bao giờ ghi lại nhật ký thu nhập của người tham gia trực tiếp.


DD2

Có thể khó diễn giải sự thể hiện bên trong của NN, hoặc thậm chí diễn giải tầm quan trọng của tính năng trong Khu rừng ngẫu nhiên. Một phương pháp dễ dàng hơn và có lẽ phù hợp hơn cho mục đích này, mô hình sẽ là Tăng tốc với các cây quyết định. Có rất nhiều thư viện triển khai Boosting và nếu bạn tham gia vào cuộc thi Kaggle vì bài đăng của bạn dường như ngụ ý, XGBoost dường như được nhiều người tham gia sử dụng, vì vậy bạn có thể tìm thấy một số trợ giúp / hướng dẫn về những gì tôi sẽ mô tả.

Đầu tiên, chạy thuật toán tăng tốc của bạn bằng cách chỉ sử dụng gốc cây , cây quyết định 1 cấp. Stumps rất yếu, nhưng Boosting làm cho nó một mô hình hợp lý. Điều này sẽ hoạt động như là cơ sở của bạn. Tùy thuộc vào thư viện bạn đang sử dụng, bạn sẽ có thể hiển thị khá dễ dàng những tính năng được sử dụng nhiều nhất và bạn nên vẽ chúng theo phản hồi (hoặc thực hiện biểu đồ nếu phản hồi là phân loại) để xác định một số mẫu. Điều này có thể cung cấp cho bạn một trực giác về những gì sẽ là một chuyển đổi tính năng duy nhất tốt.

Tiếp theo, chạy thuật toán Boosting với cây quyết định 2 cấp. Mô hình này phức tạp hơn nhiều so với mô hình trước đó; nếu hai biến được thực hiện cùng nhau có nhiều sức mạnh hơn được thực hiện riêng lẻ, mô hình này sẽ vượt trội hơn so với biến trước đó của bạn (một lần nữa, không phải về lỗi đào tạo, mà là về lỗi xác thực!). Dựa trên điều này, bạn sẽ có thể trích xuất biến nào thường được sử dụng cùng nhau và điều này sẽ dẫn bạn đến các biến đổi đa tính năng tiềm năng.


Về tài liệu liên quan, tôi sẽ tư vấn các video sau vì chúng dễ theo dõi


4

Bạn có thể sử dụng các kết hợp các tính năng khác nhau, chẳng hạn như tổng các tính năng: feat_1 + feat_2 + feat_3... hoặc sản phẩm của các tính năng đó. Hoặc bạn có thể chuyển đổi các tính năng bằng nhật ký, hoặc hàm mũ, sigmoid ... hoặc thậm chí rời rạc tính năng số thành một tính năng phân loại. Đó là một không gian vô tận để khám phá.

Bất kỳ kết hợp hoặc chuyển đổi nào làm tăng hiệu suất Xác thực chéo hoặc Bộ kiểm tra của bạn thì bạn nên sử dụng nó.


2
Tôi sẽ có một chút vấn đề với "Bất kỳ sự kết hợp hoặc chuyển đổi nào làm tăng hiệu suất Xác thực chéo hoặc Bộ kiểm tra của bạn thì bạn nên sử dụng nó." Cố gắng mù quáng cho đến khi một cái gì đó cải thiện số liệu hiệu suất của bạn có thể dẫn đến việc phát hiện ra một mối quan hệ không có ý nghĩa và gây ra tình trạng thừa. Điều này thực sự có thể làm tổn thương hiệu suất trên các quan sát mới trên đường.
Hersheezy

1

Bạn có thể vui lòng giải thích thêm với các ví dụ cụ thể về tuyên bố sau của bạn?

The dataset has around 100 features and all are unknown (in terms of what actually they represent). Basically they are just numbers.

Tôi không chắc làm thế nào bạn có thể làm Kỹ thuật tính năng mà không hiểu rõ về Tập dữ liệu của bạn và các thuộc tính đã cho !!

Dữ liệu dạng bảng được mô tả dưới dạng các quan sát hoặc thể hiện (hàng) được tạo thành từ các biến hoặc thuộc tính (cột). Một thuộc tính có thể là một tính năng.

"Ý tưởng về một tính năng, tách biệt với một thuộc tính, có ý nghĩa hơn trong bối cảnh của một vấn đề. Một tính năng là một thuộc tính hữu ích hoặc có ý nghĩa đối với vấn đề của bạn. Đây là một phần quan trọng để tìm hiểu về cấu trúc của vấn đề đang được mô hình hóa. ... ... ...

Trong thị giác máy tính, một hình ảnh là một quan sát, nhưng một tính năng có thể là một đường trong hình ảnh.

Trong xử lý ngôn ngữ tự nhiên, một tài liệu hoặc một tweet có thể là một quan sát và một cụm từ hoặc số từ có thể là một tính năng.

Trong nhận dạng giọng nói, cách nói có thể là một quan sát, nhưng một tính năng có thể là một từ hoặc âm vị. "

Vui lòng truy cập URL sau để biết thêm:

Khám phá Kỹ thuật tính năng, Làm thế nào để các tính năng kỹ sư và Làm thế nào để có được nó tốt


Các thuộc tính trong trường hợp của OP đã được ẩn danh đến điểm không thể sử dụng kiến ​​thức miền. Điều này khá phổ biến trong các cuộc thi Kaggle, nhưng các hình thức kỹ thuật tính năng hạn chế vẫn có thể. Thông thường các tính năng mới được tạo ra hàng loạt sau đó được thử nghiệm, trái ngược với việc sử dụng kiến ​​thức chủ đề để hướng dẫn thế hệ của chúng. Một ví dụ: kaggle.com/c/bnp-paribas-cardif-claims-man Management / data
Neil Slater

như Neil nói, các tính năng được ẩn danh, đó là ý nghĩa của câu nói đó.
dùng2409011
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.