Veri biliminin "siyah altınına" nasıl hakim olunur?

Veriler yeni yağdır.

Artık algoritma dünyasına girişin önündeki engeller oldukça düşük.Açık kaynak, Steve Ballmer gibi insanlar tarafından bir şeytan olarak görülmekten Microsoft'un ayrılmaz bir parçası haline geldi. Birçok açık kaynak projesi, veri bilimi, dijital analiz ve makine öğreniminin gelişimini yönlendiriyor.

2018 itibariyle, algoritmalar, programlama çerçeveleri ve makine öğrenimi paketleri (hatta bu teknolojilerin nasıl öğrenileceğine dair öğreticiler ve kurslar) kıt kaynaklar değil, yüksek kaliteli verilerdir.

Bu genellikle veri bilimi ve makine öğreniminde yeni başlayanlar için karmaşık sorunlar yaratır. Bu makale yalnızca öğrenme amaçlı veri eksikliği konusunu ele alır ve iş operasyonlarını yürütmek için kullanılan verilerle ilgilenmez.

Kendi kendini yöneten veri biliminin anahtarı

Veri bilimi hem popüler hem de popüler. Dahası, insanlar veri bilimine yöneliyor - kariyerlerini değiştiriyorlar, eğitim kampları ve çevrimiçi MOOC'lar için para ödüyorlar ve LinkedIn'de sosyal ağlar kuruyorlar. Bununla birlikte, birçok yeni giren kişi resmi kursları geçip belirsiz alanlara girdiğinde, yeni "el sanatları" öğrenme ivmesini korumak zordur.

Hangi problemi çözmek istiyorsun? Hangi MOOC'u takip etmeli? Hangi Kaggle yarışmasına katılmalı? Hangi yeni makine öğrenimi paketi öğrenilecek? Github'da ne tür bir proje göstermek istiyorsunuz? Kaç tane matematik becerisinde ustalaşman gerekiyor?

İyi bir veri bilimi antolojisi nasıl oluşturulur? Çok popüler bir makaleye göre cevap, yenilikçi düşünce ve orijinal katkıları göstermek için açık kaynağa katkıda bulunmak, veri modelleme, tartışma, görselleştirme veya makine öğrenimi algoritmaları kullanmak gibi kamuya açık işler yapmaktır. Ne yazık ki, insanlar genellikle hevesli bir rehberliğe veya akıl hocalarına sahip değildir ve genellikle kendilerini tanıtmak zorundadır.

Bu gri alanı başarıyla geçebilen bir kişinin kendi kendine sürüş veri bilimi alanında sihirli silahını bulduğu ve uzun bir yol kat ettiği söyleniyor. Ancak, bu geziyi verimli kılmak için, uygulama ve öğrenme için yüksek kaliteli veri setlerine erişmesi gerekir.

Zengin bir öğrenme deneyimi için ne tür verilere ihtiyaç var?

Destek vektör makineleri veya derin sinir ağları gibi makine öğrenimi algoritmalarını revize ettiğinizi varsayalım. Ne tür bir veri kümesi üzerinde pratik yapmalısınız? Sıfırdan başlarsanız, basit, küçük ölçekli veri kümeleriyle başlamanız önerilir. Bu veri kümelerini iki boyutlu olarak çizerek kalıpları sezgisel olarak anlayabilir ve makine öğrenimi algoritmalarının sezgisel bir şekilde çalıştığını kendiniz görebilirsiniz.

Bu iyi bir başlangıç. Ama bu hepsi değil.

Tabii ki, bir seviyeyi yükseltebilir ve kendinize gerçekte üzerinde algoritmalar uygulayabileceğiniz büyük bir veri kümesi bulabilirsiniz.

Bununla birlikte, bu hala sabit sayıda numuneye, sabit bir modele ve pozitif ve negatif numuneler arasında sabit bir ayrım seviyesine sahip sabit bir veri kümesidir (eğer bunun bir sınıflandırma problemi olduğunu varsayarsak).

Algoritmanın tüm karmaşıklığını aşağıdaki yönlerden öğrendiniz mi:

· Örnek karmaşıklığı

· Hesaplamalı verimlilik

· Seviye dengesizliği ile başa çıkma yeteneği

· Değişen derecelerde sınıf ayrımına ve ölçüm sağlamlığına karşı

· Veri karmaşıklığının bir fonksiyonu olarak önyargı-varyans ödünleşmeleri

Belki değil. Tek bir veri kümesi, belirli bir makine öğrenimi algoritması için tüm bu derin içgörüleri sağlayamaz. Ancak bunlar, gerçek bir makine öğrenimi uzmanı uygulayıcısı olmak için ustalaşmanız gereken çok önemli içgörülerdir.

Bu nedenle, tüm bu deneyler için yeterli olan çok zengin ve yeterince büyük bir veri kümesine ihtiyacınız olacak.

ne yapabilirsin?

Bu durumda ne yapabilirsiniz? İnternette daha fazla veri kümesi arayın, bunlardan bazılarının belirli algoritmalarla ilgili sınırlamalar ve zorluklar getirebileceğini ve öğrenmenize yardımcı olacağını umuyor musunuz?

Evet, bu olası bir yöntemdir, ancak zaman ve emek açısından en pratik veya en uygun yöntem olmayabilir. İyi bir veri seti kirli olabilir veya kolayca bulunamayabilir. Makine öğrenimi algoritmalarını anlamaya çalışmakla karşılaştırıldığında, doğru veri kümesini aramak, çıkarmak ve rekabet etmek için daha fazla zaman harcayabilirsiniz. Gerçek hayattaki veri setlerini arama, veri setlerini çıkarma, keşif amaçlı veri analizi çalıştırma ve hatta bunları makine öğrenimi tabanlı modellemeye hazırlamak için reddetme deneyimi değerlidir. Bu konuda bir ders / kitap yazıyorum.

Ancak bu ayrı ayrı öğretilebilir ve uygulanabilir. Bununla birlikte, çoğu durumda, makine öğrenimi algoritmasının şiddet içeren ayrıntılarını hissetmek için yalnızca esnek veri setine (veya birkaçına) erişmek isteyebilirsiniz.

Şaşırtıcı bir şekilde, çoğu durumda, bu tür bir öğretim sentetik veri kümeleri ile yapılabilir.

Sentetik veri kümesi nedir?

Adından da anlaşılacağı gibi, sentetik bir veri kümesi, programla oluşturulan bir veri ambarıdır. Yani gerçek hayatta anketler veya deneylerle toplanmaz. Bu nedenle, temel amacı, makine öğrenimi uygulayıcılarının çeşitli sınıflandırma, regresyon ve kümeleme algoritmalarıyla deney yapmalarına yardımcı olacak kadar esnek ve zengin olmaktır. Beklediği özellikler şunlardır:

· Sayısal, ikili veya kategorik (sıralı veya sıra dışı) olabilir.

· Veri setinin özellik sayısı ve uzunluğu rastgele olmalıdır.

· Rastgele olmak en iyisidir ve kullanıcı bu verilere güvenmek için temel rastgele sürecin hassas kontrolü ve ayarlanması gibi çeşitli istatistiksel dağılımları seçebilmelidir.

· Sınıflandırma algoritmalarında kullanılıyorsa, sınıf ayrımının derecesi, öğrenme probleminin kolaylığını veya zorluğunu ayarlayabilmelidir.

· Rastgele gürültü kontrollü bir şekilde eklenebilir.

· Regresyon problemleri için, veri elde etmek için karmaşık, doğrusal olmayan bir üretim süreci kullanılabilir.

Ancak bu makalede, daha iyi makine öğrenimi algoritmaları elde etmek için tartışmayı sentetik verilerle sınırlayacağız. Ancak, gerçek veri setlerinin güvenlik ve mahremiyet sorunları ile başa çıkmaya yardımcı olduğunda çok geniş kapsamlı bir öneme sahip olabilir (bu konular öğrenme amacıyla kullanılamaz veya edinilemez).

Scikit öğrenme yöntemiyle veri oluşturun

Scikit öğrenme, klasik makine öğrenimi görevleri için harika bir Python kitaplığıdır (örneğin, özellikle derin öğrenmeyi umursamıyorsanız). Bununla birlikte, makine öğrenimi algoritmaları yaygın olarak kullanılmasına rağmen, sağladığı mükemmel sentetik veri oluşturma işlevleri nadiren bilinmektedir.

İşte kısa bir özet:

Regresyon problemi oluşturma: Scikit-öğrenme veri seti. Make_regression işlevi, girdi özellikleri, çıktı hedefleri ve bunlar arasında kontrol edilebilir bilgi bağlantısı ile herhangi bir sayıda rastgele regresyon problemi yaratabilir. Ayrıca Gauss gürültüsünü karıştırabilir.

Sınıflandırma problemi oluşturma: Yukarıdaki regresyon fonksiyonuna benzer şekilde, dataset.make_classification, kontrol edilebilir sınıflandırma ve ek gürültü ile rastgele çok sınıflı bir sınıflandırma problemi (veri seti) üretir. Gerekirse, daha zor bir sınıflandırma veri kümesi oluşturmak için çıktı simgelerinin herhangi bir yüzdesini rasgele çevirebilirsiniz.

Kümeleme problemi oluşturma: İlginç kümeler oluşturmak için kullanılabilecek birçok işlev vardır. En doğrudan yöntem, kontrol edilebilir mesafe parametreleriyle herhangi bir sayıda küme oluşturabilen dataset.make_blobs kullanmaktır.

Anizotropik küme oluşturma: Matris çarpımını kullanan basit bir dönüşüm, belirli bir eksen boyunca hizalanmış veya anizotropik olarak dağıtılmış kümeler oluşturabilir.

Eş merkezli halka küme veri üretimi: Kümeleme algoritmalarını veya yakın ilişkilere dayalı Gauss karışım modellerini test etmek için, kümeleri özel şekillerde oluşturmak faydalıdır. Bunu başarmak için dataset.make_circles işlevini kullanabiliriz.

Elbette, kümeleme algoritmasının sağlamlığını test etmek için verilere biraz gürültü de ekleyebiliriz.

Ay küme veri üretimi: Algoritmayı test etmek için kontrol edilebilir gürültü ile aylık küme verileri oluşturmak için datasets.make_moons işlevini de kullanabiliriz.

Rasgele sembolik ifadelerle veri oluşturun

Yukarıda belirtilen işlevlerin kullanımı çok kolay olsa da, kullanıcılar veri üretiminin altında yatan mekanizmayı kolayca kontrol edemez ve regresyon çıktısı, girdinin belirleyici bir işlevi değildir - aslında rastgele bir çıktıdır. Bu pek çok sorun için yeterli olsa da, genellikle bu sorunları doğrusal, doğrusal olmayan, rasyonel ve hatta aşkın terimleri içeren iyi tanımlanmış işlevlere dayalı olarak üretmek için kontrol edilebilir bir yöntem gerektirir.

Örneğin, çeşitli çekirdekli SVM sınıflandırıcılarının karmaşık güneş tahrikli ayırıcılar (doğrusaldan doğrusal olmayana) ile donatılmış veri kümeleri üzerindeki etkinliğini değerlendirmek veya doğrusal modellerin rasyonel veya aşkın işlevler için yararlı olduğunu kanıtlamak istiyoruz. Regresyon veri kümesinin sınırlamaları. Scikit-öğrenmenin bu özellikleriyle bunu yapmak zordur.

Ek olarak, kullanıcılar yalnızca sembolik ifadeleri oluşturma işlevleri (veya sınıflandırma görevleri için mantıksal ayırıcılar) olarak girmek isteyebilirler. Bunu sadece scikit-öğrenmenin yardımcı programını kullanarak yapmak kolay değildir ve deneyin her yeni örneği için kendi işlevinizi yazmalısınız.

Sembolik ifadelerin girilmesi sorununu çözmek için Python paketi SymPy kolayca kullanılabilir ve bu da sembolik matematiksel ifadelerin anlaşılmasına, oluşturulmasına ve önemli ölçüde karmaşıklığa göre değerlendirilmesine olanak tanır.

Örneğin, bir kare terimin (x2) ve bir sinüs terimin (sin (x) gibi) çarpımı olarak sembolik bir ifade kullanabilir ve bundan rastgele bir regresyon veri seti oluşturabiliriz.

Alternatif olarak, sinir ağı algoritmalarını test etmek için doğrusal olmayan bir elips sınıflandırması sınır tabanlı veri seti üretilebilir. Aşağıdaki şekilde, kullanıcının m = 'x1 ** 2-x2 ** 2' sembolik ifadesini nasıl girdiği ve bu veri setini nasıl oluşturduğunun gösterildiğine dikkat edin.

Sınıflandırma verilerini oluşturmak için "pydbgen" kitaplığını kullanın

Birçok yüksek kaliteli gerçek hayat veri seti İnternette bulunmasına ve kişisel deneyimlerden harika makine öğrenimi tekniklerini denemek için kullanılabilmesine rağmen, SQL öğrenirken durum böyle değildir.

Veri bilimi uzmanları için SQL ile temel bir aşinalık Python veya R'de kod yazmayı bilmek kadar önemlidir. Ancak yeterince büyük bir veritabanına erişmek için gerçek sınıflandırılmış verileri (ad, yaş, kredi kartı, sosyal güvenlik numarası, adres, doğum günü vb.) Kullanmak, Kaggle'daki oyuncak veri kümesine erişmek kadar yaygın değildir. Kaggle, makine öğrenimi görevleri için özel olarak tasarlanmıştır. .

Veri bilimine yeni başlayanlara ek olarak, deneyimli yazılım test uzmanları bile basit bir aracı faydalı bulabilir. Yalnızca birkaç satır kodla, rastgele (sahte) ancak anlamlı Rasgele büyük öğelerden oluşan bir veri kümesi.

PydGEN girin.

Rastgele faydalı girişler (örneğin ad, adres, kredi kartı numarası, tarih, saat, şirket adı, iş unvanı, plaka numarası vb.) Oluşturmak ve bunları Pandalar veri çerçevesine kaydetmek için kullanılan hafif ve saf bir python kitaplığıdır. Nesne veya veritabanı dosyasında veya MS Excel dosyasında SQLit tablosu olarak.

Burada yalnızca ekran görüntüleriyle birlikte birkaç basit veri oluşturma örneği gösterilecektir:

Birkaç uluslararası telefon numarası oluşturun:

Ad, adres, SSN gibi rastgele girişlerle eksiksiz bir veri çerçevesi oluşturun:

Özet ve sonuç

Bu makale, heyecan verici veri bilimi ve makine öğrenimi dünyasına girmek için yüksek kaliteli veri kümelerine erişimin önemini tartışıyor. Yeterince esnek ve zengin bir veri setinin eksikliği, çoğu zaman kişinin makine öğreniminin veya istatistiksel modelleme tekniklerinin iç işleyişine derinlemesine girme ve yüzeysel bir anlayış bırakma becerisini sınırlar.

Sentetik veri kümeleri bu konuda çok yardımcı olabilir ve bu rotayı denemek için kullanılabilecek bazı hazır işlevler vardır. Bununla birlikte, bazen karmaşık doğrusal olmayan sembol girişine dayalı sentetik veriler üretebilmek gerekir ve bu yöntemi tartıştık.

Ayrıca bu makale, veritabanı becerileri alıştırması ve analiz görevleri için rastgele gerçek veri kümeleri oluşturabilen heyecan verici bir Python kitaplığını da tartışır.

Bu makalenin amacı, genç veri bilimcilerinin doğru veri setini alamadıkları için başlarını belaya sokmak zorunda kalmadıklarını göstermektir. Bunun yerine, öğrenme amaçlarına yönelik sentetik veriler oluşturmak için kendi programlama çözümlerini bulmalı ve tasarlamalıdır. Bu süreçte birçok yeni beceri öğrenebilir ve yeni fırsatların kapılarını açabilirler.

Derleyici grubu: Gao Yajing, Wei Zhenchen İlgili bağlantılar: https://towardsdatascience.com/synthetic-data-generation-a-must-have-skill-for-new-data-scientists-915896c0c1ae Yeniden yazdırmanız gerekirse, lütfen arka planda bir mesaj bırakın ve yeniden yazdırmayı izleyin Şartname
Lynk & Co 032.0T modelleri piyasada ve 15.48-16.68 milyon yuan / küçük çelik silah satıyor
önceki
Çin standartlarına göre Google'ın tıbbi reklamcılığı uyumlu mu?
Sonraki
Yeni bir dış tasarımla GAC Mitsubishi'nin yeni Qizhi EV'i resmi olarak tanıtıldı
Sony Çin yetkilisi Weibo tweet attı: "Çok kızgınım." Weibo daha sonra silindi ve şu cevabı verdi: Çocuğu anlayın
Veri bilimi çok mu zor? Lütfen bu tuzaklardan kaçının
Kablosuz şarj uzun süredir var, ancak neden şimdi popüler değil?
Jupyter Not Defterlerinin gizli avantajlarıyla yeni bir dünyanın kapısını açın
Kore serisi aynı zamanda spor da oynayabilir, yeni Kia K3 Şangay Otomobil Fuarı'nda görücüye çıktı.
Kirin 970+ tam ekran görüntüye sahip değil, Huawei'nin telefonu bin kişi azaldı ve fiyatı 2.000 yuan'dan az
Bugünün Çekirdek Sesi | Bu bir terör ifadesi değil: Fillerin on yıl içinde neslinin tükenmesi bekleniyor
Artık telefon depolama alanı için endişelenmeyin! Meizu Flyme Hızlı Uygulama: Kullanmak için tıklayın
Apple sonunda fark etti mi? Açık C To L yetkilendirmesi, iPhone hızlı şarjı eşlik çağını başlatacak
Bugünkü Çekirdek Ses | Bu bir terör ifadesi değil: Fillerin on yıl içinde neslinin tükenmesi bekleniyor
2019 Lynk & Co 01 piyasaya çıktı ve Ulusal VI standartlarına uygun olarak 15.08-19.88 milyon yuan sattı
To Top