Cara terbaik untuk mengumpulkan dan menganalisis data

13

Baru-baru ini mulai mengajar diri saya sendiri Pembelajaran Mesin dan Analisis Data, saya mendapati diri saya membentur dinding bata pada kebutuhan untuk membuat dan menanyakan set data yang besar. Saya ingin mengambil data yang telah saya kumpulkan dalam kehidupan profesional dan pribadi saya dan menganalisisnya tetapi saya tidak yakin cara terbaik untuk melakukan hal berikut:

  1. Bagaimana saya harus menyimpan data ini? Unggul? SQL ??

  2. Apa cara yang baik bagi pemula untuk mulai mencoba menganalisis data ini? Saya seorang programmer komputer profesional sehingga kerumitannya tidak dalam menulis program tetapi lebih atau kurang spesifik untuk domain analisis data.

EDIT: Permintaan maaf untuk ketidakjelasan saya, ketika Anda pertama kali mulai belajar tentang sesuatu itu sulit untuk mengetahui apa yang Anda tidak tahu, ya tahu? ;)

Karena itu, tujuan saya adalah menerapkan ini pada dua topik utama:

  1. Metrik tim perangkat lunak (pikirkan kecepatan Agile, risiko kuantifikasi, kemungkinan iterasi yang berhasil diselesaikan dengan sejumlah x poin cerita)

  2. Pembelajaran mesin (mis. Pengecualian sistem telah terjadi dalam satu set modul apa kemungkinan modul akan melempar pengecualian di lapangan, berapa biayanya, berapa data yang dapat saya ceritakan tentang modul-modul kunci untuk ditingkatkan yang akan diperoleh saya yang terbaik untuk uang saya, memprediksi bagian sistem yang ingin digunakan pengguna selanjutnya untuk mulai memuat data, dll).

Justin Bozonier
sumber
Bagi saya ini agak kabur. Jenis data apa, dan jenis analisis apa? Juga, ini harus menjadi komunitas wiki jika bersifat subyektif.
Shane

Jawaban:

19

Jika Anda memiliki kumpulan data besar - yang membuat Excel atau Notepad memuat dengan lambat, maka basis data adalah cara yang baik untuk melakukannya. Postgres adalah open-source dan sangat bagus, dan mudah terhubung dengan JMP, SPSS, dan program lain. Anda mungkin ingin sampel dalam kasus ini. Anda tidak harus menormalkan data dalam database. Kalau tidak, CSV ramah-berbagi.

Pertimbangkan Apache Hive jika Anda memiliki 100M + baris.

Dalam hal analisis, berikut adalah beberapa titik awal:

Jelaskan satu variabel:

  • Histogram
  • Statistik ringkasan (rata-rata, kisaran, simpangan baku, min, maks, dll)
  • Apakah ada outlier? (lebih besar dari kisaran inter-kuartil 1,5x)
  • Distribusi seperti apa yang diikuti? (normal, dll)

Jelaskan hubungan antar variabel:

  • Plot sebar
  • Korelasi
  • Pencilan? lihat jarak Mahalanobis

  • Plot mosaik untuk kategori

  • Tabel kontingensi untuk kategori

Memprediksi bilangan real (seperti harga): regresi

  • Regresi OLS atau teknik regresi pembelajaran mesin

  • ketika teknik yang digunakan untuk memprediksi dapat dimengerti oleh manusia, ini disebut pemodelan. Misalnya, jaringan saraf dapat membuat prediksi, tetapi umumnya tidak dapat dimengerti. Anda dapat menggunakan regresi untuk menemukan Indikator Kinerja Utama juga.

Prediksi keanggotaan kelas atau probabilitas keanggotaan kelas (seperti lulus / gagal): klasifikasi

  • regresi logistik atau teknik pembelajaran mesin, seperti SVM

Masukkan pengamatan ke dalam kelompok "alami": pengelompokan

  • Umumnya orang menemukan pengamatan "serupa" dengan menghitung jarak di antara mereka.

Masukkan atribut ke dalam kelompok "alami": anjak piutang

  • Dan operasi matriks lainnya seperti PCA, NMF

Mengukur Risiko = Deviasi Standar, atau proporsi kali "hal buruk" terjadi x seberapa buruk mereka

Kemungkinan iterasi berhasil diselesaikan diberikan x jumlah poin cerita = Regresi Logistik

Semoga berhasil!

Neil McGuigan
sumber
Ini luar biasa. Terima kasih banyak atas tanggapan ini. Anda telah memberi saya titik lompatan yang bagus. Buku apa pun yang Anda rekomendasikan karena Anda tampaknya "mendapatkan" di mana saya berada.
Justin Bozonier
terima kasih kembali buku: Statistik dalam Bahasa Inggris untuk memulai. Analisis Data Multivariat oleh Hair setelah itu. Ini adalah sumber daya web yang bagus: itl.nist.gov/div898/handbook , statsoft.com/textbook
Neil McGuigan
4

Jika Anda melihat kesalahan sistem, Anda mungkin tertarik pada makalah berikut yang menggunakan teknik pembelajaran mesin untuk diagnosis kesalahan di eBay. Ini mungkin memberi Anda rasa jenis data apa yang harus dikumpulkan atau bagaimana satu tim mendekati masalah tertentu dalam domain yang sama.

Jika Anda baru memulai, sesuatu seperti RapidMiner atau Orange mungkin merupakan sistem perangkat lunak yang baik untuk mulai bermain dengan data Anda dengan cukup cepat. Keduanya dapat mengakses data dalam berbagai format (file csv, database, antara lain).

ars
sumber
3

Pertanyaan Anda sangat luas sehingga jawabannya adalah: itu tergantung. Namun, untuk memberikan jawaban yang lebih bermanfaat saya akan menunjukkan apa yang saya pikir umum dalam Penelitian.

Menyimpan data sangat sering dilakukan dalam file teks. Saat melakukan analisis statistik, Anda sebagian besar bekerja dengan koleksi satu jenis vektor. Ini dapat dilihat sebagai tabel dan ditulis dalam format csv. Alasan mengapa thins sering disimpan dalam teks biasa, adalah karena setiap alat dapat membacanya dan mudah untuk mengubahnya.

Tentang menganalisis, ini agak sulit untuk lebih spesifik. Jika 2 dimensi, buat sebaran. Jika dimensi tinggi, lakukan PCA dan lihat di mana komponen utama pertama ada untuk menemukan variabel penting. Jika Anda memiliki data waktu, plotlah. Ini semua sangat umum sehingga untuk menjadi berguna Anda harus benar-benar menunjukkan lebih baik apa data Anda.

Peter Smit
sumber
Peter, kau pukul aku sampai pukul! Saya sepenuhnya setuju dengan menyimpan data sebagai teks, meskipun tergantung pada ukuran (ratusan juta obs), mungkin perlu untuk pindah ke database yang dapat direduksi peta (misalnya, Babi, Cassandra, atau salah satu opsi NoSQL).
DrewConway
Oh ok, menarik! Jadi ambil saja data untuk setiap variabel dan layangkan dalam format kolom-baris dan dapatkan angka-angkanya eh? Apakah ada alat yang harus saya lihat atau haruskah saya hanya memprogram sesuatu?
Justin Bozonier
R adalah toolkit / bahasa pemrograman / perpustakaan yang sangat luas (dan gratis) untuk statistik. Namun favorit saya untuk kebanyakan hal adalah Python dengan SciPy / NumPy
Peter Smit
0

Satu-satunya hal yang sangat baik dilakukan ROOT adalah menyimpan jumlah data yang besar. ROOT adalah pustaka C ++ yang digunakan dalam fisika partikel; itu juga disertai dengan ikatan Ruby dan Python, sehingga Anda dapat menggunakan paket dalam bahasa ini (misalnya NumPy atau Scipy) untuk menganalisis data ketika Anda menemukan bahwa ROOT menawarkan beberapa kemungkinan di luar kotak.

Format file ROOT dapat menyimpan pohon atau tupel, dan entri dapat dibaca secara berurutan, sehingga Anda tidak perlu menyimpan semua data di memori pada saat yang sama. Ini memungkinkan untuk menganalisis petabyte data, sesuatu yang tidak ingin Anda coba dengan Excel atau R.

Dokumentasi ROOT I / O dapat dihubungi dari sini .

Benjamin Bannier
sumber