Makine öğrenmesi, bir bilgisayar programının veri analizi yaparak belirli bir işlemi öğrenmesi ve bu işlemi gerçekleştirmek için bir model oluşturmasıdır. Bu işlem, verilerin içindeki kalıpları bulmak, tahmin yapmak, sınıflandırmak veya bir karar vermek gibi çeşitli şekillerde olabilir.

Makine öğrenmesi, genellikle iki ana kategoriye ayrılır: denetimli öğrenme ve denetimsiz öğrenme. Denetimli öğrenme, önceden etiketlenmiş veriler kullanarak model oluşturma işlemidir. Denetimsiz öğrenme ise etiketlenmemiş veriler kullanarak kalıpları bulma işlemidir.

Örnek Kodlarla Makine Öğrenmesi

Python, makine öğrenmesi için en popüler programlama dillerinden biridir. Python’da, makine öğrenmesi modelleri oluşturmak için birçok kütüphane mevcuttur. Bu kütüphaneler, kodlama sürecini hızlandırır ve kolaylaştırır.

Örneğin, Scikit-learn kütüphanesi, Python için en popüler makine öğrenmesi kütüphanelerinden biridir. Aşağıda, Scikit-learn kütüphanesi kullanarak bir sınıflandırma modeli oluşturma örneği verilmiştir:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

# Iris veri setini yükle
iris = datasets.load_iris()

# Verileri ve hedef sınıfları ayır
X = iris.data
y = iris.target

# Eğitim ve test setlerine verileri bölmek
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Modeli oluşturma ve eğitim
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Test seti üzerinde modeli değerlendirme
accuracy = knn.score(X_test, y_test)
print("Accuracy:", accuracy)

Yukarıdaki kod, iris veri seti üzerinde bir K-NN (k en yakın komşu) sınıflandırma modeli oluşturur. Verileri eğitim ve test setlerine böler, ardından modeli eğitir ve test seti üzerinde modelin doğruluğunu değerlendirir. Doğruluk oranı, modelin sınıflandırma performansının bir ölçüsüdür.

Bir diğer popüler makine öğrenmesi kütüphanesi TensorFlow’dur. Aşağıda, TensorFlow kullanarakbir derin öğrenme modeli oluşturma örneği verilmiştir:

import tensorflow as tf
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D

# MNIST veri setini yükle
(x_train, y_train), (x_test, y_test) = mnist.load_data()

# Verileri normalleştirme
x_train = x_train / 255.0
x_test = x_test / 255.0

# Modeli oluşturma
model = Sequential([
    Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)),
    MaxPooling2D((2,2)),
    Flatten(),
    Dense(128, activation='relu'),
    Dense(10, activation='softmax')
])

# Modeli derleme
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# Modeli eğitim
model.fit(x_train.reshape(-1,28,28,1), y_train, epochs=5, validation_data=(x_test.reshape(-1,28,28,1), y_test))

# Modeli değerlendirme
test_loss, test_acc = model.evaluate(x_test.reshape(-1,28,28,1), y_test)
print('Test accuracy:', test_acc)

Yukarıdaki kod, MNIST veri seti üzerinde bir evrişimli sinir ağı (CNN) kullanarak sayı sınıflandırma modeli oluşturur. Verileri normalleştirir, ardından modeli oluşturur ve derler. Sonrasında, modeli eğitir ve test seti üzerinde performansını değerlendirir.

Scikit-learn ile Doğrusal Regresyon

Scikit-learn kütüphanesi, doğrusal regresyon gibi birçok makine öğrenmesi algoritmasını destekler. Doğrusal regresyon, bir veri kümesindeki bağımlı ve bağımsız değişkenler arasındaki ilişkiyi modellemek için kullanılır. Aşağıdaki örnekte, Scikit-learn kütüphanesi kullanarak doğrusal regresyon modeli oluşturulmuştur:

import numpy as np
from sklearn.linear_model import LinearRegression

# Veri setini oluşturma
X = np.array([[1, 3], [2, 5], [3, 7], [4, 9], [5, 11]])
y = np.array([5, 7, 9, 11, 13])

# Modeli oluşturma
model = LinearRegression()
model.fit(X, y)

# Tahmin yapma
X_new = np.array([[6, 15]])
y_new = model.predict(X_new)

print("Tahmin:", y_new)

Yukarıdaki kod, 2 boyutlu bir veri kümesinde doğrusal regresyon modeli oluşturur. Model, veri setindeki bağımlı ve bağımsız değişkenler arasındaki ilişkiyi öğrenir ve yeni bir bağımsız değişken değeri verildiğinde tahmin yapabilir.

TensorFlow ile CNN

TensorFlow kütüphanesi, derin öğrenme modelleri oluşturmak için kullanılır. Özellikle, evrişimli sinir ağı (CNN) gibi modeller, görüntü işleme ve nesne tanıma gibi alanlarda popülerdir. Aşağıdaki örnekte, TensorFlow kütüphanesi kullanarak bir CNN modeli oluşturulmuştur:

import tensorflow as tf
from tensorflow.keras.datasets import fashion_mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Conv2D, MaxPooling2D, Flatten

# Veri kümesini yükleme
(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()

# Verileri normalleştirme
x_train = x_train / 255.0
x_test = x_test / 255.0

# Modeli oluşturma
model = Sequential([
    Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)),
    MaxPooling2D((2,2)),
    Conv2D(64, (3,3), activation='relu'),
    MaxPooling2D((2,2)),
    Flatten(),
    Dense(128, activation='relu'),
    Dense(10, activation='softmax')
])

# Modeli derleme
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# Modeli eğitme
model.fit(x_train.reshape(-1,28,28,1), y_train, epochs=5, validation_data=(x_test.reshape(-1,28,28,1), y_test))

# Modeli değerlendirme
test_loss, test_acc = model.evaluate(x_test.reshape(-1,28,28,1), y_test)
print('Test accuracy:', test_acc)

Yukarıdaki kod, TensorFlow kütüphanesi kullanarak Fashion-MNIST veri setinde bir CNN modeli oluşturur. Model, veri setindeki kıyafetlerin farklı sınıflarını öğrenir ve yeni görüntülerde bu sınıfları tahmin eder. Özetle, Scikit-learn ve TensorFlow kütüphaneleri makine öğrenmesi için çok önemli araçlardır. Bu kütüphaneler, farklı makine öğrenmesi tekniklerini ve modellerini uygulamak için gereken araçları sağlarlar.

Makine öğrenmesi, birçok alanda kullanılan güçlü bir araçtır. Bu yazıda, makine öğrenmesinin temel kavramları hakkında bilgi verdim ve Python’da Scikit-learn ve TensorFlow kütüphanelerini kullanarak örnek kodlar sundum. Bu örnekler, farklı makine öğrenmesi tekniklerini ve modellerini göstermektedir. Makine öğrenmesi alanı hızla gelişiyor ve daha fazla uygulama alanı buluyor.