Veri Madenciliği 3 – Veri Hazırlama Bölüm 1

Neden veriyi hazırlıyoruz?

Bütün veri madenciliği araçları için biraz veri hazırlama işlemi yapmak gerekir. Buradaki ana amaç veri setlerinin bilgi içeriklerinin veri madenciliği araçları tarafından en iyi şekilde analiz edilmesini sağlamak için veriyi bir takım dönüşüm işlemlerinden geçirmektir. Veri hazırlama işlemi yapıldıktan sonra hatalı tahmin oranlarının hazırlanma işleminden öncekine oranla düşmüş (ya da en kötü aynı oranda kalmış) olması gerekir.

Veri hazırlığı aynı zamanda veri madenciliği yapan kişiyi de daha iyi ve daha hızlı modeller üretebilmesi için hazırlar. GIGO (Garbage In Garbage Out) konseptini hatırlayacak olursak verimli modeller üretebilmenin ön koşulu iyi bir veriye sahip olmaktır.

Verinin kullanılan yazılım aracına uygun şekilde formatlanması gerekir. Ayrıca kullanılan metoda göre elinizin altında yeterli miktarda veri bulunmalıdır. Teoride her şey çok mükemmelmiş gibi gözükse de pratikte veri ne yazık ki son derece kirli olarak karşımıza çıkıyor:

Eksik (incomplete) Veri: Pratikte eksik veriyle çok sık karşılaşıyoruz. Bazı değişkenlerin ve/veya değerlerin eksik olması, ihtiyaç duyulan değerlerin bulunmaması, veya spesifik değil de toplam değerlerin bulunması eksik veriye örnek olarak verilebilir. Örneğin,
occupation = “”

Gürültülü (noisy) Veri: Gene aynı şekilde pratikte karşılaşılan veriler çok fazla gürültü içeriyor. Hatalı veya aykırı (outlier) veriler gürültülere birer örnek olarak verilebilir. Örneğin,
Salary=”-10″,
Age=”222″

Tutarsız (inconsistent) Veri: Veri içerisindeki tutarsızlıklara da çok sık rastlıyoruz. Kodlamada ya da isimlendirmede birbirleriyle uyuşmayan veriler buna örnek olarak verilebilir. Örneğin,
Age=”42, Birthday=”03/07/1997″
Eskiden “1,2,3” olarak yapılan değerlendirmenin artık “A,B,C” olarak yapılması
Kayıtların kopyalarının aslıyla uyuşmaması

Veri Hazırlığındaki Ana İşler

Veri Temizleme (data cleaning): Eksik değerleri doldurma; gürültülü, kirli ve pürüzlü veriyi pürüzsüz hale getirme(yumuşartma: smoothing); aykırı gözlemleri belirleme veya ayıklama ve tutarsızlıkları giderme işlemleridir.
Veri Entegrasyonu (data integration): Birden fazla veritabanının, veri küpünün (data cube), tablonun veya dosyanın entegrasyonu işlemidir.
Veri Dönüşümü (data transformation): Normalizasyon ve yığınlama (aggregation) işlemleridir. Bu aşamada veri standart hale getirilmeye çalışılır.
Veri Azaltma (data reduction): Veriyi orijinal halini temsil edecek ve aynı veya benzer analitik sonuçları üretecek şekilde hacimsel olarak küçültme, azaltma işlemleridir. Azaltılan veri, normal veriyi temsil etme özelliğini korumalıdır.
Veri Ayrıştırma (data discretization): Veri azaltma (data reduction) işleminin bir parçasıdır ve özellikle numerik verilerde dikkatle uygulanmalıdır.

Bilgi Keşfi Süreci’nin bir parçası olarak Veri Hazırlığı

Aşağıdaki şekildeki Selection, Preprocessing ve Transformation adımları veri hazırlığının aşamalarıdır. Görebileceğiniz üzere veri hazırlığı bütün bilgi keşfi sürecin büyük bir kısmını oluşturur. Yani bu aşama veriyi temizleme, entegre etme, seçme ve dönüştürme işlemlerinden oluşur.

Knowledge Discovery Process

CRISP – DM (Cross Industry Standard Process for Data Mining)

CRISP – DM kapsamlı bir veri madenciliği metodolojisi ve süreç modelidir ve yeni başlayanından uzmanına kadar her kişi için veri madenciliği projesi yürütme işinde tam bir yol haritası görevi görür. Bu model işin anlaşılmasıyla başlar. Hedefin ne olduğunu, iş ihtiyacının ne olduğunu ve neyi bulmaya çalıştığımızı bu aşamada netleştirmeliyiz. Daha sonra süreç bu iş için gerekli verilerin toplanıp kavranmasıyla devam eder.  Bu iki aşama birbirini geri bildirimli olarak çalışır. Daha sonra kavranan veri, hazırlanma aşamasına geçirilir. Hazırlanan veri de modellemede kullanılır; dolayısıyla bu iki aşama da birbirlerini besleyecek ve geliştirecek şekilde geri bildirimli çalışır. Modelleme tamamlandığında değerlendirme aşamasına geçilir ve bu aşamada da yapılan modelin istatistiksel olarak ne kadar geçerli olduğu, doğru sonuçlar üretip üretmediği ve iş ihtiyacını ne kadar karşılayıp karşılamadığı ölçülür. Geçerliliği kanıtlanan modellerde konuşlandırma aşamasına aktarılır ve analizler için kullanılabilir hale getirilir.

2779128

Cross Industry Standard Process for Data Mining

CRISP-DM’in Aşamaları ve Görevleri

Aşağıdaki görselde CRISP-DM’in aşamalarını ve bu aşamaların içerdiği görevleri görebilirsiniz. Bu yazının konusu olan veri hazırlama işlemi aşağıdaki şekilde Veriyi Anlama ve Veri Hazırlığı aşamalarını kapsar. Bu aşamaların görevlerini incelerseniz hepsinin veriyi hazırlamaya yönelik olduğunu görebilirsiniz.

2779091

CRISP – DM: Veriyi Anlama0a

Veriyi anlama aşaması veri toplama işlemiyle başlar ve veriye aşina olma, veri kalitesi problemlerini belirleme, veriden ilk iç görüleri çıkartma veya ilginç alt setleri belirleyip gizli bilgilerin keşfi için hipotez oluşturma işlemleriyle devam eder. Bu aşamada eldeki ilk verideki ilginç bilgilerin neredeyse %80’i SQL kullanılarak keşfedilebilir. SQL ile keşfedilen bu ilginç bilgiler hipotezler oluşturmamıza ve bunlardan modeller oluşturup veri madenciliği yapmamıza temel oluşturabilir. Bu aşamadaki her bir adımın açıklaması ve içeriği şu şekildedir:

Veriyi Topla: Elde edilen veri setlerini listeleme (lokasyon, elde etmek için kullanılan metod, karşılaşılan problemler ve ulaşılan çözümler)
Veriyi Açıkla: Toplanan verilerin yüzeysel olarak özelliklerinin incelenmesi ve sonuçların raporlanması, elde edilen verinin formatını, türünü, miktarını (örneğin bir tablodaki satır veya kayıt sayısı), değişken adlarını(tablodaki sütunları), ve diğer yüzeysel özelliklerini keşfetme; elde edilen verinin gereklilikleri sağlayıp sağlamadığının değerlendirilmesi

Veriyi Keşfet: lginç Sorgulama, görselleştirme ve raporlama tekniklerini kullanarak veri madenciliği sorularını çözümleme sürecidir. Bu süreç korelasyonları belirleme, her bir değişkenin ve değerlerinin iş terimi olarak anlamlarının anlaşılması, her bir değişken için temel istatistiklerin (örneğin dağılım, ortalama, maksimum, minimum, standart sapma, varyans, ortanca değer, eğiklik (skewness)) hesaplanması, değişkenlerin özelliklerinin detaylıca incelenmesi; dağılım, ikili veya daha fazla değişken arasındaki ilişkiler, önemli alt popülasyonların özellikleri, basit istatistiksel analizler
Veri Kalitesini Doğrula: Özel değerlerin belirlenmesi ve anlamlarının kataloglanması, gerekli olan bütün verileri içeriyor mu? Hata var mı, varsa yüzde kaç?, eksik değişkenlerin ve boş alanların belirlenmesi, eksik verinin anlamı, değişkenlerin anlamlarıyla almış olduğu değerler birbirleriyle örtüşüyor mu? değerlerin yazım kontrolünün yapılması (aynı değerin bazen küçük harfle bazen de büyük harfle başlaması), değerlerin akla yatkınlığının denetlenmesi

CRISP – DM: Veriyi Hazırlama0b

Bu aşama toplanan ilk veriden final veri setini (daha sonradan oluşturacağımız modelleri bu final veri seti besleyecektir) oluşturmak için gereken bütün aktiviteleri kapsar. Bu aktiviteler büyük olasılıkla birçok kez tekrarlanacak ve tekrarlanma biçimleri tamamen probleme özgü olacaktır. Tablo, kayıt ve değişken (veya kolon veya attribute) seçimi ve modelleme araçları için bu verilerin dönüştürülmesi ve temizlenmesi işlemleri aktivitelere örnek olarak verilebilir. Bu aşamadaki her bir adımın açıklaması ve içeriği şu şekildedir:

Veri Seç: Veri seçimi kriterlerinin yeniden gözden geçirilmesi, hangi veri setlerinin kullanılacağına karar verme, ihtiyaç duyulan ek verilerin toplanması (kurum içi ya da kurum dışı), örnekleme tekniklerini kullanmayı gözden geçirme, neden bazı verilerin eklenip bazılarının dışarıda bırakıldığını açıklama
Veriyi Temizle: Gürültüyü düzeltme, silme veya görmezden gelme, özel değerlerle ve anlamlarıyla nasıl ilgilenilmesi gerektiğini kararlaştırma (örneğin medeni durum için 99 değeri), gruplama seviyesi, eksik değerler, aykırı gözlemlerin tespiti
Veriyi İnşa Et: Türetilmiş değişkenler (derived attributes: bu değişkenler mevcut olarak bulunan bir veya daha fazla değişken kullanılarak oluşturulan değişkenlerdir, örneğin area = length * width ), eksik değerlerin nasıl inşaa edileceğini veya nasıl bir yaklaşık değer verileceğini belirleme
Veriyi Entegre Et: Kaynakları entegre etme ve sonuçları depolama (yeni tablolar ve kayıtlar vs), birbirleriyle ilişkili iki veya daha fazla tablonun birleştirilmesi
Veriyi Formatla: Değişkenleri yeniden düzenlemek (bazı araçların değişken sıralamasında bazı şartları vardır, mesela ilk değişkenin birincil anahtar (primary key) olması veya son değişkenin tahmin edilmeye çalışılan değişken olması gibi)

Ölçüm (measurement) Türlerini Hatırlayalım

İstatistikte bazı ölçüm türlerini hatırlamamızda fayda var.

Nitel Ölçümler
Bu ölçümlerin sayısal bir değeri yoktur; bu değişkenlerle sayısal bir hesaplama yapılmaz.

Nominal Ölçüm: ID numaraları, insanların isimleri vb.
Kategorik Ölçüm: Göz rengi, posta kodu vb.
Sıralı(ordinal) Ölçüm: sıralamalar (örneğin bir yiyeceğin lezzetinin 1 ile 10 arasında derecelendirilmesi), rütbeler, puanlar, uzunluk (kısa, orta, uzun)

Nicel Ölçümler
Bu ölçümler sayısal ölçümlerdir ve bu ölçümlerle matematiksel işlemler yapılır. Ayrık ve sürekli olmak üzere iki çeşidi olduğunu bir önceki yazıda görmüştür.

Aralıklı(interval) Ölçüm: tarih aralıkları, sıcaklık aralıkları, IQ puanları vb.
Oran(ratio) Ölçümü: Sıcaklık, uzunluk, zaman, vb.

2779500

Veri Dönüşümü

Bazı veri madenciliği araçlar nominal değerlerle işlem yapabilir; fakat bazı araçlar da tüm alanların numerik olmasını gerektirebilir. Sıralı değerlerde matematiksel işlemler ve/veya karşılaştırmalar (küyüktür, küçüktür gibi) yapabilmek için bu değerleri numerik verilere dönüştürmek gerekiyor. Örneğin üniversite yıl sonu ağırlıklı puanı (GPA) şu şekilde numerik verilere dönüştürülür:

A+  –> 4.0
A-   –> 3.7
B+  –> 3.3
B     –> 3.0

Bu sayede kategorik puanlar numerik değerlere dönüştürüldüğünden matematiksel işlemler yapılabilir.

.

Sürekli Değişkenleri (Continuous Variable) Kesikli Hale Getirme(Ayrıklaştırma: Discretization)

Ayrıklaştırma veya ingilizce adıyla discretization(veya binning) numerik verilerin kategorik karşılıklarına dönüştürülmesi işlemine verilen addır. Örneğin Age değişkeninin değerlerini 20-39, 40-59 ve 60-79 gibi aralıklara gruplama işlemi buna bir örnek olarak verilebilir. Numerik değişkenler genellikle sıklık dağılımlarına göre ayrıklaştırılır. Ayrıca bu işlem verideki gürültüyü ve doğrusalsızlığı (non-linearity) azaltarak tahminleme modelinin kesinliliğini artırabilir. Ve şunu da söylemeden geçmeyelim: bu yöntem aykırı gözlemlerin tespitini, geçersiz veya eksik numerik değerlerin tespitini kolaylaştırır.

Bazı veri madenciliği algoritmaları, örneğin Naive Bayes ve CHAID’ın çoğu versiyonu, ayrık değerler gerektirir. Ayrıca bu işlem sonucunda veri boyutu önemli ölçüde azalabilir ve bu sayede veri sonraki analizler için hazırlanmış olur. Bu yöntem eldeki verinin özetini oluşturmak için son derece kullanışlı ve yararlı bir yöntemdir. İngilizcesi “discretization” dır ve aynı zamanda “binning” olarak da adlandırılır. “Binning” kelimesi Türkçeye “veri gruplama” olarak çevrilebilir.

Discretization veya Binning iki türde olabilir: gözetlenmeyen(unsupervised) veya gözetlenen(supervised)

Gözetlenmeyen(unsupervised) Ayrıklaştırma

Bu yöntem numerik değişkenleri kategorik karşılıklarına gönüştürür fakat bunu yaparken hedef sınıfın (target class) bilgilerini kullanmaz. Eşit genişlikte gruplama ve eşit derinlikte gruplama gözetlenmeyen ayrıklaştırmanın iki metodudur.

Eşit Genişlikte Gruplama (Equal-width Binning)

Bu gruplama yönteminde sürekli bir değişken eşit genişlikteki N aralığa bölünür. Eğer bir değişkenin aldığı en küçük değer ve en büyük değer sırasıyla A ve B ise ve N aralığa bölünmek isteniyorsa genişlik şu formülle hesaplanır: W = (B-A) / N

0d

Eşit genişlikte gruplama yöntemi bazı avantajlara ve dezavantajlara sahip. Uygulanması son derece basit ve kolaydır. Verinin mantıklı bir soyutlamasını oluşturur. Fakat diğer yandan denetlenmeyen (unsupervised) bir yöntem olması, N sayısının ne kadar olması gerektiğinin tam olarak bilinememesi ve aykırı gözlemlere son derece hassas olması dezavantajlarıdır. Örneğin aşağıdaki örnekte bir şirketteki çalışanların maaşlarının bu yöntemle aralıklara bölünmesiyle elde edilen sonucu görebilirsiniz. Bu sonuçta 1,800,000-2,000,000 aralığında bir aykırı gözlem vardır ve maaşların çoğu 0-200,000 aralığında olduğundan pek yararlı bir yöntem olmamıştır.

0e

Eşit Derinlikte(ya da Yükseklikte) Gruplama (Equal-depth Binning)

Bu yöntemde değerler yaklaşık olarak eşit sayıda eleman içeren N aralığa bölünür. Kümelenmeyi önlediği için ve pratikte “neredeyse eşit” yükseklikte gruplama daha sezgisel kesim noktaları verdiğinden özellikle tercih edilir.

Bu yöntemde dikkat edilmesi gereken hususlar:

  • Sık değerleri farklı haznelere (bölmelere) dağıtmayın
  • Özel değerler için ayrı bölmelere oluşturun
  • Okunabilir kesim noktaları belirleyin (örneğin yuvarlanmış sayılar)

Örneğin elimizde sıcaklık verileri olsun:
64 65 68 69 70 71 72 72 75 75 80 81 83 85

Bu verileri eşit derinlikte gruplama yöntemi kullanarak grupladığımızda aşağıdaki sonucu elde ederiz:

0f

Burada eşit yükseklikler 4 olup son grup için değer 2 olmuştur. Aralıkların bir önceki yöntemde olduğu gibi eşit genişlikte olmak zorunda olmadığını belirtelim.

Gözetlenen (Supervised) Ayrıklaştırma

Bu ayrıştırma yöntemi numerik verileri kategorik karşılıklarına dönüştürür ve ayrım noktalarını seçerken hedef sınıfın (target class) bilgisini kullanır. Entropi temelli ayrıştırma bu yöntemin bir örneğidir.

Entropi Temelli Ayrıklaştırma (Entropy Based Discretization)

Entropi kelime anlamı olarak “düzensizlik”, “karışıklık”(impurity) demektir. Bu metot bölme yaklaşımını kullanır. Entropi ( veya bilgi içeriği) sınıf etiketlerine dayanarak hesaplanır. Sezgisel olarak, her bir grubun mümkün olduğunda saf(pure) olabilmesi, yani her bir gruptaki değerlerin aynı sınıf etiketine karşılık gelmesi için, en iyi ayrım noktalarını bulmaya çalışır. Maksimum bilgi kazanımı (information gain) getiren ayrımları bulmakla karakterize edilir.

Entropi hesaplamanın formülü şu şekildedir:

Entropi

Evet, yanlış görmediniz. Entropi hem H ile hem de E ile ifade edilebiliyor.

Entropi ingilizce olarak “impurity” demektir; yani Türkçeye kirlilik ve katışıklık olarak çevirebiliriz. Ancak buradaki kirlilik şu anlama gelmektedir: bir grup içerisinde farklı özelliklere sahip çok fazla veri bulunması, çeşitlilik. Aşağıdaki görselde de görebileceğiniz üzere fazla kirli ve katışık grupların entropisi yüksektir; sıfır kirlilik ve katışıklığa sahip grupların entropisi sıfırdır.

0h4

Entropi hesaplanırken önce tahminlenmeye çalışılan hedef değer için entropi hesaplanır. Daha sonra belirli ayrım noktaları için entropi değeri hesaplanır. En son olarak da bilgi kazanımı (information gain) hesaplanarak en iyi ayrım noktası belirlenir. Şimdi bütün bu adımları bir örnekte açıklayalım.

0gYandaki gibi bir veri setimizin olduğunu düşünelim. Bir sporu yapmanın fahrenayt cinsinden hava sıcaklığına bağlı olarak nasıl değiştiğini belirlemek istiyoruz. Bize en iyi ayrımı veren, yani bir insanın bu söz konusu sporu yapıp yapmayacağını en iyi tahminleyebilen, hava sıcaklığı değeri nedir? Bu sorunun cevabını entropi yöntemini kullanarak hesaplayalım.

İlk adım olarak tahminlemek istediğimiz değişkenin, yani sporu yapıp yapmadığının, entropisini hesaplayalım. Bu veri setinde bu sporu yapan ve yapmayan insanların sayısı aşağıdaki gibidir.

Yes = 9, No = 5

Toplam olarak 14 değer vardır. Entropiyi hesaplarken bu değerlerin yüzdelerine ihtiyacımız var. Y için yüzde değer 9/14 = 0.64 iken N için yüzde değer 5/14 = 0.36’dır.

E (Play) = E(9, 5) = E(0.64, 0.36) = -0.64 x log2(0.64) – 0.36 x log2(0.36) = 0.942

Bu bulduğumuz değer hedef değerin entropisidir. Şimdi bu veri setini diyelim ki 71.5 ve 77 dereceleri için ikiye bölmek istiyoruz. Hangisi daha fazla bilgi kazanımı sağlıyor? Hemen hesaplayalım.

Verimizi 71.5 ayrım noktasıyla ikiye ayıralım. Bu değere eşit bir değer olmadığından bütün değerler ya bundan küçüktür ya da bundan büyüktür. Aşağıdaki tabloda bu değerden küçük ve bu değerden büyük için söz konusu sporu yapma sayılarını görebilirsiniz.

0g1

Bu ayrım noktası için entropiyi şu şekilde hesaplarız:

0h

Bir de farklı bir değer için, mesela 77, entropi hesaplaması yapalım.

0g2

0h1

Şimdi her iki değer için de bilgi kazanımını hespalayalım:

Information Gain = E(S) – E(S,A)

 71.5 için kazanç = 0.942 – 0.939 = 0.003

77 için kazanç     = 0.942 – 0.915  = 0.027

Yukarıdaki hesaplamaya göre veriyi 77 ayrım noktasından ikiye bölersek 71.5 ayrım noktasından ikiye bölmeye kıyasla 9 kat daha fazla bilgi kazanımı sağlarız. Dolayısıyla veriyi 77 den ikiye bölmek daha karlıdır.

Hedeflemek istediğimiz veri setinin entropisini (0.942) hesaplamadan da en iyi ayrımı bulabilirdik; çünkü her bir ayrım noktası için hesapladığımız entropiyi her seferinde sabit bir değer olan 0.942’den çıkartarak bilgi kazanımını bulduğumuz için en küçük entropiye sahip olan ayrım noktası bilgi kazanımını maksimize edecektir. Bu örnekte de 0.915, 0.939’dan daha küçük olduğundan bilgi kazanımını daha çok arttırır.

Entropi metodu mümkün olan bütün ayrımlar için entropi hesaplanması ve bulunan değerlerden en küçüğünün seçilmesine dayanır. 

Bu ayrıklaştırma yönteminin belirli bir durma noktası(kriteri) olması gerekir. En yaygın durma kriteri Minimum Description Length Principle(MDLP) olarak adlandırılan prensibe dayanan bir durma kriteridir. Bu prensip Karar Ağacı ve Naive Bayes algoritmaları için başarılı ayrım noktaları üretmesine rağmen diğer yöntemler için aynı başarıyı gösteremiyor. MDLP’den kısaca şu şekilde bahsedebiliriz:

S: veri setini, A: değişkeni, T: ayrım noktasını gösteriyor olsun. Bu S veri setinin A değişkeni için T ayrım noktasının entropisinin  E (A,T;S) olarak hesaplanacağını yukarıda görmüştük. Bir A değişkeni için, MDLP metodu bütün ayrım olasılıkları içerisinden minimum entropiyi üreten ayrım noktası olan T(a)’yı bulur. Daha sonra bu veri setinin A değişkenini T(a) noktasından ikiye böler ve her bir parça için tekrar bütün ayrım olasılıklarını hesaplayıp içlerinden minimum entropiyi üreten ayrım noktasını bulur. Bunu veriyi sürekli bulduğu ayrım noktasından ikiye bölerek yapar ta ki aşağıdaki koşul sağlanana kadar:

0h3

Bu koşulda N sayısı S’in içindeki veri sayısı, Gain(A; T ; S) = Ent(S) – E(A; T ; S), (A; T ; S) = log2(3^k – 2) – [kEnt(S) – k1Ent(S1) – k2Ent(S2)] ve k,k1 ve k2 S,S1 ve S2’de temsil edilen sınıf sayısıdır.

Bu konuda daha ayrıntılı bilgi için: http://www.cse.yorku.ca/~aan/research/paper/pakdd99.pdf

Ayrıklaştırmada Dikkat Edilmesi Gereken Konular

Gözetlenmeyen yöntemler

Eşit Genişlik yöntemi çok daha kolaydır ve birçok sınıf için uygundur. Eşit olmayan dağılımlar için korkunç derecede hatalı sonuçlar üretebilir.

Eşit Derinlik (yükseklik) yöntemi daha iyi ve kaliteli sonuçlar verir.

Gözetlenen yöntemler

Bu yöntemler sınıflandırma (classification) için çok daha iyi ve uygundur.

Kaynaklar:

  • ‘Data preparation for data mining’, Dorian Pyle, 1999
  •  ‘Data Mining: Concepts and Techniques’, Jiawei Han and Micheline Kamber, 2000
  • http://www.the-modeling-agency.com/crisp-dm.pdf
  •  ‘Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations’, Ian H. Witten and Eibe Frank, 1999
  •  ‘Data Mining: Practical Machine Learning Tools and Techniques second edition’, Ian H. Witten and Eibe Frank, 2005

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s