veri madenciliği - burakkiymaz.github.io · veri madenciliği Çok fazla bilgiden gizli kalmış...
TRANSCRIPT
VeriMadenciliğiÇokfazlabilgidengizlikalmışörüntüleriortayaçıkarmasürecineVeriMadenciliğidenir.
istatistik+makineöğrenmesi+yapayzeka=verimadenciliği
Verimadenciliğisüreçleri
CRISP-DMSüreci
DataUnderstanding
Classification(Sınıflandırma):veribelirlikategorileregöresınıflaraayrılır.Clustring(kümeleme):BelirlietiketleregörekümelemeyapıppromosyonmaillerininsadeceilgilikişileregitmesinisağlarAssocationRules(Birliktelikkuralları):Bunabakanbunlaradabaktıyapısıgibiverilerarasındailişki.
Datapreparation
Bufazdadeğerlendirilecekverilerhazırlanır.Elimizdeboşgirilmişveriolmamasıgerekir.Boşolanverilerediğerverilermedyanıveyaaritmetikortalamasıiledoldurulur.
Modelleme
İstatikselmakineöğrenmesiveyapayzekayöntemlerikullanılır.Buşekildeistatistikselolarakkarşılaştırmayapılır.
Evaluation
Modellemedengelenverilerdeğerlendirilir.
Deployment
Verilerinekrandagösterilmesiaşamasınadenir.
OLTP:BirveritabanındasadeceInsert-Update-Deleteyapılıyorisebuveritabanınadenir.
DatawareHouseOLTPveritabanındakiverilerinsadeceanalizedilecekkısmınıtutar.
Kullanılacakbazıkütüphaneler
Pandas:csvverileriüzerindehızlıişlemyapabiliyor.NumPy:matrislerüzerindehızlıçalışıabiliyorScikit_Learn:Makineöğrenmesikütüphanesi
Pandas
VerilerinsatırvesütunlarıüzerindeişlemyapmayaizinverenDataFrameveSeriesözelliklerivardır.
NumPy
GüçlübirN-boyutludizisağlar.Karmaşıkfonksiyonlarbulunmaktadır.C/C++Fortranentegrasyonubulunmaktadır.KullanışlıForuierdönüşümüverastgelesayıyeterneklerivardır.
Scikit_Learn
Makineöğrenmesikütüphanesi
NumPyverileriniparametreolarakalır.Pandaskullanarakverileriyüklenebilir.temizlenebilirveişlenebilir.
ilkuygulama
importpandasaspd
importnumpyasnp
#F9ilebulunulansatırveyataranmışolansatırlarıçalıştırabiliriz.
dataframe=pd.read_csv('Eskicalisanlar.csv')
#Dataframekısmındaiçeriğigörebiliriz.
dataframe.head()
#enüsttenitibarenbelirlisayıdakaydıgösterir.
#headparantezlerininiçerisinebirparametreverilirseoparametrekadar
#veriyigösterir.
dataframe.tail()
#sondanitibarenkayıtlarıgörmekiçinkullanılır.
dataframe.shape
#dataframeinkaçsatırvekaçsütundanoluştuğunubirtupleolarakverir.
dataframe.size
#dataframeiniçerisindekaçtanekayıtolduğunugösterir.
len(dataframe)
#satırsayısınıöğrenmemizisağlar.
dataframe.columns
#kolonisimlerinigörmemizisağlar.
dataframe['Hired']
#sadece'Hired'kolonubilgilerinigörmemizisağlar.
dataframe['Hired'][5]
#Hiredın5.indisindakiverigösterir.
dataframe[['Hired','Employed?']]
#birdenfazlasütunuaynıandaçekmemizisağlar.
dataframe.sort_values(['YearsExperience'])
#verileri'YearsExperience'önceliklisıralamamızısağlar.Varsayılanolarak
#küçüktenbüyüğesıralar.
egitimDuzeyi=dataframe['LevelofEducation'].value_counts()
#'LevelofEducation'kolonunasahipkişilerinverilerinibirleştirir.
egitimDuzeyi.plot(kind='bar')
#egitimDuzeyiverilerindengrafikoluşturmamızısağlar.
Soru
Yalnızca"PreviousEmployers"ve"Hired"sütunlarını,dataframeimizin5-10satırlarınısaçin.BunuyenibirDataframe'eatayınveverilerinbualtkümesindekiPreviousEmployerslarındağılımınıgösterenbirhistogramoluşturun.
VeriTipleri
NumericalNümerikverilerDiscreteveContinuousolmaküzereikiyeayrılır.DicreteData(Ayrıkveri)
Tamsayıtabanlıdır.Genelliklebirolayıngerçekleşmesayısıgibidurumlarifadeedilir.(Birmüşteriyıldakaçdefaalışverisyaptı.)
ContinuousData(SürekliVeri)Butipverilerölçümlebelirlenmişdeğerlerdir.Gerektamsayıgereksevirgüllüsayılarolabilir.Yanisayıdoğrusuüzerindekitümdeğerlerialabilirler.(Birokuldakiöğrencilerinkilolarınedir?)
CategoricalData(KategorikVeri)CinsiyetiIrk,Ürünkategorisivb.
OrdianData(OrdinalVeri)Ordinalverilerdeyinekategorikveritüründendir.Fakatdeğerleriarasındasıralıbirilişkibulunmaktadır.(Filmratingleri,Müşteriüründeğerlendirmelerivb.)
ÖrnekSorularTankınızdanekadargazvar?(Continuous)Hastanehizmetineverdiğinizpuan?1kötü,2orta,3iyi,4çokiyi(Ordinal)Sınıtakiöğrencilerinyaşadıklarıiller(Categorical)Sınıftakiöğrencilerinyaşları.(Discrete)Alışverişmerkezindeharcananpara(Continuous)
Categorical
Mean,Medianvemode
Mean
verilerinaritmetikortalamsıdır.
importpandasaspd
importnumpyasnp
veri=[1,2,3,4,5,6,7,8,9,10]
np.mean(veri)
rastgeleveriüretmekistersekaşağıdakigibiyapabiliriz.
importpandasaspd
importnumpyasnp
importmathplotlib.pyplotasplot
gelirler=np.random.normal(3000,1500,10000)
#Normaldağılımasahiportalamadeğer,Standartsapma,10000değerüret
np.mean(gelirler)
plot.hist(gelirler,50)
#gelirlerverilerini50aralığaayırdemek.
Histogram
Gruplandırılmışbirveridağılımınınsütungrafiğiilegösteriminehistogramadıverilir.
Histogramoluşturma
1. Öncelikleverilerküçüktenbüyüğesıralanır.2. Verigrubununaçıklığı(aralığı)bulunur.Açıklıkenbüyükveridenenküçükverininçıkarılması
ilebulunur.3. Verilerinkaçgrubaayrılacağıbelirlenir.4. Grupgenişliğibulunur.Açıklıkdeğeriningrupsayısınabölünmesiyleeldeedilensayıdan
büyükenküçükdoğalsayıgrupgenişliğiolarakalınır.5. Verilerenküçükveridenbaşlayarakverigenişliğinegöregruplaraayrılır.6. Oluşturulangruplarvegruplardakiverisayılarıtablohalindedüzenlenir.7. Tabloyabakılılarakhistogramçizilir.
Örnekhistogramçizimi:
Veriler:
162,161,170,167,170,173,163,176,174,180,179,164,169,175,177,185,
169,172,180,175,168,163,172,172,169,173,170,171,168,166,167,170.
1)Öncelikleriverilerküçüktenbüyüğesıraladık.
161,162,163,163,164,166,167,167,168,168,169,169,169,170,170,170,
170,171,172,172,172,173,173,174,175,175,176,177,179,180,180,185
2)Verigrubununaçıklığınıbulduk.
185–161=24
3)Verilerinkaçgrubaayrılacağıbelirledik.Grupsayımız5olsun
4)Grupgenişliğinibulduk.24:5=4,8olupbusayıdanbüyükenküçükdoğalsayı5'tir.
Verilerigrupgenişliğinegöregruplaraayırdık.Verilerdekienküçüksayıdanbaşlayarakgrupgenişliğikadarsayıilerleyerekbirgrupyapıyoruz.Buradakisayılarınverilerarasındaolmazorunluluğuyok.161-162-163-164-165gibi5taneveriyi161-165şeklindeyazıyoruz.Ohaldegruplarımız:161-165,166-170,171-175,176-180,181-185
5)Gruplarımızıveogruplardakiverisayılarınıtablohalindedüzenledik.
Gruplar Kişisayısı
161-165 5
166-170 12
171-175 9
176-180 5
181-185 1
Outlier(Aşırıdeğer)
Birverianaliziyapılırkenverilerinnormaldağılımauygunolduğudüşünülür.
Veriler,ortalama>=-3*Standartsapmaveortalama<=3*Standartsapmaaralığıiçerisindeolmalıdır.BuaralığındışındabulunandeğerlerOutlierdeğerlerdir.Outlierdeğerlersilinmezsedoğrusonucaulaşılamaz.Buverilerinsilinmesigerekmektedir.
Mod
Birsayısaldeğeriçerisindeençoktekraredendeğeredenir.
fromscipyimportstats
yaslar=np.random.randint(18,high=90,size=500)
#Rastgeleyaşdeğerinesahip500tanedeğeroluşturur.
stats.mode(yaslar)
#verilenyaşlarınençoktekraredeninibulur.
Median
Birsayısaldeğersıralandığındaortadakisayıyıverir.Eğerstandartsapmaçokyükseksemedyançokönemlidir.Çünküortalamaistediğimizsonucuvermeyecektir.Buradamedyandeğerlerinegöreişlemyapılır.Buyğzdenveriyidüzgünincelemekgerekmektedir.
np.median(yaslar)