7
Veri Madenciliği Çok fazla bilgiden gizli kalmış örüntüleri ortaya çıkarma sürecine Veri Madenciliği denir. istatistik + makine öğrenmesi + yapay zeka = veri madenciliği Veri madenciliği süreçleri CRISP-DM Süreci Data Understanding Classification (Sınıflandırma): veri belirli kategorilere göre sınıflara ayrılır. Clustring (kümeleme): Belirli etiketlere göre kümeleme yapıp promosyon maillerinin sadece ilgili kişilere gitmesini sağlar Assocation Rules (Birliktelik kuralları): Buna bakan bunlara da baktı yapısı gibi veriler arasında ilişki. Data preparation Bu fazda değerlendirilecek veriler hazırlanır. Elimizde boş girilmiş veri olmaması gerekir. Boş olan verilere diğer veriler medyanı veya aritmetik ortalaması ile doldurulur.

Veri Madenciliği - burakkiymaz.github.io · Veri Madenciliği Çok fazla bilgiden gizli kalmış örüntüleri ortaya çıkarma sürecine Veri Madenciliği denir. istatistik + makine

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

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)