Python ile Lineer Regresyon

MACHINE LEARNING

Machine Learning nedir?

Dünyada text, resim, müzik, video gibi pek çok veri  bulunmaktadır. Bu veriler günden güne artmaktadır. Günlük 2.5 Kentirilyon byte veri üretilmektedir. Bu verilerin bir şekilde anlamlandırılması gerekmektedir. Bu anlamlandırmayı matematiksel ve istatistiksel olarak insanlar yapabilir ancak insanların bir ömür boyu yapabileceği işlemleri  bir makine saniyeler içerisinde yapabilir. Bu nedenle veri anlandırmak için makineler kullanılır. Makineler bu işlemler için belirli algoritmaları kullanılır, bunlara machine learning algoritmaları denir.

Tıpkı insan hayatındaki gibi nasıl bebeklikten başlıyor ve ölene kadar öğrenmeya devam ediyorsak machine learning’te aynı şekilde algoritmaları kullanarak belli görevleri öğrenebilmektedir. Bunu iki şekilde yapar : Supervised ve Unsupervised.

Supervised Learning : Elimizde iki resim olsun biri araba bir bisiklet. Biz makinenin resmi görüp hangi canlı olduğunu söylemesini istiyoruz. Bunu için elimizde bir veri seti olmalı. Bu veri setinde  hangi  özelliklerin arabaya hangisinin bisiklete ait olduğu belli olmalıdır. Yani araba ve bisiklet etiketi veri seti içinde bulunur. Öğrenmek istediğimiz cevap veri setininin içinde bulunur.

Unsupervised Learning : Etiketi belli olmayan bilgilerin olduğu veri setlerinden öğrenme işleminin yapılması. Verileri gruplanarak yeni veriyi en uygun gruba atamaya çalışır.

Machine Learning Algoritmaları :

1. Supervised Learning:

   1.1. Regresyon

       1.1.1. Linear Learning

       1.1.2. Multiple Linear Learning

       1.1.3. Polynomial Linear Learning

       1.1.4. Decision  Tree Regresyon

       1.1.5. Random Forest Regresyon

      1.1.6. Evaluation Regresyon

  1.2. Classification

      1.2.1. Logistic Regresyon

      1.2.2. K-Neirest Neigbour(KNN)

      1.2.3. Support Vector Machine(SVM)

      1.2.4. Naive Bayes

      1.2.5. Decision Tree

      1.2.6. Random Forest

      1.2.7. Evaluation Classification Models

2.Unsupervised Learning :

    2.1. Clusterig

        2.1.1. K-Means

        2.1.2. Hierarchial Clustering

   2.2. Naturel Learning Process(NLP)

   2.3. Principle Component Analysis(PCA)

   2.4. Model Selection

       2.4.1. K-Fold Cross Validation

       2.4.2. Grid Search

 2.5. Recommendation Systems

1. Supervised Learning:

1.1. Regresyon : iki veya daha fazla değişken arasındaki ilişkiye denir. Bu ilişkinin düzeyini, kapsamını ölçme işine de regresyon analizi denir.

1.1.2.Linear Regresyon : Amaç neden ve sonuç arasında lineer ilişki olup olmadığını belirlemektir. Algoritmaları python üzerinden kodlamalarla inceleyeceğiz. Matematiksel mantığına bakarsak :

Gerçek değerden tahmin edilen değerinin farkının karesinin alınmasının nedeni hatayı kaybetmemek çünkü eksi ve artı değerler toplanınca birbirlerini götürecekler.

Amaç mean squared error değerini küçük tutmak. Ne kadar küçük olursa o kadar uygun bir line fit edilmiş olur.

Python ile linear regresyon :

Elimizde deneyim ve maaş bilgisinin tutulduğu bir veri setimiz olsun.

import pandas as pd
#Oluşturduğumuz exceli import ettikten sonra data frame'e çeviriyoruz.
df = pd.DataFrame(LinearRegressionDatasetcsv,columns=["deneyim","maas"])
#dataframe'i görselleştirelim.
import matplotlib.pyplot as plt
plt.scatter(df.deneyim,df.maas)
plt.xlabel('Deneyim')
plt.ylabel('Maas')
plt.show()
#linear regresyon 
from sklearn.linear_model import LinearRegression
linear_reg = LinearRegression()
x = df.deneyim.values.reshape(-1,1)
y = df.maas.values.reshape(-1,1)

# x değerlerini fit ediyoruz, modeli öğretiyoruz
linear_reg.fit(x,y)
#öğrendiği değerlerden tahmin yaptırmak için :
b0 = linear_reg.predict(x)
#x = o olduğunda y'nin alacağı değere bakalım :
b0 = linear_reg.predict([[0]])
print("b0",b0)
#sonuc = 1663.89519747

#coefficient yani eğim  değerini bulalım 
b1 = linear_reg.coef_
print("b1 :",b1)
#sonuc = 1138.34819698

#11 yıllık deneyimi olan birinin maasını bulalım
#bulunan değerleri yerine koyalım
maas_yeni = 1663 + 1138*11
print("maas_yeni : ",maas_yeni)
#sonuc = 14181
#method ile bulalım :
linear_reg.predict([[11]])
#sonuc = 14185.72536421

Yorum bırakın