Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Thứ tự số nguyên nhiều cột

Vấn đề bạn gặp phải là mỗi cột có một tỷ lệ khác nhau và vì vậy bạn không thể dễ dàng kết hợp chúng. Vấn đề này có thể được giải quyết bằng cách sử dụng một kỹ thuật gọi là tẩy trắng răng. Điều này liên quan đến việc tính toán trung bình và độ lệch chuẩn của mỗi cột (bạn có thể thực hiện điều này trong 1 câu lệnh SQL) và sau đó thay đổi tỷ lệ từng cột thành giá trị này khi chọn:

colSortPos = (colValue-colMean) / colStdev

Làm điều này sẽ cung cấp cho bạn mỗi cột có phạm vi xung quanh 0 mà +/- 1 độ lệch chuẩn trong phạm vi +/- 1. Sau đó, mẹo là kết hợp các cột này sao cho các ngày tương tự lại với nhau. Vấn đề ở đây không phải là vấn đề 2 chiều và vì vậy bạn cần suy nghĩ đa chiều. Vì vậy, đề xuất của tôi là lấy khoảng cách Euclid làm thứ tự sắp xếp của bạn.

SELECT
    date,
    i,
    j,
    k,
    SQRT( POW(([email protected])/@iStdDEv, 2) + POW(([email protected])/@jStdDEv, 2) + POW(([email protected])/@kStdDEv, 2) )
AS
    sort_order
FROM
    table
ORDER BY
    sort_order

Vấn đề duy nhất với điều này là nó chiếu vấn đề của bạn lên không gian 1 chiều có thể khiến bạn bỏ sót một số mối tương quan. Để giải quyết vấn đề này, tôi khuyên bạn nên sử dụng một kỹ thuật phân cụm như K-mean, khá đơn giản để thực hiện và thực sự nhanh chóng. Điều này sẽ cho phép bạn nhóm các ngày của mình thành k cụm hiển thị giống nhau nhất [ http:// en.wikipedia.org/wiki/K-means_clustering ]. Nếu bạn có dữ liệu thô và muốn thử với các kỹ thuật này (và các kỹ thuật khác) thì tôi khuyên bạn nên thử bộ công cụ weka [ http://www.cs.waikato.ac.nz/ml/weka/ ] sẽ cho phép bạn chơi với những kỹ thuật này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. đảo ngược mysql_real_escape_string

  2. Làm cách nào để ánh xạ một ngày Java thành DATETIME trong mysql (theo mặc định là TIMESTAMP của nó) với các chú thích Hibernate

  3. Oracle - Lỗi:'ORA-01400:không thể chèn NULL vào

  4. Truy vấn mysql LIKE mất quá nhiều thời gian

  5. Làm thế nào để khôi phục cơ sở dữ liệu mysql trong XAMPP?