ile başlamak ister misiniz? makine öğrenme?
Tamamen yeni başlayanlar için basit ve kolay bir eğitim oluşturdum. Birlikte, bir makine öğrenimi modeli eğitmenin temel adımlarının üzerinden geçeceğiz.
Bir modeli eğitme adımlarını tek tek anlatırken bir de makine öğrenme probleminin çok basit bir örneğini vereceğim. Bu nedenle, devam etmek isterseniz, bu örnek veri setini buradan indirebilirsiniz. Link.
Bu, makine öğrenimine başlamanıza yardımcı olacak örnek bir veri kümesidir.
Farklı yaş ve cinsiyetlerden insanların favori müziklerini tanımlamış 18 değerimiz var. “Yaş” ve “cinsiyet” özelliklerini kullanarak en sevdikleri müzik türünü tahmin etmeye çalışacağız.
Not: Bu veri setinde 1 ve 0 cinsiyetlere kadın ve erkek olarak atanmıştır.
Ancak, örneği takip etmek istemiyorsanız, bu da gayet iyi. Tüm bu adımları ayrıntılı olarak anlatacağım. Öyleyse dalalım!
Bilmeniz Gereken İlk Şeyler
Model eğitim aşamalarına geçmeden önce bazı noktalara açıklık getirelim. Makine öğrenimi bir yapay zeka verilerden öğrenebilen algoritmalar geliştirmeye odaklanan disiplin.
Bunu yapmak için, makine öğrenimi modelleri, modele doğru tahminlerin nasıl yapılacağını öğreten bir veri kümesi üzerinde eğitilir veya sınıflandırmalar taze, daha önce bilinmeyen veriler üzerinde.
Peki nedir bu modeller? A makine öğrenimi modeli bir bilgisayarın veri tahminleri veya seçimler oluşturmak için kullandığı bir tarife benzer.
Bir tarif gibi bir model, verileri değerlendirmek ve verilerde bulunan kalıplara dayalı tahminler veya yargılar oluşturmak için bir dizi talimatı izler. Model ne kadar çok veri üzerinde eğitilirse, tahminleri o kadar doğru olur.
Ne Tür Modeller Eğitebiliriz?
Temel makine öğrenimi modellerinin neler olduğunu görelim.
- Doğrusal Regresyon: Bir veya daha fazla girdi değişkeninden sürekli bir hedef değişkeni tahmin eden bir model.
- Nöral ağlar: verilerdeki karmaşık kalıpları algılamayı öğrenebilen bağlantılı düğümlerden oluşan bir ağ.
- Karar Ağaçları: dallanan if-else ifadeleri zinciri üzerine inşa edilmiş bir karar verme yaklaşımı.
- Kümeleme: karşılaştırılabilir veri noktalarını benzerliğe göre gruplandıran bir dizi model.
- Lojistik Regresyon: hedef değişkenin iki potansiyel değere sahip olduğu ikili sınıflandırma problemleri için bir model.
- Karar Ağaçları: dallanan if-else ifadeleri zinciri üzerine inşa edilmiş bir karar verme yaklaşımı.
- Rastgele Orman: çok sayıda karar ağacından oluşan bir topluluk modeli. Sınıflandırma ve regresyon uygulamaları için sıklıkla kullanılırlar.
- K-En Yakın Komşular: eğitim setindeki k-en yakın veri noktalarını kullanarak hedef değişkeni tahmin eden bir model.
Sorunumuza ve veri kümemize bağlı olarak, hangi makine öğrenimi modelinin durumumuza en uygun olduğuna karar veririz. Ancak buna daha sonra geri döneceğiz. Şimdi modelimizi eğitmeye başlayalım. Umarım zaten indirmişsinizdir veri kümesi Örneğimizi takip etmek isterseniz.
ayrıca sahip olmanı tavsiye ederim Jupyter Not Defteri yerel makinenizde yüklü ve onu makine öğrenimi projeleriniz için kullanıyor.
1: Sorunu tanımlayın
ilk aşama makine öğrenimi eğitimi Model çözülecek sorunu tanımlar. Bu, tahmin etmek istediğiniz değişkenleri (hedef değişken olarak bilinir) ve bu tahminleri oluşturmak için kullanılacak değişkenleri (özellikler veya öngörücüler olarak bilinir) seçmeyi gerektirir.
Ayrıca, ne tür bir makine öğrenimi sorununu çözmeye çalıştığınıza (sınıflandırma, gerileme, kümeleme vb.) ve modelinizi eğitmek için ne tür veriler toplamanız veya almanız gerektiğine de karar vermelisiniz.
Kullandığınız modelin türü, çözmeyi amaçladığınız makine öğrenimi probleminin türüne göre belirlenir. Sınıflandırma, regresyon ve kümeleme üç ana kategoridir. makine öğrenimi zorlukları. Bir e-postanın spam olup olmadığı gibi kategorik bir değişkeni tahmin etmek istediğinizde, sınıflandırmayı kullanırsınız.
Bir evin fiyatı gibi sürekli bir değişkeni tahmin etmek istediğinizde regresyon kullanırsınız. Kümeleme, karşılaştırılabilir veri öğelerini ortak noktalarına göre bir araya getirmek için kullanılır.
Örneğimize bakacak olursak; Bizim zorluğumuz, bir kişinin tercih ettiği müzik tarzını cinsiyetinden ve yaşından belirlemektir. Bu örnek için 18 kişilik bir veri seti ve yaşları, cinsiyetleri ve en sevdikleri müzik tarzları hakkında bilgiler kullanacağız.
2. Verileri hazırlayın
Sorunu belirledikten sonra, modeli eğitmek için verileri hazırlamanız gerekir. Bu, verilerin temizlenmesini ve işlenmesini gerektirir. Böylece, bunun bir formatta olduğundan emin olabiliriz. makine öğrenimi algoritması kullanabilirsiniz.
Bu, eksik değerlerin silinmesi, kategorik verilerin sayısal verilere dönüştürülmesi ve tüm özelliklerin aynı ölçekte olmasını sağlamak için verilerin ölçeklendirilmesi veya normalleştirilmesi gibi faaliyetleri içerebilir.
Örneğin, eksik değerleri şu şekilde silersiniz:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
Küçük not: o “ satırındaimport pandas as pd",
Pandas kitaplığını içe aktarıyoruz ve daha sonra kodda işlevlerine ve nesnelerine başvurmayı kolaylaştırmak için ona "pd" takma adını veriyoruz.
Pandas, özellikle yapılandırılmış veya tablo verileriyle çalışırken veri işleme ve analizi için Python için iyi bilinen bir modüldür.
Müzik türlerini belirleme örneğimizde. Önce veri setini import edeceğiz. Ben buna music.csv adını verdim, ancak siz istediğiniz gibi adlandırabilirsiniz.
Bir makine öğrenimi modelini eğitmek için verileri hazırlamak üzere, verileri niteliklere (yaş ve cinsiyet) ve hedeflere (müzik türü) ayırdık.
Ek olarak, modelimizin performansını değerlendirmek ve fazla uydurmayı önlemek için verileri 80:20 eğitim ve test kümelerine böleceğiz.
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. Bir makine öğrenimi modeli seçin.
Verileri hazırladıktan sonra, görevinize uygun bir makine öğrenimi modeli seçmelisiniz.
Aralarından seçim yapabileceğiniz karar ağaçları, lojistik regresyon, destek vektör makineleri, sinir ağları ve diğerleri gibi çeşitli algoritmalar vardır. Seçtiğiniz algoritma, yanıtlamaya çalıştığınız sorunun türüne, sahip olduğunuz veri türüne ve performans gereksinimlerinize göre belirlenir.
Bu örnek için bir karar ağacı sınıflandırıcısı kullanacağız çünkü bir sınıflandırma problemi (kategorik verileri tahmin etme) üzerinde çalışıyoruz.
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Karar Ağacı Sınıflandırıcısının nasıl çalıştığına dair bir görselleştirme aşağıda verilmiştir:
4. Modeli eğitin
Kabul edilebilir bir makine öğrenimi algoritması seçtiğinizde modeli eğitmeye başlayabilirsiniz. Bu, algoritmayı taze, daha önce görülmemiş veriler üzerinde nasıl tahminler yapılacağı konusunda eğitmek için önceden oluşturulmuş verilerin kullanılmasını gerektirir.
Algoritma, tahmin edilen değerleri ile eğitim verilerindeki gerçek değerler arasındaki farkı en aza indirmek için eğitim sırasında dahili parametrelerini değiştirecektir. Algoritmanın özel parametrelerinin yanı sıra eğitim için kullanılan veri miktarının tümü, ortaya çıkan modelin doğruluğu üzerinde bir etkiye sahip olabilir.
Spesifik örneğimizde, artık bir yönteme karar verdiğimize göre, modelimizi eğitim verileriyle eğitebiliriz.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Modeli değerlendirin
Model eğitildikten sonra, doğru ve güvenilir olduğundan emin olmak için yeni veriler üzerinde değerlendirilmelidir. Bu, modelin eğitim sırasında kullanılmayan verilerle test edilmesini ve öngörülen değerlerinin test verilerindeki gerçek değerlerle karşılaştırılmasını gerektirir.
Bu gözden geçirme, fazla takma veya yetersiz takma gibi herhangi bir model kusurunun belirlenmesine yardımcı olabilir ve gerekli olabilecek herhangi bir ince ayarın yapılmasına yol açabilir.
Test verilerini kullanarak modelimizin doğruluğunu değerlendireceğiz.
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
Doğruluk puanı şimdilik o kadar da kötü değil. 🙂 Doğruluk puanınızı artırmak için, verileri her zaman daha fazla temizleyebilir veya hangisinin en yüksek puanı verdiğini görmek için farklı makine öğrenimi modellerini deneyebilirsiniz.
6. Modelde ince ayar yapın
Modelin verimliliği yeterli değilse, çeşitli algoritma parametrelerini değiştirerek veya tamamen yeni algoritmalar deneyerek modelde ince ayar yapabilirsiniz.
Bu prosedür, alternatif öğrenme oranları ile deney yapmayı, düzenlileştirme ayarlarını değiştirmeyi veya bir sinir ağındaki gizli katmanların sayısını veya boyutunu değiştirmeyi içerebilir.
7. Modeli kullanın
Modelin performansından memnun kaldığınızda, onu yeni verilerle ilgili tahminler oluşturmak için kullanmaya başlayabilirsiniz.
Bu, modele yeni verilerin beslenmesini ve bu veriler üzerinde tahminler oluşturmak için modelin öğrenilen parametrelerinin kullanılmasını veya modeli daha geniş bir uygulama veya sisteme entegre etmeyi gerektirebilir.
Doğruluğundan memnun kaldıktan sonra modelimizi yeni veriler üzerinde tahminler oluşturmak için kullanabiliriz. Farklı cinsiyet ve yaş değerlerini deneyebilirsiniz.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Sarmak
İlk makine öğrenimi modelimizin eğitimini tamamladık.
Umarım faydalı bulmuşsunuzdur. Artık Linear Regresyon veya Rastgele Orman gibi farklı makine öğrenimi modellerini kullanmayı deneyebilirsiniz.
Birçok veri seti ve zorluk vardır. Kaggle kodlama ve makine öğrenimi anlayışınızı geliştirmek istiyorsanız.
Yorum bırak