{"id":38906,"date":"2026-02-10T12:40:50","date_gmt":"2026-02-10T09:40:50","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38906"},"modified":"2026-02-10T12:40:50","modified_gmt":"2026-02-10T09:40:50","slug":"scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/","title":{"rendered":"Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi<\/h2>\n<p>Makine \u00f6\u011frenimi (Machine Learning), g\u00fcn\u00fcm\u00fcz\u00fcn en h\u0131zl\u0131 geli\u015fen ve en etkili teknoloji alanlar\u0131ndan biridir. Verilerden \u00f6\u011frenerek kararlar alabilen veya tahminlerde bulunabilen sistemler geli\u015ftirmeyi ama\u00e7lar. Spam e-postalar\u0131 filtrelemekten, kanser h\u00fccrelerini tespit etmeye, borsa tahminleri yapmaktan, otonom ara\u00e7lar\u0131 y\u00f6nlendirmeye kadar geni\u015f bir yelpazede uygulamalar\u0131 bulunur. Python, sadeli\u011fi, geni\u015f k\u00fct\u00fcphane deste\u011fi ve g\u00fc\u00e7l\u00fc toplulu\u011fu sayesinde makine \u00f6\u011frenimi i\u00e7in en pop\u00fcler dillerden biri haline gelmi\u015ftir. Bu ekosistemin kalbinde yer alan k\u00fct\u00fcphanelerden biri ise Scikit-learn&#8217;dir.<\/p>\n<h3>Makine \u00d6\u011frenimi Nedir ve Neden Scikit-learn?<\/h3>\n<p>Makine \u00f6\u011frenimi, bilgisayar sistemlerinin a\u00e7\u0131k\u00e7a programlanmadan verilerden \u00f6\u011frenmesini sa\u011flayan yapay zeka alan\u0131n\u0131n bir alt dal\u0131d\u0131r. Temel olarak, bir algoritma b\u00fcy\u00fck miktarda veri ile beslenir ve bu verilerdeki desenleri ve ili\u015fkileri \u00f6\u011frenerek gelecekteki veriler hakk\u0131nda tahminler yapma veya kararlar alma yetene\u011fi kazan\u0131r. Bu, geleneksel programlaman\u0131n aksine, her senaryo i\u00e7in belirli kurallar yazmak yerine, sistemin kendi kendine \u00f6\u011frenmesini sa\u011flar.<\/p>\n<p>Python&#8217;\u0131n makine \u00f6\u011frenimi alan\u0131ndaki pop\u00fclaritesi, \u00f6zellikle bilimsel hesaplama ve veri analizi i\u00e7in geli\u015ftirilmi\u015f g\u00fc\u00e7l\u00fc k\u00fct\u00fcphanelerinden kaynaklanmaktad\u0131r. NumPy, veri \u00fczerinde say\u0131sal i\u015flemler i\u00e7in temel sa\u011flar; Pandas, veri manip\u00fclasyonu ve analizi i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar; Matplotlib ve Seaborn ise veri g\u00f6rselle\u015ftirme konusunda vazge\u00e7ilmezdir. Scikit-learn, bu k\u00fct\u00fcphanelerin \u00fczerine in\u015fa edilmi\u015f, makine \u00f6\u011frenimi algoritmalar\u0131 i\u00e7in kapsaml\u0131 ve kullan\u0131m\u0131 kolay bir k\u00fct\u00fcphanedir.<\/p>\n<p>Scikit-learn (genellikle <code>sklearn<\/code> olarak adland\u0131r\u0131l\u0131r), makine \u00f6\u011frenimi modellerini olu\u015fturmak, e\u011fitmek ve de\u011ferlendirmek i\u00e7in basit ve tutarl\u0131 bir aray\u00fcz sunar. Ba\u015flang\u0131\u00e7 seviyesindeki kullan\u0131c\u0131lar i\u00e7in ideal olmas\u0131n\u0131n ba\u015fl\u0131ca nedenleri \u015funlard\u0131r:<\/p>\n<p>*   <strong>Tutarl\u0131 API:<\/strong> T\u00fcm algoritmalar benzer bir <code>fit()<\/code>, <code>predict()<\/code>, <code>transform()<\/code> aray\u00fcz\u00fcn\u00fc takip eder, bu da farkl\u0131 modeller aras\u0131nda ge\u00e7i\u015f yapmay\u0131 kolayla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>Geni\u015f Algoritma Yelpazesi:<\/strong> S\u0131n\u0131fland\u0131rma, regresyon, k\u00fcmeleme, boyut azaltma ve model se\u00e7imi gibi makine \u00f6\u011frenimi g\u00f6revleri i\u00e7in y\u00fczlerce algoritma i\u00e7erir.<br \/>\n*   <strong>Performans:<\/strong> \u00c7o\u011fu algoritma, verimli NumPy ve SciPy kod tabanlar\u0131 \u00fczerine in\u015fa edilmi\u015ftir, bu da iyi performans sa\u011flar.<br \/>\n*   <strong>A\u00e7\u0131k Kaynak ve Topluluk Deste\u011fi:<\/strong> Geni\u015f bir geli\u015ftirici ve kullan\u0131c\u0131 toplulu\u011fu taraf\u0131ndan desteklenir, s\u00fcrekli g\u00fcncellenir ve belgelendirmesi m\u00fckemmeldir.<br \/>\n*   <strong>E\u011fitim ve Test Veri Setleri:<\/strong> \u00d6rnek veri setleri ve veri \u00f6n i\u015fleme ara\u00e7lar\u0131 ile birlikte gelir, bu da \u00f6\u011frenmeyi ve deney yapmay\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Bu rehberde, Scikit-learn&#8217;\u00fcn temel kavramlar\u0131n\u0131, kurulumunu, ana API&#8217;sini ve yayg\u0131n makine \u00f6\u011frenimi g\u00f6revlerinde nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h3>Scikit-learn&#8217;\u00fc Kurulumu ve Ortam Ayarlar\u0131<\/h3>\n<p>Scikit-learn&#8217;\u00fc kullanmaya ba\u015flamadan \u00f6nce, Python ve gerekli ba\u011f\u0131ml\u0131l\u0131klar\u0131 sisteminize kurman\u0131z gerekir. En kolay yol, Anaconda veya Miniconda gibi bir Python da\u011f\u0131t\u0131m\u0131 kullanmakt\u0131r. Bu da\u011f\u0131t\u0131mlar, Scikit-learn&#8217;\u00fcn yan\u0131 s\u0131ra NumPy, SciPy, Pandas ve Matplotlib gibi temel veri bilimi k\u00fct\u00fcphanelerini \u00f6nceden y\u00fcklenmi\u015f olarak getirir.<\/p>\n<p><strong>Anaconda\/Miniconda Kurulumu:<\/strong><br \/>\nResmi web sitesinden (anaconda.com veya docs.conda.io\/en\/latest\/miniconda.html) i\u015fletim sisteminize uygun s\u00fcr\u00fcm\u00fc indirip kurun.<\/p>\n<p><strong>Scikit-learn ve Di\u011fer K\u00fct\u00fcphanelerin Kurulumu (Conda ile):<\/strong><br \/>\nAnaconda Prompt (Windows) veya terminal (macOS\/Linux) a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">conda install scikit-learn pandas numpy matplotlib scipy<\/code><\/pre>\n<p>Bu komut, Scikit-learn ve onun temel ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 kuracakt\u0131r.<\/p>\n<p><strong>Scikit-learn ve Di\u011fer K\u00fct\u00fcphanelerin Kurulumu (Pip ile):<\/strong><br \/>\nE\u011fer sadece Python kuruluysa, <code>pip<\/code> paket y\u00f6neticisini kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">pip install scikit-learn pandas numpy matplotlib scipy<\/code><\/pre>\n<p>Kurulumun ba\u015far\u0131l\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in Python yorumlay\u0131c\u0131s\u0131n\u0131 a\u00e7\u0131p a\u015fa\u011f\u0131daki kodlar\u0131 \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-python\">import sklearn\nprint(sklearn.__version__)<\/code><\/pre>\n<p>E\u011fer bir s\u00fcr\u00fcm numaras\u0131 \u00e7\u0131kt\u0131s\u0131 al\u0131yorsan\u0131z, kurulum ba\u015far\u0131l\u0131 demektir.<\/p>\n<h3>Makine \u00d6\u011freniminin Temel Kavramlar\u0131<\/h3>\n<p>Scikit-learn&#8217;\u00fc etkili bir \u015fekilde kullanmak i\u00e7in, makine \u00f6\u011freniminin baz\u0131 temel kavramlar\u0131n\u0131 anlamak \u00f6nemlidir.<\/p>\n<h4>Denetimli \u00d6\u011frenme (Supervised Learning)<\/h4>\n<p>Denetimli \u00f6\u011frenme, hem girdi verileri (\u00f6zellikler) hem de kar\u015f\u0131l\u0131k gelen \u00e7\u0131kt\u0131 etiketleri (hedefler) ile e\u011fitilen modelleri ifade eder. Model, girdi ile \u00e7\u0131kt\u0131 aras\u0131ndaki ili\u015fkiyi \u00f6\u011frenir ve yeni, g\u00f6r\u00fcnmeyen girdiler i\u00e7in do\u011fru \u00e7\u0131kt\u0131lar\u0131 tahmin etmeye \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>*   <strong>S\u0131n\u0131fland\u0131rma (Classification):<\/strong> \u00c7\u0131kt\u0131 de\u011fi\u015fkeninin kategorik oldu\u011fu durumlarda kullan\u0131l\u0131r. Model, bir girdiyi belirli bir s\u0131n\u0131fa atar.<br \/>\n    <em>   <\/em>\u00d6rnekler:* E-postan\u0131n spam olup olmad\u0131\u011f\u0131n\u0131 belirlemek (spam\/de\u011fil), bir g\u00f6r\u00fcnt\u00fcn\u00fcn kedi mi k\u00f6pek mi oldu\u011funu tan\u0131mak (kedi\/k\u00f6pek), bir m\u00fc\u015fterinin \u00fcr\u00fcn\u00fc sat\u0131n al\u0131p almayaca\u011f\u0131n\u0131 tahmin etmek (evet\/hay\u0131r).<br \/>\n    <em>   <\/em>Scikit-learn Algoritmalar\u0131:* <code>LogisticRegression<\/code>, <code>KNeighborsClassifier<\/code>, <code>SVC<\/code> (Support Vector Classifier), <code>DecisionTreeClassifier<\/code>, <code>RandomForestClassifier<\/code>.<br \/>\n*   <strong>Regresyon (Regression):<\/strong> \u00c7\u0131kt\u0131 de\u011fi\u015fkeninin s\u00fcrekli say\u0131sal bir de\u011fer oldu\u011fu durumlarda kullan\u0131l\u0131r. Model, girdi \u00f6zelliklerine dayanarak s\u00fcrekli bir de\u011fer tahmin eder.<br \/>\n    <em>   <\/em>\u00d6rnekler:* Ev fiyatlar\u0131n\u0131 tahmin etmek, hisse senedi fiyatlar\u0131n\u0131 tahmin etmek, bir ki\u015finin ya\u015f\u0131n\u0131 tahmin etmek.<br \/>\n    <em>   <\/em>Scikit-learn Algoritmalar\u0131:* <code>LinearRegression<\/code>, <code>Ridge<\/code>, <code>Lasso<\/code>, <code>SVR<\/code> (Support Vector Regressor), <code>DecisionTreeRegressor<\/code>, <code>RandomForestRegressor<\/code>.<\/p>\n<h4>Denetimsiz \u00d6\u011frenme (Unsupervised Learning)<\/h4>\n<p>Denetimsiz \u00f6\u011frenme, yaln\u0131zca girdi verileriyle e\u011fitilen modelleri ifade eder. Bu durumda, \u00e7\u0131kt\u0131 etiketleri yoktur. Modelin amac\u0131, verilerdeki gizli yap\u0131lar\u0131, desenleri veya ili\u015fkileri kendi ba\u015f\u0131na ke\u015ffetmektir.<\/p>\n<p>*   <strong>K\u00fcmeleme (Clustering):<\/strong> Veri noktalar\u0131n\u0131 benzerliklerine g\u00f6re gruplara ay\u0131r\u0131r. Her grup (k\u00fcme) i\u00e7indeki noktalar birbirine benzerken, farkl\u0131 k\u00fcmelerdeki noktalar birbirinden farkl\u0131d\u0131r.<br \/>\n    <em>   <\/em>\u00d6rnekler:* M\u00fc\u015fteri segmentasyonu, genetik veri analizi, sosyal a\u011f analizi.<br \/>\n    <em>   <\/em>Scikit-learn Algoritmlar\u0131:* <code>KMeans<\/code>, <code>DBSCAN<\/code>, <code>AgglomerativeClustering<\/code>.<br \/>\n*   <strong>Boyut Azaltma (Dimensionality Reduction):<\/strong> Y\u00fcksek boyutlu verileri (\u00e7ok say\u0131da \u00f6zellik i\u00e7eren) daha az boyutlu bir temsiline d\u00f6n\u00fc\u015ft\u00fcr\u00fcrken, verinin \u00f6nemli bilgilerini korumaya \u00e7al\u0131\u015f\u0131r. Bu, g\u00f6rselle\u015ftirmeyi kolayla\u015ft\u0131r\u0131r, depolama alan\u0131n\u0131 azalt\u0131r ve baz\u0131 algoritmalar\u0131n performans\u0131n\u0131 art\u0131rabilir.<br \/>\n    <em>   <\/em>\u00d6rnekler:* G\u00f6rselle\u015ftirme i\u00e7in verileri 2D veya 3D&#8217;ye indirgeme, g\u00fcr\u00fclt\u00fcy\u00fc azaltma.<br \/>\n    <em>   <\/em>Scikit-learn Algoritmalar\u0131:* <code>PCA<\/code> (Principal Component Analysis), <code>TSNE<\/code> (t-Distributed Stochastic Neighbor Embedding).<\/p>\n<h4>Di\u011fer Temel Kavramlar<\/h4>\n<p>*   <strong>\u00d6zellikler (Features):<\/strong> Bir veri noktas\u0131n\u0131 tan\u0131mlayan girdi de\u011fi\u015fkenleri. Genellikle <code>X<\/code> matrisi olarak g\u00f6sterilir.<br \/>\n*   <strong>Hedef (Target):<\/strong> Modelin tahmin etmeye \u00e7al\u0131\u015ft\u0131\u011f\u0131 \u00e7\u0131kt\u0131 de\u011fi\u015fkeni. Genellikle <code>y<\/code> vekt\u00f6r\u00fc olarak g\u00f6sterilir.<br \/>\n*   <strong>E\u011fitim Verisi (Training Data):<\/strong> Modelin \u00f6\u011frenmek i\u00e7in kulland\u0131\u011f\u0131 veri seti.<br \/>\n*   <strong>Test Verisi (Test Data):<\/strong> Modelin performans\u0131n\u0131 de\u011ferlendirmek i\u00e7in kullan\u0131lan, e\u011fitim s\u00fcrecinde hi\u00e7 g\u00f6rmedi\u011fi veri seti.<br \/>\n*   <strong>A\u015f\u0131r\u0131 Uyum (Overfitting):<\/strong> Modelin e\u011fitim verisine \u00e7ok iyi uyum sa\u011flamas\u0131 ancak yeni, g\u00f6r\u00fcnmeyen verilere genelleme yapamamas\u0131 durumu.<br \/>\n*   <strong>Yetersiz Uyum (Underfitting):<\/strong> Modelin e\u011fitim verisindeki temel desenleri bile \u00f6\u011frenememesi durumu, hem e\u011fitim hem de test verisinde k\u00f6t\u00fc performans g\u00f6sterir.<\/p>\n<h3>Scikit-learn&#8217;\u00fcn API&#8217;si: Be\u015f Ad\u0131m<\/h3>\n<p>Scikit-learn&#8217;de bir makine \u00f6\u011frenimi modelini kullanman\u0131n tutarl\u0131 bir be\u015f ad\u0131ml\u0131k s\u00fcreci vard\u0131r. Bu s\u00fcre\u00e7, farkl\u0131 algoritmalar ve g\u00f6revler aras\u0131nda b\u00fcy\u00fck \u00f6l\u00e7\u00fcde ayn\u0131 kal\u0131r.<\/p>\n<h4>1. Veri Y\u00fckleme ve Haz\u0131rlama<\/h4>\n<p>Makine \u00f6\u011frenimi projelerinin ilk ad\u0131m\u0131, verileri y\u00fcklemek ve modeli e\u011fitmeye uygun bir formata getirmektir. Scikit-learn, genellikle \u00f6zellik matrisi <code>X<\/code> (iki boyutlu bir NumPy dizisi veya Pandas DataFrame) ve hedef vekt\u00f6r\u00fc <code>y<\/code> (tek boyutlu bir NumPy dizisi veya Pandas Serisi) bekler.<\/p>\n<pre><code class=\"language-python\">import pandas as pd\nfrom sklearn.datasets import load_iris\n\n<h2>\u00d6rnek: Iris veri setini y\u00fckleme<\/h2>\niris = load_iris()\nX = iris.data  # \u00d6zellikler (sepal length, sepal width, petal length, petal width)\ny = iris.target # Hedef (\u00e7i\u00e7ek t\u00fcr\u00fc: setosa, versicolor, virginica)\n\n<h2>Veya bir CSV dosyas\u0131ndan y\u00fckleme<\/h2>\n<h2>data = pd.read_csv('your_data.csv')<\/h2>\n<h2>X = data.drop('target_column', axis=1)<\/h2>\n<h2>y = data['target_column']<\/code><\/pre>\n<\/h2>\n<p>Veri setini e\u011fitim ve test k\u00fcmelerine ay\u0131rmak, modelin genelleme yetene\u011fini de\u011ferlendirmek i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<pre><code class=\"language-python\">from sklearn.model_selection import train_test_split\n\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n<h2>test_size: Test k\u00fcmesi i\u00e7in ayr\u0131lacak verinin oran\u0131 (\u00f6rne\u011fin %20)<\/h2>\n<h2>random_state: Sonu\u00e7lar\u0131n tekrarlanabilirli\u011fini sa\u011flar<\/code><\/pre>\n<\/h2>\n<h4>2. Model Se\u00e7imi<\/h4>\n<p>Yapmak istedi\u011finiz makine \u00f6\u011frenimi g\u00f6revine (s\u0131n\u0131fland\u0131rma, regresyon, k\u00fcmeleme vb.) ve veri setinizin \u00f6zelliklerine g\u00f6re uygun bir model se\u00e7melisiniz. Scikit-learn&#8217;de her model bir &#8220;tahminci&#8221; (estimator) olarak adland\u0131r\u0131l\u0131r.<\/p>\n<pre><code class=\"language-python\">from sklearn.neighbors import KNeighborsClassifier # S\u0131n\u0131fland\u0131rma i\u00e7in\n<h2>from sklearn.linear_model import LinearRegression # Regresyon i\u00e7in<\/h2>\n<h2>from sklearn.cluster import KMeans # K\u00fcmeleme i\u00e7in<\/h2>\n\n<h2>Model nesnesini olu\u015fturma (hiperparametreler burada ayarlanabilir)<\/h2>\nmodel = KNeighborsClassifier(n_neighbors=3) # K-NN i\u00e7in kom\u015fu say\u0131s\u0131 3 olarak belirlendi<\/code><\/pre>\n<h4>3. Model E\u011fitimi (fit)<\/h4>\n<p>Model se\u00e7ildikten sonra, e\u011fitim verisi (<code>X_train<\/code>, <code>y_train<\/code>) kullan\u0131larak e\u011fitilir. Bu ad\u0131mda model, verilerdeki desenleri ve ili\u015fkileri \u00f6\u011frenir.<\/p>\n<pre><code class=\"language-python\">model.fit(X_train, y_train)\n<h2>fit() metodu, modelin e\u011fitim verisinden \u00f6\u011frenmesini sa\u011flar.<\/code><\/pre>\n<\/h2>\n<h4>4. Tahmin Yapma (predict)<\/h4>\n<p>E\u011fitilmi\u015f model, yeni, g\u00f6r\u00fcnmeyen veriler (<code>X_test<\/code>) \u00fczerinde tahminler yapmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-python\">y_pred = model.predict(X_test)\n<h2>predict() metodu, test verisi i\u00e7in tahminler \u00fcretir.<\/code><\/pre>\n<\/h2>\n<h4>5. Model De\u011ferlendirme<\/h4>\n<p>Modelin ne kadar iyi performans g\u00f6sterdi\u011fini anlamak i\u00e7in tahminler (<code>y_pred<\/code>) ger\u00e7ek de\u011ferlerle (<code>y_test<\/code>) kar\u015f\u0131la\u015ft\u0131r\u0131l\u0131r. De\u011ferlendirme metrikleri, g\u00f6rev t\u00fcr\u00fcne g\u00f6re de\u011fi\u015fir.<\/p>\n<p>*   <strong>S\u0131n\u0131fland\u0131rma Metrikleri:<\/strong><br \/>\n    *   <code>accuracy_score<\/code>: Do\u011fru tahminlerin oran\u0131.<br \/>\n    *   <code>precision_score<\/code>, <code>recall_score<\/code>, <code>f1_score<\/code>: S\u0131n\u0131f dengesizli\u011fi olan durumlar i\u00e7in daha bilgilendirici olabilir.<br \/>\n    *   <code>confusion_matrix<\/code>: Modelin hangi s\u0131n\u0131flar\u0131 do\u011fru\/yanl\u0131\u015f tahmin etti\u011fini g\u00f6sterir.<br \/>\n*   <strong>Regresyon Metrikleri:<\/strong><br \/>\n    *   <code>mean_squared_error<\/code> (MSE): Tahminler ile ger\u00e7ek de\u011ferler aras\u0131ndaki kare farklar\u0131n\u0131n ortalamas\u0131.<br \/>\n    *   <code>r2_score<\/code>: Modelin ba\u011f\u0131ml\u0131 de\u011fi\u015fkendeki varyans\u0131 ne kadar iyi a\u00e7\u0131klad\u0131\u011f\u0131n\u0131 g\u00f6sterir (0 ile 1 aras\u0131).<\/p>\n<pre><code class=\"language-python\">from sklearn.metrics import accuracy_score, confusion_matrix, classification_report\n\naccuracy = accuracy_score(y_test, y_pred)\nprint(f\"Model Do\u011frulu\u011fu: {accuracy:.2f}\")\n\nconf_matrix = confusion_matrix(y_test, y_pred)\nprint(\"Karma\u015f\u0131kl\u0131k Matrisi:\\n\", conf_matrix)\n\nclass_report = classification_report(y_test, y_pred, target_names=iris.target_names)\nprint(\"S\u0131n\u0131fland\u0131rma Raporu:\\n\", class_report)<\/code><\/pre>\n<h3>Pratik \u00d6rnekler ile Scikit-learn<\/h3>\n<p>Yukar\u0131daki be\u015f ad\u0131m\u0131 kullanarak farkl\u0131 makine \u00f6\u011frenimi g\u00f6revlerini nas\u0131l ger\u00e7ekle\u015ftirebilece\u011fimize dair \u00f6rnekler inceleyelim.<\/p>\n<h4>S\u0131n\u0131fland\u0131rma \u00d6rne\u011fi: Iris Veri Seti ile K-En Yak\u0131n Kom\u015fu (K-NN)<\/h4>\n<p>Iris veri seti, Scikit-learn ile s\u0131n\u0131fland\u0131rma algoritmalar\u0131n\u0131 \u00f6\u011frenmek i\u00e7in klasik bir \u00f6rnektir.<\/p>\n<pre><code class=\"language-python\">from sklearn.datasets import load_iris\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.metrics import accuracy_score, classification_report\n\n<h2>1. Veri Y\u00fckleme ve Haz\u0131rlama<\/h2>\niris = load_iris()\nX = iris.data\ny = iris.target\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)\n\n<h2>2. Model Se\u00e7imi<\/h2>\nknn = KNeighborsClassifier(n_neighbors=5) # 5 kom\u015fu ile K-NN s\u0131n\u0131fland\u0131r\u0131c\u0131\n\n<h2>3. Model E\u011fitimi<\/h2>\nknn.fit(X_train, y_train)\n\n<h2>4. Tahmin Yapma<\/h2>\ny_pred = knn.predict(X_test)\n\n<h2>5. Model De\u011ferlendirme<\/h2>\nprint(\"K-NN S\u0131n\u0131fland\u0131rma Sonu\u00e7lar\u0131:\")\nprint(f\"Do\u011fruluk: {accuracy_score(y_test, y_pred):.2f}\")\nprint(\"S\u0131n\u0131fland\u0131rma Raporu:\\n\", classification_report(y_test, y_pred, target_names=iris.target_names))<\/code><\/pre>\n<p>Bu \u00f6rnekte, K-NN algoritmas\u0131 \u00e7i\u00e7eklerin sepal ve petal \u00f6l\u00e7\u00fclerine g\u00f6re hangi Iris t\u00fcr\u00fcne ait oldu\u011funu tahmin etmek i\u00e7in kullan\u0131ld\u0131.<\/p>\n<h4>Regresyon \u00d6rne\u011fi: Basit Do\u011frusal Regresyon<\/h4>\n<p>Sentetik veri kullanarak basit bir do\u011frusal regresyon modeli olu\u015ftural\u0131m.<\/p>\n<pre><code class=\"language-python\">import numpy as np\nfrom sklearn.linear_model import LinearRegression\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import mean_squared_error, r2_score\nimport matplotlib.pyplot as plt\n\n<h2>1. Veri Y\u00fckleme ve Haz\u0131rlama (Sentetik Veri Olu\u015fturma)<\/h2>\nnp.random.seed(0)\nX = 2 * np.random.rand(100, 1) # 100 rastgele say\u0131dan olu\u015fan \u00f6zellik\ny = 4 + 3 <em> X + np.random.randn(100, 1) # Hedef = 4 + 3<\/em>X + g\u00fcr\u00fclt\u00fc\n\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n\n<h2>2. Model Se\u00e7imi<\/h2>\nlin_reg = LinearRegression()\n\n<h2>3. Model E\u011fitimi<\/h2>\nlin_reg.fit(X_train, y_train)\n\n<h2>4. Tahmin Yapma<\/h2>\ny_pred = lin_reg.predict(X_test)\n\n<h2>5. Model De\u011ferlendirme<\/h2>\nprint(\"Do\u011frusal Regresyon Sonu\u00e7lar\u0131:\")\nprint(f\"Ortalama Kare Hata (MSE): {mean_squared_error(y_test, y_pred):.2f}\")\nprint(f\"R-kare (R2): {r2_score(y_test, y_pred):.2f}\")\nprint(f\"Model Katsay\u0131s\u0131 (E\u011fim): {lin_reg.coef_[0][0]:.2f}\")\nprint(f\"Model Kesme Noktas\u0131 (Y-eksenini Kesti\u011fi Nokta): {lin_reg.intercept_[0]:.2f}\")\n\n<h2>Sonu\u00e7lar\u0131 g\u00f6rselle\u015ftirme<\/h2>\nplt.scatter(X_test, y_test, label='Ger\u00e7ek De\u011ferler')\nplt.plot(X_test, y_pred, color='red', label='Tahminler')\nplt.xlabel('X')\nplt.ylabel('y')\nplt.title('Do\u011frusal Regresyon')\nplt.legend()\nplt.show()<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>LinearRegression<\/code> modeli, <code>X<\/code> \u00f6zelliklerinden <code>y<\/code> hedefini tahmin etmek i\u00e7in e\u011fitildi ve sonu\u00e7lar MSE ve R-kare metrikleri ile de\u011ferlendirildi.<\/p>\n<h4>K\u00fcmeleme \u00d6rne\u011fi: K-Means<\/h4>\n<p><code>make_blobs<\/code> fonksiyonu ile sentetik k\u00fcmeleme verileri olu\u015fturup K-Means algoritmas\u0131n\u0131 uygulayal\u0131m.<\/p>\n<pre><code class=\"language-python\">from sklearn.cluster import KMeans\nfrom sklearn.datasets import make_blobs\nimport matplotlib.pyplot as plt\n\n<h2>1. Veri Y\u00fckleme ve Haz\u0131rlama (Sentetik Veri Olu\u015fturma)<\/h2>\nX, y_true = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)\n<h2>n_samples: Veri noktas\u0131 say\u0131s\u0131<\/h2>\n<h2>centers: K\u00fcme say\u0131s\u0131<\/h2>\n<h2>cluster_std: K\u00fcmelerin standart sapmas\u0131 (da\u011f\u0131l\u0131m\u0131)<\/h2>\n\n<h2>2. Model Se\u00e7imi<\/h2>\nkmeans = KMeans(n_clusters=4, random_state=0, n_init=10) # 4 k\u00fcme ar\u0131yoruz, n_init=10 tavsiye edilir\n\n<h2>3. Model E\u011fitimi (Denetimsiz \u00f6\u011frenmede y_train yoktur)<\/h2>\nkmeans.fit(X)\n\n<h2>4. Tahmin Yapma (K\u00fcme atamalar\u0131)<\/h2>\ny_kmeans = kmeans.predict(X)\n\n<h2>5. Model De\u011ferlendirme (G\u00f6rselle\u015ftirme ile)<\/h2>\nplt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')\ncenters = kmeans.cluster_centers_\nplt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5, label='Merkezler')\nplt.title('K-Means K\u00fcmeleme')\nplt.xlabel('\u00d6zellik 1')\nplt.ylabel('\u00d6zellik 2')\nplt.legend()\nplt.show()<\/code><\/pre>\n<p>K-Means, veri noktalar\u0131n\u0131 4 farkl\u0131 k\u00fcmeye ay\u0131rd\u0131 ve her k\u00fcmenin merkezini (centroid) belirledi.<\/p>\n<h3>Veri \u00d6n \u0130\u015fleme ve \u00d6zellik M\u00fchendisli\u011fi<\/h3>\n<p>Ger\u00e7ek d\u00fcnya verileri nadiren temiz ve modele do\u011frudan beslenmeye uygundur. Scikit-learn, veri \u00f6n i\u015fleme (preprocessing) ve \u00f6zellik m\u00fchendisli\u011fi (feature engineering) i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar.<\/p>\n<h4>Veri \u00d6l\u00e7ekleme (Data Scaling)<\/h4>\n<p>Bir\u00e7ok makine \u00f6\u011frenimi algoritmas\u0131 (\u00f6zellikle mesafe tabanl\u0131 olanlar gibi K-NN, SVM, sinir a\u011flar\u0131), \u00f6zelliklerin farkl\u0131 \u00f6l\u00e7eklerde olmas\u0131 durumunda k\u00f6t\u00fc performans g\u00f6sterebilir. \u00d6l\u00e7ekleme, t\u00fcm \u00f6zelliklerin benzer bir aral\u0131\u011fa getirilmesini sa\u011flar.<\/p>\n<p>*   <code>StandardScaler<\/code>: \u00d6zellikleri ortalamas\u0131 0 ve standart sapmas\u0131 1 olacak \u015fekilde \u00f6l\u00e7ekler (standardizasyon).<br \/>\n*   <code>MinMaxScaler<\/code>: \u00d6zellikleri belirli bir aral\u0131\u011fa (genellikle 0 ile 1 aras\u0131na) \u00f6l\u00e7ekler (normalizasyon).<\/p>\n<pre><code class=\"language-python\">from sklearn.preprocessing import StandardScaler, MinMaxScaler\nfrom sklearn.datasets import load_breast_cancer\nfrom sklearn.model_selection import train_test_split\n\ndata = load_breast_cancer()\nX, y = data.data, data.target\nX_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)\n\n<h2>StandardScaler \u00f6rne\u011fi<\/h2>\nscaler = StandardScaler()\nX_train_scaled = scaler.fit_transform(X_train)\nX_test_scaled = scaler.transform(X_test) # Test setini e\u011fitim setinin scaler'\u0131 ile d\u00f6n\u00fc\u015ft\u00fcr\u00fcyoruz\nprint(\"\u00d6l\u00e7eklenmi\u015f veri \u00f6rne\u011fi (StandardScaler):\", X_train_scaled[0, :5])\n\n<h2>MinMaxScaler \u00f6rne\u011fi<\/h2>\nminmax_scaler = MinMaxScaler()\nX_train_minmax = minmax_scaler.fit_transform(X_train)\nX_test_minmax = minmax_scaler.transform(X_test)\nprint(\"\u00d6l\u00e7eklenmi\u015f veri \u00f6rne\u011fi (MinMaxScaler):\", X_train_minmax[0, :5])<\/code><\/pre>\n<h4>Kategorik Veri \u0130\u015fleme<\/h4>\n<p>Makine \u00f6\u011frenimi algoritmalar\u0131 genellikle say\u0131sal verilerle \u00e7al\u0131\u015f\u0131r. Kategorik verileri (\u00f6rne\u011fin, &#8220;k\u0131rm\u0131z\u0131&#8221;, &#8220;mavi&#8221;, &#8220;ye\u015fil&#8221;) say\u0131sal formata d\u00f6n\u00fc\u015ft\u00fcrmek gerekir.<\/p>\n<p>*   <code>LabelEncoder<\/code>: Kategorik etiketleri 0&#8217;dan ba\u015flayarak ard\u0131\u015f\u0131k tam say\u0131lara d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. Hedef de\u011fi\u015fken (<code>y<\/code>) i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<br \/>\n*   <code>OneHotEncoder<\/code>: Kategorik \u00f6zellikleri &#8220;one-hot&#8221; kodlamaya d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. Her kategori i\u00e7in yeni bir ikili \u00f6zellik (0 veya 1) olu\u015fturur. \u00d6zellik matrisi (<code>X<\/code>) i\u00e7in tercih edilir.<\/p>\n<pre><code class=\"language-python\">from sklearn.preprocessing import LabelEncoder, OneHotEncoder\nimport numpy as np\n\n<h2>LabelEncoder \u00f6rne\u011fi (Hedef i\u00e7in)<\/h2>\ndata = ['k\u0131rm\u0131z\u0131', 'mavi', 'ye\u015fil', 'k\u0131rm\u0131z\u0131']\nle = LabelEncoder()\nencoded_labels = le.fit_transform(data)\nprint(\"LabelEncoder sonu\u00e7lar\u0131:\", encoded_labels) # [0 1 2 0]\nprint(\"Orijinal etiketler:\", le.inverse_transform(encoded_labels))\n\n<h2>OneHotEncoder \u00f6rne\u011fi (\u00d6zellikler i\u00e7in)<\/h2>\ncategories = np.array([['tek', 'kare'], ['\u00e7ift', 'daire'], ['tek', '\u00fc\u00e7gen'], ['\u00e7ift', 'kare']])\nohe = OneHotEncoder(handle_unknown='ignore', sparse_output=False) # sparse_output=False ile dense array d\u00f6ner\nencoded_features = ohe.fit_transform(categories)\nprint(\"OneHotEncoder sonu\u00e7lar\u0131:\\n\", encoded_features)<\/code><\/pre>\n<h4>Eksik Veri \u0130\u015fleme<\/h4>\n<p>Ger\u00e7ek d\u00fcnya veri setlerinde eksik de\u011ferler (<code>NaN<\/code>) yayg\u0131nd\u0131r. Scikit-learn, bu eksik de\u011ferleri doldurmak (imputation) i\u00e7in <code>SimpleImputer<\/code> sa\u011flar.<\/p>\n<pre><code class=\"language-python\">from sklearn.impute import SimpleImputer\nimport numpy as np\n\ndata = np.array([[1, 2], [np.nan, 3], [7, 6], [np.nan, 8]])\n\n<h2>Ortalama ile doldurma<\/h2>\nimputer_mean = SimpleImputer(strategy='mean')\nimputed_data_mean = imputer_mean.fit_transform(data)\nprint(\"Ortalama ile doldurulan:\\n\", imputed_data_mean)\n\n<h2>Medyan ile doldurma<\/h2>\nimputer_median = SimpleImputer(strategy='median')\nimputed_data_median = imputer_median.fit_transform(data)\nprint(\"Medyan ile doldurulan:\\n\", imputed_data_median)\n\n<h2>En s\u0131k g\u00f6r\u00fclen de\u011fer ile doldurma<\/h2>\nimputer_most_frequent = SimpleImputer(strategy='most_frequent')\nimputed_data_most_frequent = imputer_most_frequent.fit_transform(data)\nprint(\"En s\u0131k g\u00f6r\u00fclen ile doldurulan:\\n\", imputed_data_most_frequent)<\/code><\/pre>\n<h3>Model Se\u00e7imi ve Hiperparametre Ayarlama<\/h3>\n<p>Bir modelin performans\u0131n\u0131 optimize etmek i\u00e7in do\u011fru modeli se\u00e7mek ve hiperparametrelerini ayarlamak \u00f6nemlidir.<\/p>\n<h4>\u00c7apraz Do\u011frulama (Cross-Validation)<\/h4>\n<p>Modelin genelleme yetene\u011fini daha g\u00fcvenilir bir \u015fekilde de\u011ferlendirmek i\u00e7in \u00e7apraz do\u011frulama kullan\u0131l\u0131r. Veri setini birden \u00e7ok e\u011fitim\/test kat\u0131na (fold) b\u00f6ler ve her katta modeli e\u011fitip test eder.<\/p>\n<pre><code class=\"language-python\">from sklearn.model_selection import cross_val_score\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.datasets import load_iris\n\niris = load_iris()\nX, y = iris.data, iris.target\n\nlog_reg = LogisticRegression(max_iter=200) # Yak\u0131nsama i\u00e7in max_iter art\u0131r\u0131ld\u0131\n\n<h2>5 katl\u0131 \u00e7apraz do\u011frulama ile do\u011fruluk puanlar\u0131n\u0131 hesapla<\/h2>\nscores = cross_val_score(log_reg, X, y, cv=5)\nprint(\"Her bir kat i\u00e7in do\u011fruluk puanlar\u0131:\", scores)\nprint(f\"Ortalama do\u011fruluk: {scores.mean():.2f} (+\/- {scores.std() * 2:.2f})\")<\/code><\/pre>\n<p><code>cross_val_score<\/code> ile modelin farkl\u0131 veri alt k\u00fcmelerinde nas\u0131l performans g\u00f6sterdi\u011fini g\u00f6rebiliriz.<\/p>\n<h4>Hiperparametre Optimizasyonu<\/h4>\n<p>Hiperparametreler, modelin \u00f6\u011frenme s\u00fcrecini kontrol eden parametrelerdir (\u00f6rne\u011fin, K-NN&#8217;deki <code>n_neighbors<\/code> veya Lojistik Regresyon&#8217;daki <code>C<\/code>). En iyi hiperparametre kombinasyonunu bulmak i\u00e7in arama stratejileri kullan\u0131l\u0131r.<\/p>\n<p>*   <code>GridSearchCV<\/code>: Belirtilen hiperparametreler \u0131zgaras\u0131ndaki t\u00fcm olas\u0131 kombinasyonlar\u0131 dener ve \u00e7apraz do\u011frulama kullanarak en iyisini bulur.<br \/>\n*   <code>RandomizedSearchCV<\/code>: Belirtilen bir da\u011f\u0131l\u0131mdan rastgele hiperparametre kombinasyonlar\u0131 dener, daha b\u00fcy\u00fck arama alanlar\u0131 i\u00e7in daha verimli olabilir.<\/p>\n<pre><code class=\"language-python\">from sklearn.model_selection import GridSearchCV\nfrom sklearn.svm import SVC\nfrom sklearn.datasets import load_iris\n\niris = load_iris()\nX, y = iris.data, iris.target\n\n<h2>SVM modeli i\u00e7in hiperparametre \u0131zgaras\u0131<\/h2>\nparam_grid = {\n    'C': [0.1, 1, 10, 100],\n    'gamma': [1, 0.1, 0.01, 0.001],\n    'kernel': ['rbf', 'linear']\n}\n\ngrid_search = GridSearchCV(SVC(), param_grid, refit=True, verbose=2, cv=5)\ngrid_search.fit(X, y)\n\nprint(\"En iyi parametreler:\", grid_search.best_params_)\nprint(f\"En iyi \u00e7apraz do\u011frulama skoru: {grid_search.best_score_:.2f}\")\n\n<h2>En iyi model ile tahmin yapma<\/h2>\nbest_model = grid_search.best_estimator_\n<h2>y_pred = best_model.predict(X_test)<\/code><\/pre>\n<\/h2>\n<p><code>GridSearchCV<\/code>, her bir parametre kombinasyonunu test ederek en iyi performans\u0131 veren modeli bulur.<\/p>\n<h3>Pipeline ve \u0130\u015f Ak\u0131\u015f\u0131<\/h3>\n<p>Veri \u00f6n i\u015fleme ad\u0131mlar\u0131 ve model e\u011fitimi genellikle s\u0131ral\u0131 bir i\u015f ak\u0131\u015f\u0131 olu\u015fturur. Scikit-learn&#8217;\u00fcn <code>Pipeline<\/code> \u00f6zelli\u011fi, bu ad\u0131mlar\u0131 tek bir nesnede birle\u015ftirerek kodun daha d\u00fczenli ve hataya daha az a\u00e7\u0131k olmas\u0131n\u0131 sa\u011flar. Ayr\u0131ca, veri s\u0131z\u0131nt\u0131s\u0131n\u0131 (data leakage) \u00f6nlemeye yard\u0131mc\u0131 olur.<\/p>\n<pre><code class=\"language-python\">from sklearn.pipeline import Pipeline\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.datasets import load_breast_cancer\nfrom sklearn.metrics import accuracy_score\n\ndata = load_breast_cancer()\nX, y = data.data, data.target\nX_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)\n\n<h2>\u00d6l\u00e7ekleme ve Lojistik Regresyonu birle\u015ftiren bir pipeline olu\u015fturma<\/h2>\npipeline = Pipeline([\n    ('scaler', StandardScaler()),       # \u0130lk ad\u0131m: Veri \u00f6l\u00e7ekleme\n    ('log_reg', LogisticRegression(max_iter=500)) # \u0130kinci ad\u0131m: Lojistik Regresyon modeli\n])\n\n<h2>Pipeline'\u0131 e\u011fitme (hem \u00f6l\u00e7ekleme hem de model e\u011fitimi tek ad\u0131mda ger\u00e7ekle\u015fir)<\/h2>\npipeline.fit(X_train, y_train)\n\n<h2>Tahmin yapma<\/h2>\ny_pred = pipeline.predict(X_test)\n\n<h2>Model de\u011ferlendirme<\/h2>\nprint(f\"Pipeline ile Model Do\u011frulu\u011fu: {accuracy_score(y_test, y_pred):.2f}\")<\/code><\/pre>\n<p><code>Pipeline<\/code> kullan\u0131m\u0131, \u00f6zellikle <code>GridSearchCV<\/code> veya <code>RandomizedSearchCV<\/code> ile birlikte hiperparametre ayarlamas\u0131 yaparken \u00e7ok g\u00fc\u00e7l\u00fcd\u00fcr, \u00e7\u00fcnk\u00fc \u00f6n i\u015fleme ad\u0131mlar\u0131n\u0131 da parametre ayarlama s\u00fcrecine dahil edebilir.<\/p>\n<h3>\u0130leri D\u00fczey Konulara K\u0131sa Bir Bak\u0131\u015f<\/h3>\n<p>Bu rehber, Scikit-learn&#8217;e bir ba\u015flang\u0131\u00e7 niteli\u011findedir. K\u00fct\u00fcphane, daha bir\u00e7ok geli\u015fmi\u015f \u00f6zellik ve algoritma sunar:<\/p>\n<p>*   <strong>Topluluk \u00d6\u011frenme (Ensemble Methods):<\/strong> Birden fazla modelin birle\u015ftirilmesiyle daha g\u00fc\u00e7l\u00fc tahminler elde edilir. <code>RandomForestClassifier<\/code>, <code>GradientBoostingClassifier<\/code>, <code>AdaBoostClassifier<\/code> gibi algoritmalar bu kategoriye girer.<br \/>\n*   <strong>Destek Vekt\u00f6r Makineleri (Support Vector Machines &#8211; SVM):<\/strong> Hem s\u0131n\u0131fland\u0131rma hem de regresyon i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc ve esnek modellerdir (<code>SVC<\/code>, <code>SVR<\/code>).<br \/>\n*   <strong>Boyut Azaltma Teknikleri:<\/strong> <code>PCA<\/code> (Temel Bile\u015fen Analizi) d\u0131\u015f\u0131nda, <code>TSNE<\/code> veya <code>UMAP<\/code> gibi g\u00f6rselle\u015ftirme ve boyut azaltma i\u00e7in kullan\u0131lan daha geli\u015fmi\u015f teknikler de mevcuttur.<br \/>\n*   <strong>Metin \u0130\u015fleme:<\/strong> <code>CountVectorizer<\/code>, <code>TfidfVectorizer<\/code> gibi ara\u00e7larla metin verilerini makine \u00f6\u011frenimi modelleri i\u00e7in uygun say\u0131sal formata d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz.<\/p>\n<h3>Ba\u015flang\u0131\u00e7 Seviyesi \u0130\u00e7in En \u0130yi Uygulamalar ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>Makine \u00f6\u011frenimi yolculu\u011funuzda ba\u015far\u0131l\u0131 olmak i\u00e7in baz\u0131 temel ipu\u00e7lar\u0131:<\/p>\n<p>1.  <strong>Basit Ba\u015flay\u0131n:<\/strong> Karma\u015f\u0131k modeller yerine basit algoritmalarla ba\u015flay\u0131n. Verilerinizi ve temel algoritmalar\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 anlay\u0131n.<br \/>\n2.  <strong>Verilerinizi Anlay\u0131n:<\/strong> Veri setinizi ke\u015ffetmek, eksik de\u011ferleri, ayk\u0131r\u0131 de\u011ferleri ve \u00f6zellikler aras\u0131ndaki ili\u015fkileri anlamak, ba\u015far\u0131l\u0131 bir model i\u00e7in temeldir.<br \/>\n3.  <strong>Her \u015eeyi G\u00f6rselle\u015ftirin:<\/strong> Veri da\u011f\u0131l\u0131mlar\u0131n\u0131, \u00f6zellikler aras\u0131ndaki ili\u015fkileri ve model sonu\u00e7lar\u0131n\u0131 g\u00f6rselle\u015ftirmek, anla\u015f\u0131l\u0131rl\u0131\u011f\u0131 art\u0131r\u0131r ve sorunlar\u0131 erken tespit etmenize yard\u0131mc\u0131 olur.<br \/>\n4.  <strong>A\u015f\u0131r\u0131 Uyumdan Ka\u00e7\u0131n\u0131n:<\/strong> Modelinizin e\u011fitim verisine ezber yapmamas\u0131n\u0131, yeni verilere genelleme yapabilmesini sa\u011flay\u0131n. \u00c7apraz do\u011frulama ve d\u00fczenlile\u015ftirme tekniklerini kullan\u0131n.<br \/>\n5.  <strong>Tekrar Edin ve Deney Yap\u0131n:<\/strong> Makine \u00f6\u011frenimi iteratif bir s\u00fcre\u00e7tir. Farkl\u0131 algoritmalar, \u00f6n i\u015fleme teknikleri ve hiperparametreler deneyerek en iyi modeli bulun.<br \/>\n6.  <strong>Belgelendirmeyi Okuyun:<\/strong> Scikit-learn&#8217;\u00fcn m\u00fckemmel belgelendirmesi, her algoritma ve arac\u0131n ayr\u0131nt\u0131lar\u0131n\u0131 \u00f6\u011frenmek i\u00e7in en iyi kaynakt\u0131r.<br \/>\n7.  <strong>Topluluklara Kat\u0131l\u0131n:<\/strong> Stack Overflow, Kaggle veya di\u011fer veri bilimi forumlar\u0131 gibi platformlarda sorular sorun, projeleri inceleyin ve di\u011ferlerinden \u00f6\u011frenin.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Scikit-learn, Python ekosisteminde makine \u00f6\u011frenimine ba\u015flamak i\u00e7in en eri\u015filebilir ve g\u00fc\u00e7l\u00fc k\u00fct\u00fcphanelerden biridir. Tutarl\u0131 API&#8217;si, geni\u015f algoritma yelpazesi ve kapsaml\u0131 belgelendirmesi sayesinde, veri bilimcileri ve geli\u015ftiriciler i\u00e7in vazge\u00e7ilmez bir ara\u00e7 haline gelmi\u015ftir. Bu rehber, Scikit-learn&#8217;\u00fcn temel prensiplerini, kurulumunu, ana API&#8217;sini ve pratik uygulamalar\u0131n\u0131 kapsayarak size sa\u011flam bir ba\u015flang\u0131\u00e7 noktas\u0131 sunmay\u0131 ama\u00e7lam\u0131\u015ft\u0131r.<\/p>\n<p>Makine \u00f6\u011frenimi yolculu\u011fu s\u00fcrekli bir \u00f6\u011frenme ve ke\u015fif s\u00fcrecidir. Temel bilgileri edindikten sonra, farkl\u0131 veri setleriyle deneyler yapmak, daha karma\u015f\u0131k algoritmalar\u0131 ke\u015ffetmek ve ger\u00e7ek d\u00fcnya problemlerine \u00e7\u00f6z\u00fcmler \u00fcretmek i\u00e7in Scikit-learn&#8217;\u00fc kullanmaya devam edin. Unutmay\u0131n, en iyi \u00f6\u011frenme, pratik yaparak ve hatalar\u0131n\u0131zdan ders \u00e7\u0131kararak ger\u00e7ekle\u015fir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi\nMakine \u00f6\u011frenimi (Machine Learning), g\u00fcn\u00fcm\u00fcz\u00fcn en h\u0131zl\u0131 geli\u015fen ve en etkil","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1403],"tags":[],"class_list":{"0":"post-38906","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-python","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi\" \/>\n<meta property=\"og:description\" content=\"Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi Makine \u00f6\u011frenimi (Machine Learning), g\u00fcn\u00fcm\u00fcz\u00fcn en h\u0131zl\u0131 geli\u015fen ve en etkil\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-10T09:40:50+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi\",\"datePublished\":\"2026-02-10T09:40:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/\"},\"wordCount\":2526,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Python\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/\",\"name\":\"Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-10T09:40:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi","og_description":"Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi Makine \u00f6\u011frenimi (Machine Learning), g\u00fcn\u00fcm\u00fcz\u00fcn en h\u0131zl\u0131 geli\u015fen ve en etkil","og_url":"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-10T09:40:50+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi","datePublished":"2026-02-10T09:40:50+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/"},"wordCount":2526,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Python"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/","name":"Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-10T09:40:50+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/scikit-learn-python-ile-makine-ogrenimine-baslangic-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Scikit-learn: Python ile Makine \u00d6\u011frenimine Ba\u015flang\u0131\u00e7 Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38906"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38906\/revisions"}],"predecessor-version":[{"id":38907,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38906\/revisions\/38907"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}