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ıppromosyonmaillerininsadece ilgilikişileregitmesinisağlar AssocationRules(Birliktelikkuralları):Bunabakanbunlaradabaktıyapısıgibiveriler arasındailişki. Datapreparation Bufazdadeğerlendirilecekverilerhazırlanır.Elimizdeboşgirilmişveriolmamasıgerekir.Boşolan verilerediğerverilermedyanıveyaaritmetikortalamasıiledoldurulur. Modelleme İstatikselmakineöğrenmesiveyapayzekayöntemlerikullanılır.Buşekildeistatistikselolarak karşı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ışıabiliyor Scikit_Learn:Makineöğrenmesikütüphanesi Pandas VerilerinsatırvesütunlarıüzerindeişlemyapmayaizinverenDataFrameveSeriesözellikleri vardı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.Bunu yenibirDataframe'eatayınveverilerinbualtkümesindekiPreviousEmployerslarındağılımını gösterenbirhistogramoluşturun. VeriTipleri Numerical NümerikverilerDiscreteveContinuousolmaküzereikiyeayrılır. DicreteData(Ayrıkveri) Tamsayıtabanlıdır.Genelliklebirolayıngerçekleşmesayısıgibidurumlarifade edilir.(Birmüşteriyıldakaçdefaalışverisyaptı.) ContinuousData(SürekliVeri) Butipverilerölçümlebelirlenmişdeğerlerdir.Gerektamsayıgereksevirgüllüsayılar olabilir.Yanisayıdoğrusuüzerindekitümdeğerlerialabilirler.(Birokuldaki öğrencilerinkilolarınedir?) CategoricalData(KategorikVeri) CinsiyetiIrk,Ürünkategorisivb. OrdianData(OrdinalVeri) Ordinalverilerdeyinekategorikveritüründendir.Fakatdeğerleriarasındasıralıbir ilişkibulunmaktadır.(Filmratingleri,Müşteriüründeğerlendirmelerivb.) ÖrnekSorular Tankı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şlayarakgrup genişliğikadarsayıilerleyerekbirgrupyapıyoruz.Buradakisayılarınverilerarasındaolma zorunluluğuyok.161-162-163-164-165gibi5taneveriyi161-165şeklindeyazıyoruz.Ohalde grupları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çerisinde olmalıdır.BuaralığındışındabulunandeğerlerOutlierdeğerlerdir.Outlierdeğerlersilinmezse doğ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ğerlerine göreişlemyapılır.Buyğzdenveriyidüzgünincelemekgerekmektedir. np.median(yaslar)