Cách đào tạo mô hình để dự đoán các sự kiện trước 30 phút, từ các máy đo thời gian đa chiều


9

Các chuyên gia trong lĩnh vực của tôi có khả năng dự đoán khả năng xảy ra một sự kiện (tăng đột biến nhị phân màu vàng) 30 phút trước khi nó xảy ra . Tần suất ở đây là 1 giây, chế độ xem này biểu thị dữ liệu có giá trị trong vài giờ, tôi đã khoanh tròn màu đen trong đó mẫu "độc hại" phải có . Tương tác giữa các kích thước tồn tại, do đó kích thước không thể được nghiên cứu riêng lẻ (hoặc chúng có thể?)

nhập mô tả hình ảnh ở đây

Tôi đang cố gắng xây dựng một mô hình ML được giám sát bằng Scikit Learn để tìm hiểu một nhịp điệu bình thường và phát hiện khi các triệu chứng có thể dẫn đến tăng đột biến . Tôi bị mất cho hướng nào để đi. Tôi đã thử phát hiện bất thường, nhưng nó chỉ hoạt động để phát hiện tại chỗ, không phải trước đó.

Làm cách nào tôi có thể phát hiện các mẫu "độc hại" trước các sự kiện đó (lấy chúng làm biến mục tiêu)?

Tôi hoan nghênh bất kỳ lời khuyên nào về thuật toán hoặc đường ống xử lý dữ liệu có thể giúp đỡ, cảm ơn bạn :)


Là những sóng não?
JahKnows

Câu trả lời:


9

Đây là một vấn đề thú vị. Đây là một chuỗi thời gian và từ chuỗi thời gian này, bạn muốn xác định trình kích hoạt của một sự kiện nào đó. Vì vậy, nó là một vấn đề phân loại nhị phân. Dựa vào thông tin từ cửa sổ chỉ định sẽ xảy ra đột biến? Có hay không.

Bước đầu tiên là thiết lập cơ sở dữ liệu của bạn. Những gì bạn sẽ có là một tập hợp các trường hợp (có thể có một số chồng chéo nhưng để tránh sai lệch, tốt nhất là chúng nên được vẽ độc lập) và sau đó cho mỗi trường hợp, con người cần phải dán nhãn nếu có sự tăng đột biến hoặc nếu không có mũi nhọn.

Sau đó, bạn cần xác định cửa sổ thời gian bạn muốn sử dụng để phân tích chuỗi thời gian của mình. Bạn đã làm điều này và quyết định 30 phút là một khởi đầu tốt.

Bây giờ, bạn có 6 dạng sóng trong một cửa sổ 30 phút từ đó bạn có thể trích xuất dữ liệu để nhận thông tin về phân loại của mình. Bạn có thể sử dụng các mẫu dữ liệu thô làm các tính năng của mình, nhưng đây là CÁCH nhiều tính năng và sẽ dẫn đến kết quả kém. Vì vậy, bạn cần một số tính năng trích xuất , giảm kích thước , kỹ thuật.

Có một triệu cách bạn có thể trích xuất dữ liệu từ các dạng sóng này. Đầu tiên, hãy tự hỏi, với tư cách là một con người, những dấu hiệu nhận biết mà các dạng sóng khác nên có có nghĩa là một đột biến sẽ phát sinh. Ví dụ, trong dữ liệu địa chấn, nếu bạn thấy kích động ở dạng sóng từ một thị trấn lân cận thì bạn sẽ sớm thấy kích động trong thị trấn của mình.

Nói chung, tôi muốn trích xuất tất cả các số liệu thống kê cơ bản từ dạng sóng của mình. Lấy giá trị trung bình, độ lệch chuẩn, chỉ số dao động, vv Nhận bất cứ điều gì bạn nghĩ có thể giúp đỡ. Kiểm tra làm thế nào những thống kê này tương quan với nhãn của bạn. Càng nhiều tương quan càng tốt. Sau đó, có một số kỹ thuật rất tốt để trích xuất thông tin thời gian và tần số từ chuỗi thời gian của bạn. Nhìn vào phân rã chế độ phong bìphân rã chế độ thực nghiệm . Tôi đã sử dụng phân tách chế độ theo kinh nghiệm thành công trên một số dữ liệu chuỗi thời gian và thu được kết quả tốt hơn nhiều so với tôi mong đợi.

Bây giờ mặc dù bạn có không gian tính năng giảm, bạn có thể làm tốt hơn! Bạn có thể áp dụng một số kỹ thuật giảm kích thước như PCA hoặc LDA để có được không gian chiều thấp hơn có thể thể hiện tốt hơn dữ liệu của bạn. Điều này có thể giúp đỡ, không có đảm bảo.

Bây giờ bạn có một bộ dữ liệu nhỏ với các phiên bản là pha chế Frankenstein đại diện cho 6 dạng sóng của bạn trên cửa sổ 30 phút. Bây giờ bạn đã sẵn sàng để chọn phân loại của bạn. Bạn sẽ muốn một thuật toán phân loại nhị phân, may mắn là phổ biến nhất. Có nhiều lựa chọn. Chọn như thế nào?


Bạn có bao nhiêu trường hợp?

#instances>100#features ?

Sau đó, bạn là tất cả các thiết lập để sử dụng một kỹ thuật học sâu như mạng thần kinh , 1D mạng thần kinh chập , autoencodders xếp chồng lên nhau , vv ...

Ít hơn!!!! Các bạn nên gắn bó với các phương pháp nông. Kiểm tra máy vectơ hỗ trợ hạt nhân , rừng ngẫu nhiên , hàng xóm k gần nhất, v.v.


Quan niệm sai lầm phổ biến: Một phương pháp nông cạn CÓ THỂSILL thực hiện tốt hơn một kỹ thuật học sâu nếu bạn đã chọn đúng các tính năng của mình. khai thác tính năng là khía cạnh quan trọng nhất của kiến ​​trúc máy học.


Tôi muốn sử dụng phát hiện bất thường!

Điều này cũng sẽ làm việc và có một số kỹ thuật tốt sẽ làm điều này. Tuy nhiên, bản chất của phát hiện bất thường là tìm hiểu sự phân bố của trường hợp danh nghĩa. Vì vậy, bạn sẽ cung cấp cho thuật toán của mình tất cả các phiên bản trong tập dữ liệu của bạn mà không dẫn đến tăng đột biến. Sau đó, từ thuật toán của bạn sẽ có thể xác định khi một thể hiện mới khác biệt đáng kể với phân phối danh nghĩa này và nó sẽ gắn cờ nó là một sự bất thường. Điều này có nghĩa là một đột biến sẽ xảy ra trong bối cảnh của bạn.

Thủ tục thanh toán:

Học tập khối lượng tối thiểu http://www.stat.rice.edu/~cscott/pub/minvol06jmlr.pdf

Phát hiện bất thường với các chức năng Điểm dựa trên Đồ thị Hàng xóm Gần nhất https://arxiv.org/abs/0910.5461

Thống kê mới trong ước tính giá trị P để phát hiện bất thường http://ieeexplore.ieee.org/document/6319713/

Bạn cũng có thể sử dụng các kỹ thuật phát hiện dị thường thô sơ hơn như kiểm tra tỷ lệ khả năng tổng quát. Nhưng, đây là loại trường học cũ.


Walk Walk tuyệt vời, cảm ơn bạn cho mức độ chi tiết của bạn. Các thời gian được hiển thị ở đây đã là một lựa chọn của các tính năng ban đầu và được tạo ra "có thể nhìn thấy" cho mắt người bằng cách sử dụng phương tiện lăn chẳng hạn. Nguồn cấp dữ liệu "thô" bao gồm khoảng 50 tính năng và một triệu trường hợp. Tôi đoán điều đó dẫn tôi đến các kỹ thuật học tập sâu! Tôi đang đi sâu vào trích xuất tính năng và chắc chắn sẽ đăng kết quả của hành trình của tôi ở đây :)
William D

Vâng, đó sẽ là tuyệt vời giữ cho chúng tôi được đăng. Nếu bạn có 50 tính năng và 1 triệu trường hợp. Trước tiên hãy truy cập mạng thần kinh, đây là cách dễ nhất để mã hóa vì có rất nhiều gói đã tồn tại (ví dụ: Keras in python). Đồng thời thử PCA và LDA để chuyển đổi không gian tính năng của bạn thành một đại diện hơn.
JahKnows

0

Bạn cần thực hiện trích xuất tính năng hoặc kỹ thuật tính năng để tạo các biến trong dữ liệu đào tạo của mình để "bắt" các mẫu mà bạn đã đóng hộp và sau đó có một biến mục tiêu có nội dung "không tìm thấy ác ý" hoặc "không tìm thấy ác ý"

Lấy một ví dụ thực sự đơn giản: dự đoán nếu trời sắp mưa. Bạn có thể đưa ra một dự báo tương đối tốt về mưa trong 30 phút tiếp theo, cứ sau 30 phút lại kiểm tra xem 1. trời đột nhiên có mây và 2. áp suất khí quyển giảm.

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.