Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pengurutan Bilangan Bulat Multi-Kolom

Masalah yang tampaknya Anda miliki adalah bahwa setiap kolom memiliki skala yang berbeda sehingga Anda tidak dapat dengan mudah menggabungkannya. Masalah ini dapat diselesaikan dengan menggunakan teknik yang disebut pemutihan. Ini melibatkan penghitungan rata-rata dan standar deviasi setiap kolom (Anda dapat melakukan ini dalam 1 pernyataan SQL) dan kemudian mengubah skala setiap kolom menjadi ini saat memilih:

colSortPos = (colValue-colMean) / colStdev

Melakukan ini akan memberi Anda setiap kolom berkisar sekitar 0 yang +/- 1 standar deviasi dalam kisaran +/- 1. Triknya kemudian adalah menggabungkan ini sehingga tanggal yang sama menjadi satu. Masalahnya di sini adalah bahwa ini bukan masalah 2 dimensi sehingga Anda perlu berpikir secara multidimensi. Jadi saran saya adalah untuk mengambil jarak Euclidean sebagai urutan pengurutan Anda.

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

Satu-satunya masalah dengan ini adalah memproyeksikan masalah Anda ke ruang 1 dimensi yang mungkin membuat Anda kehilangan beberapa korelasi. Untuk mengatasinya, saya sarankan menggunakan teknik pengelompokan seperti K-means yang cukup sederhana untuk diterapkan dan sangat cepat. Ini akan memungkinkan Anda untuk mengelompokkan tanggal Anda ke dalam k cluster yang paling mirip [ http:// en.wikipedia.org/wiki/K-means_clustering ]. Jika Anda memiliki data mentah dan ingin bermain-main dengan teknik ini (dan lainnya) maka saya sarankan untuk mencoba weka toolkit [ http://www.cs.waikato.ac.nz/ml/weka/ ] yang akan memungkinkan Anda bermain-main dengan teknik ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pengembangan Rails - Tidak dapat terhubung ke server MySQL di 'localhost' (10061)

  2. Struktur Basis Data yang melibatkan bidang dinamis

  3. ECHO MYSQL HASIL TAMPILAN HALAMAN KOSONG

  4. pip menginstal kesalahan mysqlclient

  5. Tanda hubung dalam nama kolom di MySQL DB