Phân loại phân biệt đối xử một lớp với nền âm tính không cân bằng, không đồng nhất?


16

Tôi đang làm việc để cải thiện trình phân loại được giám sát hiện có, để phân loại các chuỗi {protein} có thuộc về một lớp cụ thể (tiền chất hormone Neuropeptide) hay không.

Có khoảng 1.150 "tích cực" được biết đến, dựa trên nền tảng của khoảng 13 triệu chuỗi protein ("Nền không rõ / chú thích kém"), hoặc khoảng 100.000 protein được đánh giá, có liên quan, được chú thích với nhiều tính chất khác nhau (nhưng rất ít được chú thích trong một cách rõ ràng cách "tiêu cực").

Việc triển khai trước đây của tôi đã xem đây là một vấn đề phân loại nhị phân: Tập hợp dương = Protein được đánh dấu là Neuropeptide. Tập âm tính: Lấy mẫu ngẫu nhiên 1.300 mẫu (tổng số) trong số các protein còn lại có phân bố chiều dài gần tương tự nhau.

Điều đó đã có hiệu quả, nhưng tôi muốn cải thiện đáng kể khả năng phân biệt đối xử của máy móc (Hiện tại, nó ở mức khoảng 83-86% về độ chính xác, AUC, F1, được đo bằng CV, trên nhiều bộ âm tính được lấy mẫu ngẫu nhiên).

Suy nghĩ của tôi là: 1) Biến vấn đề này thành đa lớp, chọn 2-3 loại protein khác nhau chắc chắn sẽ là phủ định, bởi tính chất / lớp chức năng của chúng, cùng với (có thể) một bộ được lấy mẫu ngẫu nhiên khác. (Ưu tiên ở đây sẽ là các tập hợp phủ định tương tự về đặc điểm / tính năng của chúng với tập hợp tích cực, trong khi vẫn có các đặc điểm xác định). 2) Học một lớp - Sẽ tốt, nhưng theo tôi hiểu, nó chỉ có nghĩa là phát hiện bất thường, và có hiệu suất kém hơn so với các phương pháp phân biệt đối xử.

*) Tôi đã nghe nói về việc học PU, nghe có vẻ gọn gàng, nhưng tôi là một lập trình N00b và tôi không biết về bất kỳ triển khai nào hiện có cho nó. (Trong Python / sci-kit tìm hiểu).

Vì vậy, cách tiếp cận 1 có ý nghĩa trong một POV lý thuyết? Có cách nào tốt nhất để tạo nhiều bộ âm? (Tôi cũng có thể đơn giản sử dụng một lượng lớn protein "âm tính" [50K], nhưng chúng rất khác nhau, vì vậy tôi không biết bộ phân loại sẽ xử lý chúng như một hỗn hợp lớn, không cân bằng ). Cảm ơn!


như bạn có thể thấy, bài viết trên Wikipedia về học tập PU có liên quan đến một bài báo trong đó điều này đã được áp dụng để nhận dạng gen. Có lẽ nó đáng để tìm ra / hỏi các tác giả họ đã sử dụng phần mềm nào.
Andre Holzner

Có một số cuộc thảo luận về việc học PU trong scikit tìm hiểu tại đây: stackoverflow.com/questions/25700724/ dọa (sử dụng máy vectơ hỗ trợ 'một lớp')
Andre Holzner

Việc học PU là vấn đề phân loại hai lớp tiêu chuẩn với một cảnh báo - bạn tối ưu hóa khu vực dưới đường cong, chứ không phải phân loại chính xác. Bạn có thể sử dụng gói phần mềm Sofia ML để thực hiện chính xác điều này (không cần lập trình). Về mặt thực tế, bạn chú thích các ví dụ tích cực của bạn với +1 và mọi thứ khác là -1 (vâng, tất cả các dữ liệu chưa được gắn nhãn khác có thể chứa tích cực).
Vladislavs Dovgalecs

Câu trả lời:


5

Nói chung, cách tôi sẽ tấn công vấn đề là sử dụng phân tích thống kê như Phân tích thành phần chính hoặc Bình phương tối thiểu để giúp xác định các thuộc tính nào trong các chuỗi protein này phù hợp nhất để phân loại protein là tiền chất hormone Neuropeptide.

Để làm điều đó, bạn sẽ phải chuyển đổi chuỗi protein thành dữ liệu số, nhưng tôi tin rằng một số công việc đã được thực hiện liên quan đến việc sử dụng các công thức được sử dụng trong Amino Acid PCA.

Xem hai liên kết sau: http://www.ncbi.nlm.nih.gov/pubmed/24496727

http://www.ncbi.nlm.nih.gov/pubmed/16615809

Khi công việc đó đã được thực hiện, tôi sẽ cố gắng phân loại bằng cách sử dụng toàn bộ tập dữ liệu và thuật toán học tăng cường, như Naive Bayes trong khi giảm dữ liệu vào đó PCA đã xác định là quan trọng.

Lý do tôi sẽ cố gắng sử dụng Bayes là vì nó đã được chứng minh là một trong những phương pháp tốt nhất để xác định thư rác so với email thông thường, có một bộ dữ liệu sai lệch tương tự.

Đã nói tất cả về điều đó ...

Giảm nhẹ số lượng hoặc loại phân loại tiêu cực có thể làm lệch kết quả của bạn một vài điểm theo cách này hay cách khác, nhưng tôi không nghĩ rằng bạn sẽ thấy hiệu quả lâu dài thay đổi đáng kể cho đến khi bạn thực hiện công việc xác định cách loại bỏ tốt nhất sự mờ nhạt từ dữ liệu đào tạo của bạn. Điều đó hoặc sẽ yêu cầu một chuyên gia lĩnh vực hoặc phân tích thống kê.

Tôi có thể hoàn toàn rời khỏi căn cứ. Tôi thích xem một số câu trả lời khác, nhưng đó là 2 xu của tôi.


1
Tôi đã thực hiện trích xuất tính năng và bộ công cụ cho nó (ấn phẩm đang chờ một số kiểm tra lỗi).
GrimSqueaker

5

Học một lớp

Tôi sẽ không quá nhanh để đưa ra các phương pháp phân loại một lớp (tùy chọn 2) - mấu chốt là mô hình hóa lớp tích cực (thiểu số) với mô hình một lớp.

Đã có nghiên cứu chứng minh các trường hợp trong đó phân loại một lớp thực hiện các phương pháp khác như lấy mẫu cho dữ liệu mất cân bằng cao như thường thấy với các nhiệm vụ phân loại protein.

Tôi không thể tìm thấy nghiên cứu mà tôi nhớ lại, nhưng tôi đã tìm thấy một số so sánh khác, cho thấy sử dụng các trình phân loại một lớp (điển hình là lớp thiểu số) đạt được hiệu suất tốt hoặc tốt hơn so với phân loại nhị phân thường được lấy mẫu "phủ định" từ tập lớn của protein không được biết là dương tính.

Ngoài ra, cách tiếp cận này cũng mang lại lợi thế về thời gian chạy được cải thiện hơn nhiều - vì bạn chỉ cần đào tạo trình phân loại trên tập nhỏ hơn, tích cực. Một vài giấy tờ:

"Dự đoán tương tác protein-protein bằng phương pháp phân loại một lớp và tích hợp dữ liệu sinh học đa dạng"

"Cách tiếp cận phân loại một lớp cho chuỗi và cấu trúc protein"

Ít nhất tôi sẽ thử một số phương thức một lớp và so sánh hiệu suất bằng cách sử dụng xác nhận với các phương pháp phân loại nhị phân / đa lớp của bạn. Ngoài ra còn có các triển khai nguồn mở cho nhiều trong số này vì vậy không nên quá tốn kém để thử chúng, ví dụ LibSVM có triển khai SVM một lớp. Ngoài ra, nó có thể chứng minh giá trị sử dụng trong một nhóm với các phân loại nhị phân, vì có thể có nhiều bất đồng hơn trong dự đoán của họ.

Nhúng / phân cụm đại diện cấp cao hơn

Dọc theo những gì bạn đã nghĩ với (1) và bài đăng khác đề xuất PCA, các cách tiếp cận như phân cụm, mã hóa thưa thớt hoặc thậm chí mô hình hóa chủ đề - coi mỗi protein là một chuỗi tài liệu và các họ protein khác nhau như các chủ đề khác nhau - có thể mang lại một đại diện điều đó có thể làm cho việc phân loại các protein đơn giản.

Tức là, bạn có thể xác định nhóm / cụm protein nào thuộc hoặc phân loại các thành viên cụm / biểu diễn nhúng.

Ví dụ, các cách tiếp cận nhúng như mã hóa thưa thớt có thể mang lại các biểu diễn tiết lộ protein thuộc cụm nào - do đó một số bộ tính năng chỉ hoạt động (khác không) cho các protein trong cùng một cụm - có thể giúp phân loại chúng dễ dàng hơn nhiều.

Ngoài ra, nhãn lớp hoặc thành viên cụm đã biết có thể được kết hợp trong quá trình nhúng cho hầu hết các phương thức.

Bộ quần áo

Các bộ phân loại của nhiều bộ phân loại có xu hướng hoạt động tốt nhất - đặc biệt là khi các bộ phân loại rất đa dạng và có thể đạt được hiệu suất tương đương riêng lẻ.

Có ít nhất hai cách sử dụng các bản hòa tấu cho vấn đề này.

  1. Bạn có thể xây dựng một nhóm các phân loại nhị phân bằng cách lấy mẫu nhiều bộ âm có cùng kích thước khác nhau và huấn luyện một bộ phân loại trên mỗi bộ.
  2. Bạn có thể xây dựng một nhóm từ các cách tiếp cận khác nhau, chẳng hạn như phân loại nhị phân với các mẫu âm khác nhau, kết hợp với cách tiếp cận phân loại một lớp, kết hợp với các mô hình phân loại được đào tạo trên dữ liệu nhúng.

2

Có ba cách tiếp cận bạn có thể thực hiện: APP, OAA, AAO. APP là sự phân biệt giữa các đối tượng dựa trên tất cả các cặp lớp có thể. OAA đang sử dụng một đối với tất cả (các lớp còn lại) và AAO cùng một lúc, chẳng hạn như sử dụng thử nghiệm F cho nhiều lớp cùng lúc (hoặc thử nghiệm của Hotelling cho MVN). APP và AAO thực sự là nhiều hoạt động phân loại nhị phân nhưng có nhiều hơn hai lớp ban đầu của bạn. Mỗi cách tiếp cận này mang lại kết quả khác nhau cho các phân loại khác nhau được sử dụng.

Lấy mẫu ngẫu nhiên là một kỹ thuật tốt. Bạn cũng có thể cố gắng phân cụm tất cả các đối tượng thành các trung tâm bằng cách sử dụng phương tiện k, và sau đó sử dụng các trung tâm làm đối tượng mới. Dù bằng cách nào, các phương pháp giảm kích thước tuyến tính và phi tuyến tính có thể giúp thoát khỏi kích thước mẫu lớn.

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.