# Sosyal fobi teşhisi için Python kodu
# Kaynak: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5573559/
# Gerekli kütüphaneleri içe aktar
import numpy as np
import pandas as pd
import sklearn
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
from sklearn.model_selection import train_test_split
# Veri setini yükle
# Veri seti, sosyal fobi tanısı alan veya almayan 4.000 kişinin demografik ve klinik özelliklerini içeriyor
# Veri seti, https://www.kaggle.com/uciml/social-anxiety-disorder-sad-dataset adresinden indirilebilir
data = pd.read_csv("social_anxiety.csv")
# Veri setini incele
print(data.head())
print(data.info())
print(data.describe())
# Hedef değişkeni belirle
# Hedef değişkeni, sosyal fobi tanısı alan kişileri 1, almayanları 0 olarak kodlayan "SAD" sütunudur
y = data["SAD"]
# Bağımsız değişkenleri belirle
# Bağımsız değişkenler, sosyal fobi tanısı ile ilişkili olabilecek demografik ve klinik özelliklerdir
# Örneğin, yaş, cinsiyet, eğitim, gelir, medeni durum, aile geçmişi, depresyon, anksiyete, alkol kullanımı, sigara kullanımı vb.
X = data.drop("SAD", axis=1)
# Veri setini eğitim ve test alt kümelerine ayır
# Eğitim kümesi, modeli eğitmek için kullanılır
# Test kümesi, modelin performansını değerlendirmek için kullanılır
# Veri setinin %80'i eğitim kümesi, %20'si test kümesi olarak ayrılır
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Lojistik regresyon modeli oluştur
# Lojistik regresyon, ikili sınıflandırma problemleri için uygun bir makine öğrenmesi algoritmasıdır
# Lojistik regresyon, bağımsız değişkenlerin hedef değişken üzerindeki etkisini ölçen katsayıları bulur
# Lojistik regresyon, verilen bir gözlem için hedef değişkenin olasılığını tahmin eder
model = LogisticRegression()
# Modeli eğitim verisi ile eğit
model.fit(X_train, y_train)
# Modelin eğitim verisi üzerindeki performansını değerlendir
y_train_pred = model.predict(X_train)
y_train_prob = model.predict_proba(X_train)[:,1]
print("Eğitim verisi üzerindeki doğruluk:", accuracy_score(y_train, y_train_pred))
print("Eğitim verisi üzerindeki karışıklık matrisi:\n", confusion_matrix(y_train, y_train_pred))
print("Eğitim verisi üzerindeki sınıflandırma raporu:\n", classification_report(y_train, y_train_pred))
# Modelin test verisi üzerindeki performansını değerlendir
y_test_pred = model.predict(X_test)
y_test_prob = model.predict_proba(X_test)[:,1]
print("Test verisi üzerindeki doğruluk:", accuracy_score(y_test, y_test_pred))
print("Test verisi üzerindeki karışıklık matrisi:\n", confusion_matrix(y_test, y_test_pred))
print("Test verisi üzerindeki sınıflandırma raporu:\n", classification_report(y_test, y_test_pred))
# Modelin katsayılarını ve yorumlarını göster
coef = pd.DataFrame(model.coef_.T, index=X.columns, columns=["Katsayı"])
coef["Yorum"] = np.where(coef["Katsayı"] > 0, "Sosyal fobi riskini artırır", "Sosyal fobi riskini azaltır")
print(coef)
#Yazan Rıdvan Kaya
Bu kod, sosyal fobi teşhisi için bir lojistik regresyon modeli oluşturmayı ve değerlendirmeyi amaçlamaktadır. Kodun yaptığı işlemleri adım adım açıklayayım:
- İlk olarak, gerekli kütüphaneleri içe aktarıyoruz. Numpy, pandas ve sklearn gibi kütüphaneler, veri işleme, makine öğrenmesi ve istatistiksel analiz için çok kullanışlıdır.
- Sonra, veri setini yüklüyoruz. Veri seti, sosyal fobi tanısı alan veya almayan 4.000 kişinin demografik ve klinik özelliklerini içeriyor. Veri setini, kaggle sitesinden indirebilirsiniz.
- Daha sonra, veri setini inceleyerek, sütun isimleri, veri tipleri ve temel istatistikler hakkında bilgi ediniyoruz. print fonksiyonu ile veri setinin başını, bilgisini ve tanımını ekrana yazdırıyoruz.
- Ardından, hedef değişkeni belirliyoruz. Hedef değişkeni, sosyal fobi tanısı alan kişileri 1, almayanları 0 olarak kodlayan "SAD" sütunudur. Bu sütunu, y adlı bir değişkene atıyoruz.
- Sonra, bağımsız değişkenleri belirliyoruz. Bağımsız değişkenler, sosyal fobi tanısı ile ilişkili olabilecek demografik ve klinik özelliklerdir. Örneğin, yaş, cinsiyet, eğitim, gelir, medeni durum, aile geçmişi, depresyon, anksiyete, alkol kullanımı, sigara kullanımı vb. Bu sütunları, X adlı bir değişkene atıyoruz.
- Daha sonra, veri setini eğitim ve test alt kümelerine ayırıyoruz. Eğitim kümesi, modeli eğitmek için kullanılır. Test kümesi, modelin performansını değerlendirmek için kullanılır. Veri setinin %80'i eğitim kümesi, %20'si test kümesi olarak ayrılır. train_test_split fonksiyonu ile bu işlemi yapıyoruz.
- Sonra, lojistik regresyon modeli oluşturuyoruz. Lojistik regresyon, ikili sınıflandırma problemleri için uygun bir makine öğrenmesi algoritmasıdır. Lojistik regresyon, bağımsız değişkenlerin hedef değişken üzerindeki etkisini ölçen katsayıları bulur. Lojistik regresyon, verilen bir gözlem için hedef değişkenin olasılığını tahmin eder. LogisticRegression fonksiyonu ile bu modeli oluşturuyoruz.
- Ardından, modeli eğitim verisi ile eğitiyoruz. fit fonksiyonu ile modeli X_train ve y_train verilerine uyduruyoruz.
- Sonra, modelin eğitim verisi üzerindeki performansını değerlendiriyoruz. predict fonksiyonu ile modelin eğitim verisine verdiği tahminleri alıyoruz. predict_proba fonksiyonu ile modelin eğitim verisine verdiği olasılıkları alıyoruz. accuracy_score, confusion_matrix ve classification_report fonksiyonları ile modelin eğitim verisi üzerindeki doğruluk, karışıklık matrisi ve sınıflandırma raporunu hesaplıyoruz.
- Daha sonra, modelin test verisi üzerindeki performansını değerlendiriyoruz. predict fonksiyonu ile modelin test verisine verdiği tahminleri alıyoruz. predict_proba fonksiyonu ile modelin test verisine verdiği olasılıkları alıyoruz. accuracy_score, confusion_matrix ve classification_report fonksiyonları ile modelin test verisi üzerindeki doğruluk, karışıklık matrisi ve sınıflandırma raporunu hesaplıyoruz.
- Son olarak, modelin katsayılarını ve yorumlarını gösteriyoruz. coef_ özniteliği ile modelin bulduğu katsayıları alıyoruz. Bu katsayılar, bağımsız değişkenlerin hedef değişken üzerindeki etkisini gösterir. Katsayılar, pozitif veya negatif olabilir. Pozitif katsayılar, sosyal fobi riskini artıran faktörleri gösterir. Negatif katsayılar, sosyal fobi riskini azaltan faktörleri gösterir. Bu katsayıları ve yorumlarını, bir pandas veri çerçevesi olarak ekrana yazdırıyoruz.
Bu kodun amacı, sosyal fobi tanısı için bir lojistik regresyon modeli oluşturmak ve değerlendirmektir. Bu model, sosyal fobi tanısı ile ilişkili olabilecek faktörleri bulmaya ve sosyal fobi olasılığını tahmin etmeye yarar. Bu model, psikiyatri uzmanlarına, sosyal fobi tanısı koymada ve tedavi planlamada yardımcı olabilir.
Bu kodu çalıştırmak için, öncelikle Python programını bilgisayarınıza kurmanız gerekir. Python programını resmi sitesinden indirebilir ve yükleyebilirsiniz. Yükleme işlemi sırasında, Python'u PATH listesine eklemeyi unutmayın. Bu, Python komutunu komut isteminden kullanmanızı sağlar.
Python programını kurduktan sonra, bu kodu bir metin düzenleyici ile açabilir ve kaydedebilirsiniz. Dosya adı ve uzantısı .py olmalıdır. Örneğin, dosya adı sosyal_fobi.py olabilir.
Dosyayı kaydettikten sonra, bir komut istemi (terminal) açabilir ve dosyanın bulunduğu klasöre gidebilirsiniz. Örneğin, eğer dosyanız Masaüstü'nde ise, cd desktop komutunu yazabilirsiniz.
Son olarak, dosyayı çalıştırmak için, python sosyal_fobi.py komutunu yazabilir ve Enter tuşuna basabilirsiniz. Bu komut, dosyadaki Python kodunu çalıştırır ve ekrana sonucu yazdırır.
Bu kod, sosyal fobi teşhisi için bir lojistik regresyon modeli oluşturur ve değerlendirir. Model, sosyal fobi tanısı ile ilişkili olabilecek faktörleri bulmaya ve sosyal fobi olasılığını tahmin etmeye yarar. Bu model, psikiyatri uzmanlarına, sosyal fobi tanısı koymada ve tedavi planlamada yardımcı olabilir.
# Kaynak: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5573559/
# Gerekli kütüphaneleri içe aktar
import numpy as np
import pandas as pd
import sklearn
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
from sklearn.model_selection import train_test_split
# Veri setini yükle
# Veri seti, sosyal fobi tanısı alan veya almayan 4.000 kişinin demografik ve klinik özelliklerini içeriyor
# Veri seti, https://www.kaggle.com/uciml/social-anxiety-disorder-sad-dataset adresinden indirilebilir
data = pd.read_csv("social_anxiety.csv")
# Veri setini incele
print(data.head())
print(data.info())
print(data.describe())
# Hedef değişkeni belirle
# Hedef değişkeni, sosyal fobi tanısı alan kişileri 1, almayanları 0 olarak kodlayan "SAD" sütunudur
y = data["SAD"]
# Bağımsız değişkenleri belirle
# Bağımsız değişkenler, sosyal fobi tanısı ile ilişkili olabilecek demografik ve klinik özelliklerdir
# Örneğin, yaş, cinsiyet, eğitim, gelir, medeni durum, aile geçmişi, depresyon, anksiyete, alkol kullanımı, sigara kullanımı vb.
X = data.drop("SAD", axis=1)
# Veri setini eğitim ve test alt kümelerine ayır
# Eğitim kümesi, modeli eğitmek için kullanılır
# Test kümesi, modelin performansını değerlendirmek için kullanılır
# Veri setinin %80'i eğitim kümesi, %20'si test kümesi olarak ayrılır
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Lojistik regresyon modeli oluştur
# Lojistik regresyon, ikili sınıflandırma problemleri için uygun bir makine öğrenmesi algoritmasıdır
# Lojistik regresyon, bağımsız değişkenlerin hedef değişken üzerindeki etkisini ölçen katsayıları bulur
# Lojistik regresyon, verilen bir gözlem için hedef değişkenin olasılığını tahmin eder
model = LogisticRegression()
# Modeli eğitim verisi ile eğit
model.fit(X_train, y_train)
# Modelin eğitim verisi üzerindeki performansını değerlendir
y_train_pred = model.predict(X_train)
y_train_prob = model.predict_proba(X_train)[:,1]
print("Eğitim verisi üzerindeki doğruluk:", accuracy_score(y_train, y_train_pred))
print("Eğitim verisi üzerindeki karışıklık matrisi:\n", confusion_matrix(y_train, y_train_pred))
print("Eğitim verisi üzerindeki sınıflandırma raporu:\n", classification_report(y_train, y_train_pred))
# Modelin test verisi üzerindeki performansını değerlendir
y_test_pred = model.predict(X_test)
y_test_prob = model.predict_proba(X_test)[:,1]
print("Test verisi üzerindeki doğruluk:", accuracy_score(y_test, y_test_pred))
print("Test verisi üzerindeki karışıklık matrisi:\n", confusion_matrix(y_test, y_test_pred))
print("Test verisi üzerindeki sınıflandırma raporu:\n", classification_report(y_test, y_test_pred))
# Modelin katsayılarını ve yorumlarını göster
coef = pd.DataFrame(model.coef_.T, index=X.columns, columns=["Katsayı"])
coef["Yorum"] = np.where(coef["Katsayı"] > 0, "Sosyal fobi riskini artırır", "Sosyal fobi riskini azaltır")
print(coef)
#Yazan Rıdvan Kaya
Bu kod, sosyal fobi teşhisi için bir lojistik regresyon modeli oluşturmayı ve değerlendirmeyi amaçlamaktadır. Kodun yaptığı işlemleri adım adım açıklayayım:
- İlk olarak, gerekli kütüphaneleri içe aktarıyoruz. Numpy, pandas ve sklearn gibi kütüphaneler, veri işleme, makine öğrenmesi ve istatistiksel analiz için çok kullanışlıdır.
- Sonra, veri setini yüklüyoruz. Veri seti, sosyal fobi tanısı alan veya almayan 4.000 kişinin demografik ve klinik özelliklerini içeriyor. Veri setini, kaggle sitesinden indirebilirsiniz.
- Daha sonra, veri setini inceleyerek, sütun isimleri, veri tipleri ve temel istatistikler hakkında bilgi ediniyoruz. print fonksiyonu ile veri setinin başını, bilgisini ve tanımını ekrana yazdırıyoruz.
- Ardından, hedef değişkeni belirliyoruz. Hedef değişkeni, sosyal fobi tanısı alan kişileri 1, almayanları 0 olarak kodlayan "SAD" sütunudur. Bu sütunu, y adlı bir değişkene atıyoruz.
- Sonra, bağımsız değişkenleri belirliyoruz. Bağımsız değişkenler, sosyal fobi tanısı ile ilişkili olabilecek demografik ve klinik özelliklerdir. Örneğin, yaş, cinsiyet, eğitim, gelir, medeni durum, aile geçmişi, depresyon, anksiyete, alkol kullanımı, sigara kullanımı vb. Bu sütunları, X adlı bir değişkene atıyoruz.
- Daha sonra, veri setini eğitim ve test alt kümelerine ayırıyoruz. Eğitim kümesi, modeli eğitmek için kullanılır. Test kümesi, modelin performansını değerlendirmek için kullanılır. Veri setinin %80'i eğitim kümesi, %20'si test kümesi olarak ayrılır. train_test_split fonksiyonu ile bu işlemi yapıyoruz.
- Sonra, lojistik regresyon modeli oluşturuyoruz. Lojistik regresyon, ikili sınıflandırma problemleri için uygun bir makine öğrenmesi algoritmasıdır. Lojistik regresyon, bağımsız değişkenlerin hedef değişken üzerindeki etkisini ölçen katsayıları bulur. Lojistik regresyon, verilen bir gözlem için hedef değişkenin olasılığını tahmin eder. LogisticRegression fonksiyonu ile bu modeli oluşturuyoruz.
- Ardından, modeli eğitim verisi ile eğitiyoruz. fit fonksiyonu ile modeli X_train ve y_train verilerine uyduruyoruz.
- Sonra, modelin eğitim verisi üzerindeki performansını değerlendiriyoruz. predict fonksiyonu ile modelin eğitim verisine verdiği tahminleri alıyoruz. predict_proba fonksiyonu ile modelin eğitim verisine verdiği olasılıkları alıyoruz. accuracy_score, confusion_matrix ve classification_report fonksiyonları ile modelin eğitim verisi üzerindeki doğruluk, karışıklık matrisi ve sınıflandırma raporunu hesaplıyoruz.
- Daha sonra, modelin test verisi üzerindeki performansını değerlendiriyoruz. predict fonksiyonu ile modelin test verisine verdiği tahminleri alıyoruz. predict_proba fonksiyonu ile modelin test verisine verdiği olasılıkları alıyoruz. accuracy_score, confusion_matrix ve classification_report fonksiyonları ile modelin test verisi üzerindeki doğruluk, karışıklık matrisi ve sınıflandırma raporunu hesaplıyoruz.
- Son olarak, modelin katsayılarını ve yorumlarını gösteriyoruz. coef_ özniteliği ile modelin bulduğu katsayıları alıyoruz. Bu katsayılar, bağımsız değişkenlerin hedef değişken üzerindeki etkisini gösterir. Katsayılar, pozitif veya negatif olabilir. Pozitif katsayılar, sosyal fobi riskini artıran faktörleri gösterir. Negatif katsayılar, sosyal fobi riskini azaltan faktörleri gösterir. Bu katsayıları ve yorumlarını, bir pandas veri çerçevesi olarak ekrana yazdırıyoruz.
Bu kodun amacı, sosyal fobi tanısı için bir lojistik regresyon modeli oluşturmak ve değerlendirmektir. Bu model, sosyal fobi tanısı ile ilişkili olabilecek faktörleri bulmaya ve sosyal fobi olasılığını tahmin etmeye yarar. Bu model, psikiyatri uzmanlarına, sosyal fobi tanısı koymada ve tedavi planlamada yardımcı olabilir.
Bu kodu çalıştırmak için, öncelikle Python programını bilgisayarınıza kurmanız gerekir. Python programını resmi sitesinden indirebilir ve yükleyebilirsiniz. Yükleme işlemi sırasında, Python'u PATH listesine eklemeyi unutmayın. Bu, Python komutunu komut isteminden kullanmanızı sağlar.
Python programını kurduktan sonra, bu kodu bir metin düzenleyici ile açabilir ve kaydedebilirsiniz. Dosya adı ve uzantısı .py olmalıdır. Örneğin, dosya adı sosyal_fobi.py olabilir.
Dosyayı kaydettikten sonra, bir komut istemi (terminal) açabilir ve dosyanın bulunduğu klasöre gidebilirsiniz. Örneğin, eğer dosyanız Masaüstü'nde ise, cd desktop komutunu yazabilirsiniz.
Son olarak, dosyayı çalıştırmak için, python sosyal_fobi.py komutunu yazabilir ve Enter tuşuna basabilirsiniz. Bu komut, dosyadaki Python kodunu çalıştırır ve ekrana sonucu yazdırır.
Bu kod, sosyal fobi teşhisi için bir lojistik regresyon modeli oluşturur ve değerlendirir. Model, sosyal fobi tanısı ile ilişkili olabilecek faktörleri bulmaya ve sosyal fobi olasılığını tahmin etmeye yarar. Bu model, psikiyatri uzmanlarına, sosyal fobi tanısı koymada ve tedavi planlamada yardımcı olabilir.



