Büyük veri için ilk adım ( , )


21

Her gözlemin birkaç bin seyrek ve muhtemelen gereksiz sayısal ve kategorik değişkenlere sahip olduğu, günde milyarlarca gözlem ayarında büyük bir veriyi analiz ettiğinizi varsayalım. Diyelim ki bir regresyon problemi, bir dengesiz ikili sınıflandırma problemi ve bir de “hangi tahmin edicilerin en önemli olduğunu bulma” görevi var. Soruna nasıl yaklaşılacağı konusundaki düşüncem:

Bazı tahmin modelini, verilerin aşağıdakilere kadar aşamalı olarak daha büyük ve daha büyük (rastgele) alt örneklerine yerleştirin:

  1. Modelin takılması ve çapraz doğrulanması işlemsel olarak zorlaşır (örn. Dizüstü bilgisayarımda makul olmayan derecede yavaş, R belleği yetersiz çalışıyor), VEYA

  2. Eğitim ve test RMSE veya hassasiyet / hatırlama değerleri sabitlenir.

Eğitim ve test hataları stabilize edilmediyse (1.), daha basit bir model kullanın ve / veya modelin çok çekirdekli veya çok modlu sürümlerini uygulayın ve baştan yeniden başlatın.

Eğitim ve test hataları stabilize edilmişse (2.):

  • Eğer (yani, üzerinde algoritmaları hala çok büyük olmadığı için çalıştırabilirim ), özellik alanını genişleterek veya daha karmaşık bir model kullanarak ve en baştan yeniden başlatarak performansı iyileştirmeyi deneyin.X s U B s e tNsubsetNXsubset

  • Eğer 'büyük' ​​ise ve daha fazla analiz yapmak pahalıysa, değişken önemini analiz edin ve sonlandırın.Nsubset

Ben gibi paketleri kullanmayı planlıyorsanız biglm, speedglm, multicoreve ffR başlangıçta ve daha sonra gerektiği gibi daha karmaşık algoritmalar ve / veya (EC2) Çok Düğüm kullanın.

Bu makul bir yaklaşım gibi görünüyor mu ve öyleyse, özel bir tavsiyeniz veya öneriniz var mı? Olmazsa, bunun yerine bu boyutta bir veri seti için ne denerdiniz?


1
Bu makul bir yaklaşım gibi geliyor. Benzer bir yaklaşım hakkında bir konuşma buldum: youtube.com/watch?v=X9YVSDWQokQ .
alfa

2

@dcl: Teşekkürler - fikir iyi bir şekilde paraleleşecek (tek değişkenli olmasına rağmen) güzel, hesaplama açısından ucuz, doğrusal olmayan değişken bir seçim yöntemidir. Bunu deneyebilirim çünkü kodlaması hızlı ve çok basit. Aslında çok havalı bir algoritma kullanmayı düşünüyordum: code.google.com/p/rf-ace .
lockedoff

@ Alfa: Bu fikri gerçekten beğendim! En kötü performans gösteren meta-parametreleri sıralı olarak ortadan kaldırmak için verilerin daha büyük ve daha büyük alt kümelerinde ardışık bir test kullanmak. Bu önemli şeyler olmalı. Teşekkürler! ps burada konuşmanın bir bildiridir: biglearn.org/files/papers/biglearn2011_submission_2.pdf
lockedoff

Yanıtlar:


2

Bu boyuttaki veri kümeleri için regresyon ve sınıflandırma için çevrimiçi yöntemleri kontrol etmelisiniz. Bu yaklaşımlar, tüm veri setini belleğe yüklemek zorunda kalmadan kullanmanıza izin verir.

Ayrıca Vowpal Wabbit (VW) sitesine de bakabilirsiniz:

https://github.com/JohnLangford/vowpal_wabbit/wiki

Çekirdek dışı bir çevrimiçi yöntem kullanıyor, bu nedenle bu boyuttaki bir veri kümesini işleyebilmelidir. Regresyon ve sınıflandırma yapabilirsiniz ve seyrek formatları destekler. Ayrıca, modelinizin doğruluğunu artırabilen ceza versiyonlarını da (örn. Kement tipi regresyon / sınıflandırma) yapabilirsiniz.


2

Hadoop ve RMR'yi (R'deki Map Reduce için özel bir paket) kullanmanızı öneririm. Bu stratejiyle, uygun fiyatlı bir yapılandırmaya sahip olan emtia bilgisayarlarında büyük veri kümeleri çalıştırabilirsiniz (muhtemelen iki saat içinde hem Hadoop hem de RMR (RHadoop) kurulu ve çalışıyor) ortaya çıkar.

Aslında, birden fazla bilgisayarınız varsa, işlem süresini azaltarak bir küme oluşturabilirsiniz.

Size önerimi destekleyen bazı bağlantılar veriyorum:

  • Bu bağlantı , Hadoop'u tek düğümlü bir kümeye (bir bilgisayar) yüklemek için bir öğreticiye yönlendirir.
  • Bu bağlantı ve bu bağlantı size Hadoop kümenize RMR'yi nasıl yükleyeceğinizi gösterecektir.
  • Ve son olarak, burada RHadoop aracılığıyla bir lojistik regresyon örneği bulabilirsiniz.

Bu nedenle, benim tavsiyem, eğer verileriniz çok büyükse, kesinlikle buna değer olduğu için bu yönergeleri izlemektir.


0

Bu, bir yanıttan çok bir yorumdur, ancak yorum olarak gönderemiyorum (50 tekrar gerektirir) ..

PCA'yı veri kümenizde kullanmayı denediniz mi? Değişken alanı azaltmanıza ve değişkenin regresyon modelinden dışladığı olası bir yönü bulmanıza yardımcı olabilir. Bunu yapmak, modelin hesaplanması daha kolay olacaktır. Burada PCA'yı kategorik değişkenlerle kullanma hakkında ilginç bir tartışma bulacaksınız: Temel bileşen analizi, sürekli ve kategorik değişkenlerin bir karışımını içeren veri setlerine uygulanabilir mi?

Ayrıca, R'yi birçok nedenden dolayı kullandığınızı hayal ediyorum (ben de R'yi kullanıyorum), ancak SAS veya STATA gibi bir yazılımı kullanmak daha kolay olabilir. Büyük verilerle daha iyi performans gösterirler ve çok çekirdekli ve paralel hesaplamalarla uğraşmanıza gerek kalmaz.

Son olarak, veri kümenizden mümkün olduğunca çok satır kullanmanın mantıklı olup olmadığını düşünmeye çalışın. Bu bir popülasyon veri kümesi, yarı popülasyon veri kümesi veya örneklenmiş veri kümesi mi? Veri setinizde iyi bir örnekleme ile tüm verileri kullanmaktan daha iyi sonuçlar alabilirsiniz. Bu yazıya bir göz atın: Örnekleme 'büyük veri' zamanında önemli midir?

Bu yardımcı olur umarım

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.