Makine öğrenmesinde, özelliklerin(feature) önem puanları, bir tahmin modeli oluştururken bir veri kümesindeki her bir özelliğin göreceli önemini belirlemek için kullanılır. Bu puanlar, karar ağaçları, rastgele ormanlar, doğrusal modeller ve sinir ağları gibi çeşitli teknikler kullanılarak hesaplanır.
Bir veri setinde hangi kolonların ne kadar önemli olduklarını(feature importance) anlamak için Random Forest kullanabiliriz. Aşağıda İris veri seti üzerinden bunu nasıl yaptığımızı görebilirsiniz:
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
# 1. Veri setini yükleyin
# Örneğin: iris veri seti
from sklearn.datasets import load_iris
data = load_iris()
df = pd.DataFrame(data.data, columns=data.feature_names)
df['target'] = data.target
# 2. Özellikler (X) ve hedef (y) değişkeni
X = df.drop(columns=['target'])
y = df['target']
# 3. Eğitim ve test setlerine bölme
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 4. Random Forest Modelini Eğitme
model = RandomForestClassifier(random_state=42)
model.fit(X_train, y_train)
# 5. Özellik önemlerini alma
feature_importances = model.feature_importances_
# 6. Özellik önemlerini görselleştirme
plt.figure(figsize=(10, 6))
plt.barh(X.columns, feature_importances, color='turquoise')
plt.xlabel("Feature Importance")
plt.ylabel("Features")
plt.title("Feature Importance Using Random Forest")
plt.show()

from sklearn.ensemble import RandomForestClassifier
import matplotlib.pyplot as plt
import pandas as pd
# CSV dosyasını okuma ve ilk satırı sütun isimleri olarak ayarlama
df = pd.read_csv("https://bilisimkitabi.com/files/kimyasal_bilesenler_dummy.csv", header=0)
# Özellikler (X) ve hedef değişkeni (y) belirleme
X = df.drop(columns=['HarvestTime'])
y = df['HarvestTime']
# Modeli oluştur ve eğit
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X, y)
# Özellik önemlerini al
importances = clf.feature_importances_
# Özelliklerin önemini yazdır
for feature, importance in zip(X.columns, importances):
print(f"{feature}: {importance:.4f}")
# Özellik önemlerini görselleştir
plt.bar(X.columns, importances)
plt.xlabel('Features')
plt.ylabel('Importance')
plt.title('Feature Importances')
plt.xticks(rotation=45)
plt.show()

import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
# 1. Veri setini yükleyin
df = pd.read_csv("https://bilisimkitabi.com/files/kimyasal_bilesenler_dummy.csv", header=0)
# 2. Özellikler (X) ve hedef (y) değişkeni
X = df.drop(columns=['HarvestTime'])
y = df['HarvestTime']
# 3. Eğitim ve test setlerine bölme
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 4. Random Forest Modelini Eğitme
model = RandomForestClassifier(random_state=42)
model.fit(X_train, y_train)
# 5. Özellik önemlerini alma
feature_importances = model.feature_importances_
# 6. Özellik önemlerini görselleştirme
plt.figure(figsize=(10, 6))
plt.barh(X.columns, feature_importances, color='turquoise')
plt.xlabel("Feature Importance")
plt.ylabel("Features")
plt.title("Feature Importance Using Random Forest")
plt.show()

Özellik seçimi: En önemli özellikleri belirleyerek, uygulayıcılar bir model oluşturmada kullanılacak ilgili özelliklerin bir alt kümesini seçebilir, verilerdeki boyutluluğu ve gürültüyü azaltabilir ve model yorumlanabilirliğini iyileştirebilir.
Model yorumlanabilirliği: Hangi özelliklerin en önemli olduğunu anlayarak, uygulayıcılar verilerdeki temel ilişkiler ve modelin nasıl tahminler yaptığı hakkında fikir edinebilirler.
Model hata ayıklama: Bir model iyi performans göstermiyorsa, özellik önemi hangi özelliklerin sorunlara neden olabileceğini ve daha fazla araştırma gerektirebileceğini belirlemek için kullanılabilir.
İş karar alma: Hangi özelliklerin en önemli olduğunu anlayarak, uygulayıcılar hangi özelliklerin toplanacağı ve kaynakların nasıl tahsis edileceği konusunda daha bilinçli kararlar alabilirler.
Model performansını iyileştirme: Daha az önemli özellikleri kaldırarak, uygulayıcılar aşırı uyumu ve eğitim süresini azaltarak model performansını iyileştirebilir.