Python Eğitimi

Python ANA SAYFA Python Tanıtımı Python Başlarken Python Sözdizimi Python Yorumları Python Değişkenleri Python Veri Türleri Python Numaraları Python Döküm Python Dizeleri Python Boole'leri Python Operatörleri Python Listeleri piton demetleri Python Setleri Python Sözlükleri Python Eğer... Başka Python while Döngüleri Döngüler için Python Python Fonksiyonları piton lambda Python Dizileri Python Sınıfları/Nesneleri Python Kalıtımı Python Yineleyiciler Python Kapsamı Python Modülleri Python Tarihleri Python Matematik Python JSON'u Python Normal İfade Python PIP'si Python Deneyin... Hariç Python Kullanıcı Girişi Python Dize Biçimlendirme

Dosya yönetimi

Python Dosya İşleme Python Okuma Dosyaları Python Dosyaları Yazma/Oluşturma Python Dosyaları Sil

Python Modülleri

NumPy Eğitimi Panda İzlenecek Yol Scipy Eğitimi

Python Matplotlib'i

Matplotlib'e Giriş Matplotlib Başlarken Matplotlib Pyplot Matplotlib Çizimi Matplotlib İşaretçileri Matplotlib Hattı Matplotlib Etiketleri Matplotlib Izgarası Matplotlib Alt Noktaları Matplotlib Dağılımı Matplotlib Çubukları Matplotlib Histogramları Matplotlib Pasta Grafikleri

Makine öğrenme

Başlarken Ortalama Medyan Modu Standart sapma Yüzdelik Veri Dağıtımı Normal Veri Dağılımı Dağılım grafiği Doğrusal Regresyon Polinom Regresyon Çoklu regresyon Ölçek Tren/Test Karar ağacı

Python MySQL

MySQL'e Başlayın MySQL Veritabanı Oluştur MySQL Tablo Oluştur MySQL Ekle MySQL Seçimi MySQL Nerede MySQL Sıralaması MySQL Sil MySQL Bırakma Tablosu MySQL Güncellemesi MySQL Sınırı MySQL'e Katılma

Python MongoDB

MongoDB Başlarken MongoDB Veritabanı Oluştur MongoDB Koleksiyon Oluştur MongoDB Ekle MongoDB Bul MongoDB Sorgusu MongoDB Sıralaması MongoDB Sil MongoDB Damla Koleksiyonu MongoDB Güncellemesi MongoDB Sınırı

Python Referansı

Python'a Genel Bakış Python Yerleşik İşlevleri Python Dizisi Yöntemleri Python Liste Yöntemleri Python Sözlük Yöntemleri Python Tuple Yöntemleri Python Kümesi Yöntemleri Python Dosya Yöntemleri Python Anahtar Kelimeleri Python İstisnaları Python Sözlüğü

Modül Referansı

Rastgele Modül İstek Modülü İstatistik Modülü Matematik Modülü cMath Modülü

Python Nasıl Yapılır?

Liste Kopyalarını Kaldır Bir Dizeyi Ters Çevir İki Sayı Ekle

Python Örnekleri

Python Örnekleri Python Derleyici Python Alıştırmaları Python Testi Python Sertifikası

Makine Öğrenimi - Doğrusal Regresyon


regresyon

Değişkenler arasındaki ilişkiyi bulmaya çalıştığınızda regresyon terimi kullanılır.

Makine Öğreniminde ve istatistiksel modellemede bu ilişki gelecekteki olayların sonucunu tahmin etmek için kullanılır.


Doğrusal Regresyon

Doğrusal regresyon, veri noktaları arasındaki ilişkiyi, tüm bunların arasından düz bir çizgi çizmek için kullanır.

Bu çizgi gelecekteki değerleri tahmin etmek için kullanılabilir.

Makine Öğreniminde geleceği tahmin etmek çok önemlidir.


O nasıl çalışır?

Python, veri noktaları arasında bir ilişki bulmak ve bir doğrusal regresyon çizgisi çizmek için yöntemlere sahiptir. Matematik formülü üzerinden gitmek yerine bu yöntemleri nasıl kullanacağınızı göstereceğiz.

Aşağıdaki örnekte, x ekseni yaşı, y ekseni ise hızı temsil etmektedir. Bir gişeden geçen 13 arabanın yaşını ve hızını kaydettik. Topladığımız verilerin doğrusal bir regresyonda kullanılıp kullanılamayacağını görelim:

Örnek

Bir dağılım grafiği çizerek başlayın:

import matplotlib.pyplot as plt

x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]

plt.scatter(x, y)
plt.show()

Sonuç:

Örnek

scipyLineer Regresyon çizgisini içe aktarın ve çizin:

import matplotlib.pyplot as plt
from scipy import stats

x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]

slope, intercept, r, p, std_err = stats.linregress(x, y)

def myfunc(x):
  return slope * x + intercept

mymodel = list(map(myfunc, x))

plt.scatter(x, y)
plt.plot(x, mymodel)
plt.show()

Sonuç:

Örnek Açıklama

İhtiyacınız olan modülleri içe aktarın.

Matplotlib modülü hakkında Matplotlib Tutorial'ımızda bilgi edinebilirsiniz .

SciPy modülü hakkında SciPy Eğitimimizde bilgi edinebilirsiniz .

import matplotlib.pyplot as plt
from scipy import stats

x ve y ekseninin değerlerini temsil eden dizileri oluşturun:

x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]

Doğrusal Regresyonun bazı önemli anahtar değerlerini döndüren bir yöntem yürütün:

slope, intercept, r, p, std_err = stats.linregress(x, y)

Yeni bir değer döndürmek için slopeve değerlerini kullanan bir işlev oluşturun . interceptBu yeni değer, karşılık gelen x değerinin y ekseninde nereye yerleştirileceğini temsil eder:

def myfunc(x):
  return slope * x + intercept

x dizisinin her değerini işlev aracılığıyla çalıştırın. Bu, y ekseni için yeni değerler içeren yeni bir diziyle sonuçlanacaktır:

mymodel = list(map(myfunc, x))

Orijinal dağılım grafiğini çizin:

plt.scatter(x, y)

Doğrusal regresyon çizgisini çizin:

plt.plot(x, mymodel)

Diyagramı görüntüleyin:

plt.show()



İlişki için R

X ekseninin değerleri ile y ekseninin değerleri arasındaki ilişkinin nasıl olduğunu bilmek önemlidir, eğer ilişki yoksa doğrusal regresyon hiçbir şeyi tahmin etmek için kullanılamaz.

Bu ilişkiye - korelasyon katsayısı - denir r.

Değer r, -1 ile 1 arasında değişir; burada 0, ilişki yok ve 1 (ve -1) %100 ilişkili anlamına gelir.

Python ve Scipy modülü sizin için bu değeri hesaplayacaktır, tek yapmanız gereken onu x ve y değerleri ile beslemek.

Örnek

Verilerim doğrusal bir regresyona ne kadar uyuyor?

from scipy import stats

x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]

slope, intercept, r, p, std_err = stats.linregress(x, y)

print(r)

Not: -0.76 sonucu, mükemmel olmayan bir ilişki olduğunu gösterir, ancak gelecekteki tahminlerde doğrusal regresyon kullanabileceğimizi gösterir.


Gelecekteki Değerleri Tahmin Edin

Şimdi topladığımız bilgileri gelecekteki değerleri tahmin etmek için kullanabiliriz.

Örnek: 10 yaşında bir arabanın hızını tahmin etmeye çalışalım.

Bunu yapmak için, myfunc()yukarıdaki örnekteki aynı fonksiyona ihtiyacımız var:

def myfunc(x):
  return slope * x + intercept

Örnek

10 yaşında bir arabanın hızını tahmin edin:

from scipy import stats

x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]

slope, intercept, r, p, std_err = stats.linregress(x, y)

def myfunc(x):
  return slope * x + intercept

speed = myfunc(10)

print(speed)

Örnek, şemadan da okuyabileceğimiz 85.6'da bir hız öngördü:


Kötü Uyum?

Doğrusal regresyonun gelecekteki değerleri tahmin etmek için en iyi yöntem olmayacağı bir örnek oluşturalım.

Örnek

x ve y ekseni için bu değerler, doğrusal regresyon için çok kötü bir uyumla sonuçlanmalıdır:

import matplotlib.pyplot as plt
from scipy import stats

x = [89,43,36,36,95,10,66,34,38,20,26,29,48,64,6,5,36,66,72,40]
y = [21,46,3,35,67,95,53,72,58,10,26,34,90,33,38,20,56,2,47,15]

slope, intercept, r, p, std_err = stats.linregress(x, y)

def myfunc(x):
  return slope * x + intercept

mymodel = list(map(myfunc, x))

plt.scatter(x, y)
plt.plot(x, mymodel)
plt.show()

Sonuç:

Ve rilişki için?

Örnek

rÇok düşük bir değer almalısınız .

import numpy
from scipy import stats

x = [89,43,36,36,95,10,66,34,38,20,26,29,48,64,6,5,36,66,72,40]
y = [21,46,3,35,67,95,53,72,58,10,26,34,90,33,38,20,56,2,47,15]

slope, intercept, r, p, std_err = stats.linregress(x, y)

print(r)

Sonuç: 0.013 çok kötü bir ilişkiyi gösterir ve bize bu veri setinin lineer regresyon için uygun olmadığını söyler.