5

Tôi đang cố gắng xử lý dữ liệu sinh học để đào tạo mạng nơron và mặc dù một bản trình bày tìm kiếm và lặp đi lặp lại rộng rãi về các phương pháp chuẩn hóa khác nhau mà tôi không nên sử dụng khi nào. Đặc biệt, tôi có một số biến đầu vào được xáo trộn tích cực và đã cố gắng xác định xem có một phương pháp chuẩn hóa thích hợp nhất hay không.Phương pháp chuẩn hóa/chuyển đổi phù hợp nhất cho các tính năng bị lệch?

Tôi cũng lo lắng về việc liệu bản chất của các đầu vào này có ảnh hưởng đến hiệu suất của mạng hay không và như vậy đã thử nghiệm với các phép biến đổi dữ liệu (đặc biệt là chuyển đổi nhật ký). Tuy nhiên, một số đầu vào có nhiều số 0 nhưng cũng có thể có giá trị thập phân nhỏ và dường như bị ảnh hưởng bởi nhật ký (x + 1) (hoặc bất kỳ số nào từ 1 đến 0,0000001 cho vấn đề đó). bị lệch hoặc trở thành lưỡng cực với một đỉnh nhọn ở giá trị min).

Điều này có liên quan đến mạng thần kinh không? I E. sao tôi nên sử dụng các tính năng chuyển đổi/chuẩn hóa tính năng cụ thể để tính toán dữ liệu bị lệch hoặc tôi nên bỏ qua nó và chọn một phương pháp chuẩn hóa và thúc đẩy?

Bất kỳ lời khuyên nào về vấn đề này sẽ được đánh giá rất nhiều!

Cảm ơn!

Trả lời

0

Đây là một câu hỏi thú vị. Bình thường hóa có nghĩa là giữ các giá trị của các đối tượng địa lý trong một thang đo để tạo thuận lợi cho quá trình tối ưu hóa.

Tôi khuyên bạn nên làm như sau:

1- Kiểm tra xem bạn có cần chuẩn hóa dữ liệu của mình hay không. Ví dụ: nếu phương tiện của các biến hoặc các đối tượng nằm trong cùng một tỷ lệ giá trị, bạn có thể tiến hành mà không cần chuẩn hóa. MSVMpack sử dụng một số điều kiện kiểm tra chuẩn hóa để thực thi SVM của chúng. Tuy nhiên, nếu bạn cần làm như vậy, bạn vẫn nên chạy các mô hình trên dữ liệu mà không cần chuẩn hóa.

2- Nếu bạn biết giá trị tối đa hoặc tối thiểu của đối tượng địa lý, hãy sử dụng chúng để chuẩn hóa đối tượng địa lý. Tôi nghĩ loại bình thường này sẽ giữ được độ lệch trong giá trị.

3- Thử chuẩn hóa giá trị thập phân với các tính năng khác nếu có.

Cuối cùng, bạn vẫn nên áp dụng các kỹ thuật chuẩn hóa khác nhau và so sánh MSE cho kỹ thuật evey bao gồm z-score, điều này có thể gây hại cho dữ liệu của bạn.

Tôi hy vọng rằng tôi đã trả lời câu hỏi của bạn và đã hỗ trợ một số.

+0

Về điều kiện kiểm tra chuẩn hóa, tôi đã thử chạy một số tập dữ liệu bằng MSVMPack và tôi nhận được kết quả sau: ** Cột của ma trận dữ liệu hiển thị chênh lệch lớn ** giữa độ lệch chuẩn của chúng (> 10). ** Điều này có thể ảnh hưởng đến hiệu suất của trình phân loại. Bạn có muốn dữ liệu được chuẩn hóa ([y]/n) không? – soufanom

2

Vì các tính năng trong vectơ đầu vào có tính chất khác nhau, bạn nên sử dụng các thuật toán chuẩn hóa khác nhau cho mỗi đối tượng địa lý. Mạng phải được nạp dữ liệu đồng nhất trên mọi đầu vào để có hiệu suất tốt hơn.

Khi bạn viết rằng một số dữ liệu bị lệch, tôi cho rằng bạn có thể chạy một số thuật toán để "chuẩn hóa" nó. Nếu áp dụng logarit không hoạt động, có lẽ other functions và các phương pháp như rank transforms có thể được thử.

Nếu giá trị thập phân nhỏ hoàn toàn xuất hiện trong một tính năng cụ thể, sau đó chỉ cần bình thường hóa theo cách cụ thể để chúng được chuyển đổi thành phạm vi công việc của bạn: [0, 1] hoặc [-1, +1 ] Tôi giả sử.

Nếu một số đầu vào có nhiều số không, hãy xem xét xóa chúng khỏi mạng thần kinh chính và tạo mạng nơron bổ sung sẽ hoạt động trên vectơ có các đối tượng không được đánh số không. Ngoài ra, bạn có thể thử chạy Phân tích thành phần chính (ví dụ, thông qua mạng bộ nhớ tự động với cấu trúc NMN, M < N) để giảm kích thước không gian đầu vào và do đó loại bỏ các thành phần zero (chúng sẽ được đưa vào tài khoản trong các đầu vào kết hợp mới bằng cách nào đó). BTW, đầu vào M mới sẽ được tự động chuẩn hóa. Sau đó, bạn có thể truyền các vectơ mới cho mạng nơron công nhân thực tế của bạn.

Các vấn đề liên quan