{"cells":[{"metadata":{"_uuid":"745db08fe40518afe819de478bda6560d53afb9f"},"cell_type":"markdown","source":"<p style=\"font-style:italic;\">**Yapacağınız yorumlar için şimdiden teşekkür ederim. Çalışmayı beğenirseniz oylamayı unutmayın ^___^! Sorulara elimden geldiği kadarıyla cevap vermeye çalışacağım. Çalışmada; sorulara ve geri bildirimlere göre düzeltme ve ekleme yapacağım.**\n\n**Yapacağınız yorumlar; çalışmanın daha iyi ve anlaşılır olmasını sağlayacaktır.**</p> "},{"metadata":{"_uuid":"e2add8092cb29c15b9a33834eab0bb1ac5e45c92"},"cell_type":"markdown","source":"# <a class=\"anchor\" id=\"0.\"></a>**İçindekiler**\n* [1. Çalışmanın Özeti](#1.)\n* [2. Gerekli Kütüphanelerin Dahil Edilmesi](#2.)\n* [3. Veri Setlerinin Yüklenmesi](#3.)\n* [4. Yardımcı Fonksiyon:show_missing_values()](#4.)\n* [5. Eksik Değerlerin Kontrolü](#5.)\n* [6. Yardımcı Fonksiyon: show_correlations()](#6.)\n* [7. Çıktı Değişkeni Olan 'signal' İle En Yüksek Korelasyona Sahip Özellikler](#7.)\n* [8. 'production' Özelliğiyle En Yüksek Korelasyona Sahip Özellikler](#8.)\n* [9. Yeni Özellikler Türetmek](#9.)\n* [10. 'signal' İle En Yüksek Korelasyona Sahip Türetilen Özellikler](#10.)\n* [11. Veri Setinden Bazı Özelliklerin Çıkarılması](#11.)\n* [12. Makine Öğrenmesi Modelleri İçin Veri Setlerinin Ayrıştırılması](#12.)\n* [13. Makine Öğrenmesi Modeli Eğitiliyor](#13.)\n* [14. Test Sonuçları Alınıyor ve Gönderi Hazırlanıyor](#14.)\n* [15. Modelin Kaydedilmesi ve  Yüklenmesi](#15.)\n\n<[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  |  [15.](#15.) >"},{"metadata":{"_uuid":"bc02246dde526af0bf451927b78767343353d13b"},"cell_type":"markdown","source":"# <a class=\"anchor\" id=\"1.\"></a>**1. Çalışmanın Özeti**\n<[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n\nBu çalışmada, varlığı bilinmeyen yüklü lepton bulamacı ihlalini bulmak için hazırlanan veri setinde sınıflandırma yapılmıştır. Çalışmanın özeti şöyledir:\n\n* Veri setinin yüklenmesi\n* Eksik bilgi kontrolü\n* Yeni özelliklerin türetilmesi\n* Karar ağacı tabanlı UGradientBoostingClassifier yöntemin kullanılması. (Karar ağacı tabanlı yöntem kullanıldığı için ölçeklendirme yapılmamıştır)\n\n"},{"metadata":{"_uuid":"ce74066d02400ac07c96fcedde3a25c9c5dcca95"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n <a class =\"anchor\" id=\"2.\"></a>\n # **2. Gerekli Kütüphanelerin Dahil Edilmesi**"},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"#Gerekli Kütüphaneleri Yüklenmesi Yapılıyor\n\nimport numpy as np # lineer cebir \nimport pandas as pd # veri işleme\n\n#Görselleştirme\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\n#Makine Öğrenmesi kütüphaneleri\nfrom sklearn.preprocessing import MinMaxScaler\nfrom hep_ml.gradientboosting import UGradientBoostingClassifier\nfrom hep_ml.losses import BinFlatnessLossFunction\n\n#Sistem \nimport os\nimport warnings\nwarnings.filterwarnings('ignore')\nprint(os.listdir(\"../input\"))","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"8e24aa3cb8dc30ed334747df0773f50eb1d7278f"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n# <a class=\"anchor\" id=\"3.\"></a>**3. Veri Setlerinin Yüklenmesi**"},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"train=pd.read_csv(\"../input/training.csv\")\ntest=pd.read_csv(\"../input/test.csv\")\n\nprint(\"train.shape:{} test.shape:{}\".format(train.shape, test.shape))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bfb623d1f1000bf035a210b8259b2b60401332e9"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"a79ef62472817434ef5f23b14249db802eec1305"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n# <a class=\"anchor\" id=\"4.\"></a>**4. Yardımcı Fonksiyon:show_missing_values()** "},{"metadata":{"trusted":true,"_uuid":"ec35963ce9dce6bcc83e8c2faa7f8b96b8300a74","_kg_hide-input":true},"cell_type":"code","source":"def show_missing_values(function_data):\n#Veri setindeki eksik değerleri bulalım\n    \n    \"\"\"\n    shape veri matrisinin satır ve sütün sayısını verir.\n    Satır sayısı shape[0]'da' ve sütün sayısı shape[1]'de tutulur\n    \"\"\"\n    number_of_sample=function_data.shape[0]\n    \n    \"\"\"\n    isnull() fonksiyonu, skaler veya dizi benzeri bir nesne alır ve\n    değerlerin eksik olup olmadığını gösterir.\n    \n    sum() fonksiyonu, istenen eksen için değerlerin toplamını hesaplar\n    \"\"\"    \n    check_isnull=function_data.isnull().sum()\n    \n    \"\"\"\n    null değer sayısı toplamı, sıfır olan özelliker(sütünlar) çıkartılıyor.\n    Kalan özellikler null değer sayısı çok olandan az olana doğru sıralanıyor.\n    \"\"\"\n    check_isnull=check_isnull[check_isnull!=0].sort_values(ascending=False)\n\n    #Eğer shape[0] 0 ise eksik değere sahip özellik yok demektir.\n    if check_isnull.shape[0]==0:\n        print(\"Veri setinde eksik bilgi yoktur\")\n        print(check_isnull)\n    else:\n        print(check_isnull)\n        f, ax = plt.subplots(figsize=(15, 6))\n        plt.xticks(rotation='90')\n        sns.barplot(x=check_isnull.index, y=check_isnull)\n        plt.title(\"Eksik veri içeren özellilere ait eksik veri sayısı\")","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"ad1a5cc27a9586c33e85a0f98983f7fcc8e15af1"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n# <a class=\"anchor\" id=\"5.\"></a>**5. Eksik Değerlerin Kontrolü** "},{"metadata":{"trusted":true,"_uuid":"6fd884d37672dbdef7073251b9a7ff2713b6b0c1"},"cell_type":"code","source":"#train veri seti için eksik bilgiler kontrol ediliyor. \nshow_missing_values(train)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"09454ad62c2152eed17dde6f768a7de8566c4a48"},"cell_type":"code","source":"#test veri seti için eksik bilgiler kontrol ediliyor. \nshow_missing_values(test)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"09421efa71e6ee17c28d361e38862f68a41aeb88"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n# <a class=\"anchor\" id=\"6.\"></a>**6. Yardımcı Fonksiyon:show_correlation()** "},{"metadata":{"trusted":true,"_uuid":"969ea045988cdcafe6ce863dbff63cbfedddd9ed","_kg_hide-input":true},"cell_type":"code","source":"def show_correlation(corr_data, corr_feature_name, n_most_correlated=12):\n    \"\"\"\n    corr_data: korelasyon matrisi\n    corr_feature_name: korelasyonu gösterilmek istenen özellik\n    n_most_correlated: en yüksek korelasyona sahip özelliklerden gösterileceklerin sayısı\n    \"\"\"\n    #abs() fonksiyonu negatif korelasyonları pozitif yapıyor\n    corr=corr_data.corr().abs()\n    most_correlated_feature=corr[corr_feature_name].sort_values(ascending=False)[:n_most_correlated].drop(corr_feature_name)\n    most_correlated_feature_name=most_correlated_feature.index.values\n    \n    f, ax = plt.subplots(figsize=(15, 6))\n    plt.xticks(rotation='90')\n    sns.barplot(y=most_correlated_feature_name, x=most_correlated_feature)\n    plt.title(\"{} ile en fazla korelasyona sahip özellikler\".format(corr_feature_name))","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"f68994c7a5290082e2803cff0945f4d4131b5956"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n# <a class=\"anchor\" id=\"7.\"></a>**7. Çıktı Değişkeni Olan 'signal' İle En Yüksek Korelasyona Sahip Özellikler** "},{"metadata":{"trusted":true,"_uuid":"a91f792752889264cf00831462c62641c278b3e9"},"cell_type":"code","source":"show_correlation(corr_data=train, n_most_correlated=12, corr_feature_name='signal')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"426c4d43d79ff890bb9c9219904cf88ba654f2b0"},"cell_type":"markdown","source":"signal ile en yüksek korelasyona sahip özellik 'production' özelliğidir. 'production' özelliği test veri setinde yoktur. Şimdi 'produciton' özelliği ile en çok korelasyona sahip özellikleri bulalım"},{"metadata":{"_uuid":"9b6160d1f4d46636bbc46ad0a59fd83236bb2748"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n# <a class=\"anchor\" id=\"8.\"></a>**8. 'production' İle En Yüksek Korelasyona Sahip Özellikler**"},{"metadata":{"trusted":true,"_uuid":"116d46473d0e1667c6a71c299b2d963948a00df9"},"cell_type":"code","source":"show_correlation(corr_data=train, n_most_correlated=12, corr_feature_name='production')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"8b8a7fd3030dde04d81c4a8e4b6b1ee3bb6497c5"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n# <a class=\"anchor\" id=\"9.\"></a>**9. Yeni Özellikler Türetmek**"},{"metadata":{"trusted":true,"_uuid":"3b7934408dc7a3e5628c35d5361f55f5ad0e1456","_kg_hide-input":true},"cell_type":"code","source":"def add_features(df):\n    # features used by https://www.kaggle.com/sionek/ugbc-gs\n    df['NEW_FD_SUMP']=df['FlightDistance']/(df['p0_p']+df['p1_p']+df['p2_p'])\n    df['NEW5_lt']=df['LifeTime']*(df['p0_IP']+df['p1_IP']+df['p2_IP'])/3\n    df['p_track_Chi2Dof_MAX'] = df.loc[:, ['p0_track_Chi2Dof', 'p1_track_Chi2Dof', 'p2_track_Chi2Dof']].max(axis=1)\n   \n    df['flight_dist_sig2'] = (df['FlightDistance']/df['FlightDistanceError'])**2\n    # features from phunter\n    df['flight_dist_sig'] = df['FlightDistance']/df['FlightDistanceError']\n    df['NEW_IP_dira'] = df['IP']*df['dira']\n    df['p0p2_ip_ratio']=df['IP']/df['IP_p0p2']\n    df['p1p2_ip_ratio']=df['IP']/df['IP_p1p2']\n    df['DCA_MAX'] = df.loc[:, ['DOCAone', 'DOCAtwo', 'DOCAthree']].max(axis=1)\n    df['iso_bdt_min'] = df.loc[:, ['p0_IsoBDT', 'p1_IsoBDT', 'p2_IsoBDT']].min(axis=1)\n    df['iso_min'] = df.loc[:, ['isolationa', 'isolationb', 'isolationc','isolationd', 'isolatione', 'isolationf']].min(axis=1)\n    # My:\n    # new combined features just to minimize their number;\n    # their physical sense doesn't matter\n    df['NEW_iso_abc'] = df['isolationa']*df['isolationb']*df['isolationc']\n    df['NEW_iso_def'] = df['isolationd']*df['isolatione']*df['isolationf']\n    df['NEW_pN_IP'] = df['p0_IP']+df['p1_IP']+df['p2_IP']\n    df['NEW_pN_p']  = df['p0_p']+df['p1_p']+df['p2_p']\n    df['NEW_IP_pNpN'] = df['IP_p0p2']*df['IP_p1p2']\n    df['NEW_pN_IPSig'] = df['p0_IPSig']+df['p1_IPSig']+df['p2_IPSig']\n    #My:\n    # \"super\" feature changing the result from 0.988641 to 0.991099\n    df['NEW_FD_LT']=df['FlightDistance']/df['LifeTime']\n    return df","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f0281b5292ed04b8fc71f2ab5a6ed7762e6b362d","_kg_hide-input":true},"cell_type":"code","source":"train_added = add_features(train)\ntest_added = add_features(test)\nprint(\"Yeni özellikler eklendi\")","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"c16da83daf2a66461ccde661637b9c9f3edbf996"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n# <a class=\"anchor\" id=\"10.\"></a>**10. 'signal' İle En Yüksek Korelasyona Sahip Türetilen Özellikler**\n\nTüretilen özellikler ve  'signal' değişkeni arasındaki  en yüksek korelasyona sahip özellikleri bulalım"},{"metadata":{"trusted":true,"_uuid":"cb8bdeb9e71b8346959c6d373d8c75c6d9435a23"},"cell_type":"code","source":"show_correlation(corr_data=train_added, n_most_correlated=12, corr_feature_name='signal')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"a70afa7d2169d63bbc57766f63e64adc756a8020"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n# <a class=\"anchor\" id=\"11.\"></a>**11. Veri Setinden Bazı Özelliklerin Çıkarılması** "},{"metadata":{"trusted":true,"_uuid":"bc77b11caf90b93428757ad508ffd41718493392","_kg_hide-input":true},"cell_type":"code","source":"\n# Veri setinden çıkartılacak özellikler\nfilter_out = ['id', 'min_ANNmuon', 'production', 'mass', 'signal',\n              'SPDhits','CDF1', 'CDF2', 'CDF3',\n              'isolationb', 'isolationc','p0_pt', 'p1_pt', 'p2_pt',\n              'p0_p', 'p1_p', 'p2_p', 'p0_eta', 'p1_eta', 'p2_eta',\n              'isolationa', 'isolationb', 'isolationc', 'isolationd', 'isolatione', 'isolationf',\n              'p0_IsoBDT', 'p1_IsoBDT', 'p2_IsoBDT',\n              'p0_IP', 'p1_IP', 'p2_IP',\n              'IP_p0p2', 'IP_p1p2',\n              'p0_track_Chi2Dof', 'p1_track_Chi2Dof', 'p2_track_Chi2Dof',\n              'p0_IPSig', 'p1_IPSig', 'p2_IPSig',\n              'DOCAone', 'DOCAtwo', 'DOCAthree']\n\n#filter_out.remove('production')\nfeatures = list(f for f in train_added.columns if f not in filter_out)\nprint(\"Kullanılacak Özellikler\")\nprint(features)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"71977b195adfe2c6379525fd160d902672eed8d2"},"cell_type":"code","source":"train_added[features].head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d537f99db484c4312284f88f0bf9e081d7acd2ec"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n# <a class=\"anchor\" id=\"12.\"></a>**12. Makine Öğrenmesi Modelleri İçin Veri Setlerinin Ayrıştırılması** "},{"metadata":{"trusted":true,"_uuid":"91067032db0c7243083f1df51a0a41086e4486cc"},"cell_type":"code","source":"X=train_added[features+['mass','production']]\ny=train['signal']","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"9b55db24cbb8aa19c195eb2bc5c4105cddc5c4f3"},"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nX_train, X_test, y_train, y_test=train_test_split(X,y, test_size=0.3)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"337e1954983b8b4df05f739420ff43dbc31fb76a"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n# <a class=\"anchor\" id=\"13.\"></a>**13. Makine Öğrenmesi Modeli Eğitiliyor**"},{"metadata":{"trusted":true,"_uuid":"20a174f603155a5810b7749cb81832dab9b258a6"},"cell_type":"code","source":"#UGradientBoostingClassifier eğitiliyor\nloss = BinFlatnessLossFunction(['mass'], n_bins=15, uniform_label=0 , fl_coefficient=15, power=2)\nugbc = UGradientBoostingClassifier(loss=loss, n_estimators=550,\n                                 max_depth=6,\n                                 learning_rate=0.15,\n                                 train_features=features,\n                                 subsample=0.7,\n                                 random_state=123)\nprint(\"Model eğitiliyor...\")\nugbc.fit(X_train, y_train)\nprint(\"Model eğitildi\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"03d813e909946abd371339782bdc7d8e4d37f933"},"cell_type":"code","source":"y_pred=ugbc.predict(X_test)\nprint(\"Tahmin yapıldı\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"02f9d9c110c88160073f4d012fe2063d35f0687f"},"cell_type":"code","source":"from sklearn import metrics","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"19a5a2300b0cbcb07574cae12e0833047537c444"},"cell_type":"code","source":"print(\"Başarı oranı:\\n\",metrics.accuracy_score(y_test, y_pred))\nprint(\"Karışıklık Matrisi:\\n\",metrics.confusion_matrix(y_test, y_pred))\nprint(\"Sınıflandırma Raporu:\\n\",metrics.classification_report(y_test, y_pred))","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"b35d9b74655eb3ecca925284ae121c4a6bdb674c"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n# <a class=\"anchor\" id=\"14.\"></a>**14. Test Sonuçları Alınıyor ve Gönderi Hazırlanıyor** "},{"metadata":{"trusted":true,"_uuid":"053aaad30198620835ba5d24062bffc230be1185","collapsed":true},"cell_type":"code","source":"#minMaxScaler.fit(test_added[features])\n\n\nprint ('----------------------------------------------')\nprint(\"Test veri seti üzerinde tahmin yapalıyor\")\n#yarışma sonlandığı için bu kısma gerek kalmadı. test verileri üzerinde 0.998195 sonuç vermiştir.\n#X_test=test_added[features]\n#test_probs = ugbc.predict_proba(X_test)[:,1]\n#submission = pd.DataFrame({\"id\": test[\"id\"], \"prediction\": test_probs})\n#submission.to_csv(\"sumbision_MinMax_mass_production.csv\", index=False)\nprint('Tahmin yapıldı')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d6b928eab488d539f8a5aaf653fe0fa094472cd9"},"cell_type":"markdown","source":" <[İçindekiler Menüsüne Git](#0.)| Hızlı Erişim: [1. ](#1.)  |  [2. ](#2.)  |  [3.](#3.)  | [4.](#4.)  |  [5.](#5.)  |  [6.](#6.)  |  [7.](#7.)  |  [8.](#8.)  |  [9.](#9.)  |  [10.](#10.)  |  [11.](#11.)  |  [12.](#12.)  |  [13.](#13.)  |  [14.](#14.)  >\n \n# <a class=\"anchor\" id=\"15.\"></a>**15. Modelin Kaydedilmesi ve  Yüklenmesi** \n\nEğitilen makine öğrenmesi modelinin, eğtilmeden tekrar kullanılabilmesi için serileştirmesi(serialization veya marshalling) gerekir. Serileştirme, veri depolama bağlamında veri yapısının veya nesnenin tekrar kullanımı için dosya haline dönüştürülmesi işlemidir. Makine öğrenmesi modelinin daha sonra yüklenip kullanılabilmesi için serileştirme işlemine tabi tutulması gerekir.\n\nPython, veri yapılarının veya nesnelerin serileştirilmesi için Pickle(turşu) kütüphanesine sahiptir. Pickle kullanılarak eğitilen makine öğrenmesi modeli dosya olarak kaydedilebilir ve daha sonra ihtiyaç olduğunda yeniden yüklebilir. Serileştirilmiş dosyanı yeniden yüklenmesi işlemi eski haline dönüştürme(deserialization) olarak adlandırılır. "},{"metadata":{"trusted":true,"_uuid":"2fe4331e63d1eb0d78a71891cede0a5d87ac8215"},"cell_type":"code","source":"import pickle","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a1457b40f0c9a9cb89455ce841d5a28ebeb8afd5"},"cell_type":"code","source":"file_name=\"ml_model.sav\"\npickle.dump(ugbc, open(file_name, \"wb\"))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0ae1aef745d933e7fd458f2d953908476787d92b"},"cell_type":"code","source":"print(os.listdir(\"../working\"))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"11d42f75a555edb198e3594b4279bae78813df0a"},"cell_type":"code","source":"loaded_model=pickle.load(open(\"../working/ml_model.sav\",'rb'))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4311bd77708a1776336d405a64f8d9606905abef"},"cell_type":"code","source":"y_pred=loaded_model.predict(X_test)\nprint(\"Tahmin yapıldı\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"06762be751f7952d63a804e8b68c04c5b29aa88f"},"cell_type":"code","source":"print(\"Başarı oranı:\\n\",metrics.accuracy_score(y_test, y_pred))\nprint(\"Karışıklık Matrisi:\\n\",metrics.confusion_matrix(y_test, y_pred))\nprint(\"Sınıflandırma Raporu:\\n\",metrics.classification_report(y_test, y_pred))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"18ff119fb7fe2cc8a1910dfef1561a0dcd608d84"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}