commited on
Commit
f64142c
·
verified ·
1 Parent(s): 244db61

Upload 7 files

Browse files
Game of Thrones – Karakterin Ölüp Ölmediğini Tahmin Etme (ML Sınıflandırma).ipynb ADDED
@@ -0,0 +1,460 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "id": "f3e15233-ef0f-42fd-8fee-bf045d0ed4cf",
7
+ "metadata": {},
8
+ "outputs": [
9
+ {
10
+ "name": "stdout",
11
+ "output_type": "stream",
12
+ "text": [
13
+ "(1946, 33)\n"
14
+ ]
15
+ },
16
+ {
17
+ "data": {
18
+ "text/html": [
19
+ "<div>\n",
20
+ "<style scoped>\n",
21
+ " .dataframe tbody tr th:only-of-type {\n",
22
+ " vertical-align: middle;\n",
23
+ " }\n",
24
+ "\n",
25
+ " .dataframe tbody tr th {\n",
26
+ " vertical-align: top;\n",
27
+ " }\n",
28
+ "\n",
29
+ " .dataframe thead th {\n",
30
+ " text-align: right;\n",
31
+ " }\n",
32
+ "</style>\n",
33
+ "<table border=\"1\" class=\"dataframe\">\n",
34
+ " <thead>\n",
35
+ " <tr style=\"text-align: right;\">\n",
36
+ " <th></th>\n",
37
+ " <th>S.No</th>\n",
38
+ " <th>actual</th>\n",
39
+ " <th>pred</th>\n",
40
+ " <th>alive</th>\n",
41
+ " <th>plod</th>\n",
42
+ " <th>name</th>\n",
43
+ " <th>title</th>\n",
44
+ " <th>male</th>\n",
45
+ " <th>culture</th>\n",
46
+ " <th>dateOfBirth</th>\n",
47
+ " <th>...</th>\n",
48
+ " <th>isAliveHeir</th>\n",
49
+ " <th>isAliveSpouse</th>\n",
50
+ " <th>isMarried</th>\n",
51
+ " <th>isNoble</th>\n",
52
+ " <th>age</th>\n",
53
+ " <th>numDeadRelations</th>\n",
54
+ " <th>boolDeadRelations</th>\n",
55
+ " <th>isPopular</th>\n",
56
+ " <th>popularity</th>\n",
57
+ " <th>isAlive</th>\n",
58
+ " </tr>\n",
59
+ " </thead>\n",
60
+ " <tbody>\n",
61
+ " <tr>\n",
62
+ " <th>0</th>\n",
63
+ " <td>1</td>\n",
64
+ " <td>0</td>\n",
65
+ " <td>0</td>\n",
66
+ " <td>0.054</td>\n",
67
+ " <td>0.946</td>\n",
68
+ " <td>Viserys II Targaryen</td>\n",
69
+ " <td>NaN</td>\n",
70
+ " <td>1</td>\n",
71
+ " <td>NaN</td>\n",
72
+ " <td>NaN</td>\n",
73
+ " <td>...</td>\n",
74
+ " <td>0.0</td>\n",
75
+ " <td>NaN</td>\n",
76
+ " <td>0</td>\n",
77
+ " <td>0</td>\n",
78
+ " <td>NaN</td>\n",
79
+ " <td>11</td>\n",
80
+ " <td>1</td>\n",
81
+ " <td>1</td>\n",
82
+ " <td>0.605351</td>\n",
83
+ " <td>0</td>\n",
84
+ " </tr>\n",
85
+ " <tr>\n",
86
+ " <th>1</th>\n",
87
+ " <td>2</td>\n",
88
+ " <td>1</td>\n",
89
+ " <td>0</td>\n",
90
+ " <td>0.387</td>\n",
91
+ " <td>0.613</td>\n",
92
+ " <td>Walder Frey</td>\n",
93
+ " <td>Lord of the Crossing</td>\n",
94
+ " <td>1</td>\n",
95
+ " <td>Rivermen</td>\n",
96
+ " <td>208.0</td>\n",
97
+ " <td>...</td>\n",
98
+ " <td>NaN</td>\n",
99
+ " <td>1.0</td>\n",
100
+ " <td>1</td>\n",
101
+ " <td>1</td>\n",
102
+ " <td>97.0</td>\n",
103
+ " <td>1</td>\n",
104
+ " <td>1</td>\n",
105
+ " <td>1</td>\n",
106
+ " <td>0.896321</td>\n",
107
+ " <td>1</td>\n",
108
+ " </tr>\n",
109
+ " <tr>\n",
110
+ " <th>2</th>\n",
111
+ " <td>3</td>\n",
112
+ " <td>1</td>\n",
113
+ " <td>0</td>\n",
114
+ " <td>0.493</td>\n",
115
+ " <td>0.507</td>\n",
116
+ " <td>Addison Hill</td>\n",
117
+ " <td>Ser</td>\n",
118
+ " <td>1</td>\n",
119
+ " <td>NaN</td>\n",
120
+ " <td>NaN</td>\n",
121
+ " <td>...</td>\n",
122
+ " <td>NaN</td>\n",
123
+ " <td>NaN</td>\n",
124
+ " <td>0</td>\n",
125
+ " <td>1</td>\n",
126
+ " <td>NaN</td>\n",
127
+ " <td>0</td>\n",
128
+ " <td>0</td>\n",
129
+ " <td>0</td>\n",
130
+ " <td>0.267559</td>\n",
131
+ " <td>1</td>\n",
132
+ " </tr>\n",
133
+ " <tr>\n",
134
+ " <th>3</th>\n",
135
+ " <td>4</td>\n",
136
+ " <td>0</td>\n",
137
+ " <td>0</td>\n",
138
+ " <td>0.076</td>\n",
139
+ " <td>0.924</td>\n",
140
+ " <td>Aemma Arryn</td>\n",
141
+ " <td>Queen</td>\n",
142
+ " <td>0</td>\n",
143
+ " <td>NaN</td>\n",
144
+ " <td>82.0</td>\n",
145
+ " <td>...</td>\n",
146
+ " <td>NaN</td>\n",
147
+ " <td>0.0</td>\n",
148
+ " <td>1</td>\n",
149
+ " <td>1</td>\n",
150
+ " <td>23.0</td>\n",
151
+ " <td>0</td>\n",
152
+ " <td>0</td>\n",
153
+ " <td>0</td>\n",
154
+ " <td>0.183946</td>\n",
155
+ " <td>0</td>\n",
156
+ " </tr>\n",
157
+ " <tr>\n",
158
+ " <th>4</th>\n",
159
+ " <td>5</td>\n",
160
+ " <td>1</td>\n",
161
+ " <td>1</td>\n",
162
+ " <td>0.617</td>\n",
163
+ " <td>0.383</td>\n",
164
+ " <td>Sylva Santagar</td>\n",
165
+ " <td>Greenstone</td>\n",
166
+ " <td>0</td>\n",
167
+ " <td>Dornish</td>\n",
168
+ " <td>276.0</td>\n",
169
+ " <td>...</td>\n",
170
+ " <td>NaN</td>\n",
171
+ " <td>1.0</td>\n",
172
+ " <td>1</td>\n",
173
+ " <td>1</td>\n",
174
+ " <td>29.0</td>\n",
175
+ " <td>0</td>\n",
176
+ " <td>0</td>\n",
177
+ " <td>0</td>\n",
178
+ " <td>0.043478</td>\n",
179
+ " <td>1</td>\n",
180
+ " </tr>\n",
181
+ " </tbody>\n",
182
+ "</table>\n",
183
+ "<p>5 rows × 33 columns</p>\n",
184
+ "</div>"
185
+ ],
186
+ "text/plain": [
187
+ " S.No actual pred alive plod name \\\n",
188
+ "0 1 0 0 0.054 0.946 Viserys II Targaryen \n",
189
+ "1 2 1 0 0.387 0.613 Walder Frey \n",
190
+ "2 3 1 0 0.493 0.507 Addison Hill \n",
191
+ "3 4 0 0 0.076 0.924 Aemma Arryn \n",
192
+ "4 5 1 1 0.617 0.383 Sylva Santagar \n",
193
+ "\n",
194
+ " title male culture dateOfBirth ... isAliveHeir \\\n",
195
+ "0 NaN 1 NaN NaN ... 0.0 \n",
196
+ "1 Lord of the Crossing 1 Rivermen 208.0 ... NaN \n",
197
+ "2 Ser 1 NaN NaN ... NaN \n",
198
+ "3 Queen 0 NaN 82.0 ... NaN \n",
199
+ "4 Greenstone 0 Dornish 276.0 ... NaN \n",
200
+ "\n",
201
+ " isAliveSpouse isMarried isNoble age numDeadRelations boolDeadRelations \\\n",
202
+ "0 NaN 0 0 NaN 11 1 \n",
203
+ "1 1.0 1 1 97.0 1 1 \n",
204
+ "2 NaN 0 1 NaN 0 0 \n",
205
+ "3 0.0 1 1 23.0 0 0 \n",
206
+ "4 1.0 1 1 29.0 0 0 \n",
207
+ "\n",
208
+ " isPopular popularity isAlive \n",
209
+ "0 1 0.605351 0 \n",
210
+ "1 1 0.896321 1 \n",
211
+ "2 0 0.267559 1 \n",
212
+ "3 0 0.183946 0 \n",
213
+ "4 0 0.043478 1 \n",
214
+ "\n",
215
+ "[5 rows x 33 columns]"
216
+ ]
217
+ },
218
+ "execution_count": 1,
219
+ "metadata": {},
220
+ "output_type": "execute_result"
221
+ }
222
+ ],
223
+ "source": [
224
+ "import pandas as pd\n",
225
+ "\n",
226
+ "# CSV dosyasını oku (gerekirse adını değiştir)\n",
227
+ "df = pd.read_csv(\"character-predictions.csv\")\n",
228
+ "\n",
229
+ "# İlk 5 satıra göz at\n",
230
+ "print(df.shape)\n",
231
+ "df.head()\n"
232
+ ]
233
+ },
234
+ {
235
+ "cell_type": "markdown",
236
+ "id": "93107ff0-9d1f-44de-9321-a3df088047fb",
237
+ "metadata": {},
238
+ "source": [
239
+ "Hedef: isAlive\n",
240
+ "Bu sütun:\n",
241
+ "\n",
242
+ "1 → karakter hayatta\n",
243
+ "\n",
244
+ "0 → karakter ölmüş"
245
+ ]
246
+ },
247
+ {
248
+ "cell_type": "markdown",
249
+ "id": "a8b0f6d3-de1b-47a4-9f34-aa5a15088a81",
250
+ "metadata": {},
251
+ "source": [
252
+ "Eksik Değer ve Hedef Dağılımı"
253
+ ]
254
+ },
255
+ {
256
+ "cell_type": "code",
257
+ "execution_count": 2,
258
+ "id": "160ab417-8a89-471d-824e-805a88d4d122",
259
+ "metadata": {},
260
+ "outputs": [
261
+ {
262
+ "name": "stdout",
263
+ "output_type": "stream",
264
+ "text": [
265
+ "Eksik oranı % yüksek olan sütunlar:\n",
266
+ "mother 0.989209\n",
267
+ "isAliveMother 0.989209\n",
268
+ "isAliveHeir 0.988181\n",
269
+ "heir 0.988181\n",
270
+ "father 0.986639\n",
271
+ "isAliveFather 0.986639\n",
272
+ "isAliveSpouse 0.858171\n",
273
+ "spouse 0.858171\n",
274
+ "dateOfBirth 0.777492\n",
275
+ "age 0.777492\n",
276
+ "DateoFdeath 0.771840\n",
277
+ "culture 0.652107\n",
278
+ "title 0.517986\n",
279
+ "house 0.219424\n",
280
+ "dtype: float64\n",
281
+ "isAlive\n",
282
+ "1 0.745632\n",
283
+ "0 0.254368\n",
284
+ "Name: proportion, dtype: float64\n"
285
+ ]
286
+ },
287
+ {
288
+ "data": {
289
+ "text/plain": [
290
+ "<Axes: title={'center': 'Hayatta Kalma Durumu'}, xlabel='isAlive'>"
291
+ ]
292
+ },
293
+ "execution_count": 2,
294
+ "metadata": {},
295
+ "output_type": "execute_result"
296
+ },
297
+ {
298
+ "data": {
299
+ "image/png": "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yuFwqKSkRJKUnp6uiIiIgOwbgDkIMABq3AcffKCnn376tMfn5OSoUaNGSkxM/N2xt912m7755puzKQ+AgQgwAGpcy5Yt1bx589MeP3/+fI0ZM0bZ2dnat2/fKceGh4crMjLybEsEYBgCDIAa99tLSHPmzNHFF1+ssLAwRUVF6eabb/YbW1paqnfffVcPPPCAEhMTlZ6efsp9//YS0jfffCOHw6EdO3b4jXnppZfUoUMHe/2rr77S4MGD1axZM0VFRWn48OH2C9MAmIEAA6DWbNq0SWPHjtXUqVO1c+dOZWZm6pprrvEb895776lTp07q2LGj7rzzTi1YsOCU33v1W3/4wx/Uq1cvZWRk+LVnZGTojjvukCSVlJSof//+6tGjhzZt2qTMzEwVFhbyenrAMAQYALVm7969atq0qYYMGaK2bduqR48eGjt2rN+Y+fPn684775QkDRo0SF6vV+vWrTvtOVJSUvT222/b6998843y8vKUkpIiSXr11VfVo0cPPfvss+rUqZN69OihBQsWaM2aNdxLAxiEAAOg1lx33XVq27atLrzwQg0fPlwZGRk6dOiQ3b9z505t3LhRt99+uyQpODhYt912m+bPn3/acyQnJ2vPnj364osvJP337Mtll12mTp06Sfrvd2WtWbNGzZo1s5fKvu+//z5QhwqghvFdSABqTfPmzbV582atXbtWK1eu1OTJkzVlyhTl5uYqIiJC8+fP19GjR+V2u+1tLMtSaGioXn31Vblcrt+dIzo6Wv3799fixYvVp08fLV68WA888IDdX1paqqFDh+r5558/YVu+dwcwB2dgANSq4OBgxcfHa/r06dq6dav27Nmj1atX6+jRo3rzzTf197//Xfn5+fayZcsWud1uv8tCvyclJUXvvvuucnJytGvXLiUnJ9t9l112mbZt26Z27drpoosu8luaNm1aE4cMoAYQYADUmuXLl2vWrFnKz8/XDz/8oDfffFMVFRXq2LGjli9frv3792vkyJHq2rWr35KUlFSty0g33XSTDhw4oAceeEDXXnut3xmd1NRUFRcX6/bbb1dubq6+//57rVixQvfcc4+OHTtWE4cNoAYQYADUmoiICH3wwQfq37+/OnfurHnz5untt99Wly5dNH/+fMXHx1d5mSgpKUmbNm3S1q1bT2ue5s2ba+jQodqyZYt9824lt9ut9evX69ixYxo4cKC6deumcePGKSIiQkFB/JUImMJhne7ziQAAAPUE/9wAAADGIcAAAADjEGAAAIBxCDAAAMA4BBgAAGAcAgwAADAOAQYAABiHAAMAAIxDgAEAAMYhwAAAAOMQYAAAgHEIMAAAwDj/H/P036tM3Uh+AAAAAElFTkSuQmCC",
300
+ "text/plain": [
301
+ "<Figure size 640x480 with 1 Axes>"
302
+ ]
303
+ },
304
+ "metadata": {},
305
+ "output_type": "display_data"
306
+ }
307
+ ],
308
+ "source": [
309
+ "# Eksik verileri kontrol et\n",
310
+ "missing = df.isnull().mean().sort_values(ascending=False)\n",
311
+ "print(\"Eksik oranı % yüksek olan sütunlar:\")\n",
312
+ "print(missing[missing > 0.1])\n",
313
+ "\n",
314
+ "# Hedef değişken dağılımı\n",
315
+ "print(df[\"isAlive\"].value_counts(normalize=True))\n",
316
+ "df[\"isAlive\"].value_counts().plot(kind=\"bar\", title=\"Hayatta Kalma Durumu\")\n"
317
+ ]
318
+ },
319
+ {
320
+ "cell_type": "code",
321
+ "execution_count": 3,
322
+ "id": "02c6ab81-7fed-4458-add3-3593a33c22f5",
323
+ "metadata": {},
324
+ "outputs": [],
325
+ "source": [
326
+ "features = [\n",
327
+ " 'male',\n",
328
+ " 'popularity',\n",
329
+ " 'house',\n",
330
+ " 'title'\n",
331
+ "]\n"
332
+ ]
333
+ },
334
+ {
335
+ "cell_type": "code",
336
+ "execution_count": 4,
337
+ "id": "4bd553d0-3e4f-42f2-b8c0-513acddd2f76",
338
+ "metadata": {},
339
+ "outputs": [],
340
+ "source": [
341
+ "df['house'] = df['house'].fillna(\"Unknown\")\n",
342
+ "df['title'] = df['title'].fillna(\"Unknown\")\n",
343
+ "\n",
344
+ "# Label encoding\n",
345
+ "from sklearn.preprocessing import LabelEncoder\n",
346
+ "\n",
347
+ "le_house = LabelEncoder()\n",
348
+ "le_title = LabelEncoder()\n",
349
+ "\n",
350
+ "df['house_encoded'] = le_house.fit_transform(df['house'])\n",
351
+ "df['title_encoded'] = le_title.fit_transform(df['title'])\n"
352
+ ]
353
+ },
354
+ {
355
+ "cell_type": "code",
356
+ "execution_count": 5,
357
+ "id": "afbeeb5e-fcdc-4389-b307-8379d3357005",
358
+ "metadata": {},
359
+ "outputs": [],
360
+ "source": [
361
+ "features = ['male', 'popularity', 'house_encoded', 'title_encoded']\n",
362
+ "X = df[features]\n",
363
+ "y = df['isAlive']\n"
364
+ ]
365
+ },
366
+ {
367
+ "cell_type": "code",
368
+ "execution_count": 6,
369
+ "id": "8737a7d6-e30b-4eb2-b0a9-d7dac67e2b78",
370
+ "metadata": {},
371
+ "outputs": [
372
+ {
373
+ "name": "stdout",
374
+ "output_type": "stream",
375
+ "text": [
376
+ "Accuracy: 0.735897435897436\n",
377
+ " precision recall f1-score support\n",
378
+ "\n",
379
+ " 0 0.43 0.28 0.34 94\n",
380
+ " 1 0.79 0.88 0.84 296\n",
381
+ "\n",
382
+ " accuracy 0.74 390\n",
383
+ " macro avg 0.61 0.58 0.59 390\n",
384
+ "weighted avg 0.70 0.74 0.71 390\n",
385
+ "\n"
386
+ ]
387
+ }
388
+ ],
389
+ "source": [
390
+ "from sklearn.ensemble import RandomForestClassifier\n",
391
+ "from sklearn.model_selection import train_test_split\n",
392
+ "from sklearn.metrics import accuracy_score, classification_report\n",
393
+ "\n",
394
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
395
+ "\n",
396
+ "model = RandomForestClassifier(random_state=42)\n",
397
+ "model.fit(X_train, y_train)\n",
398
+ "\n",
399
+ "y_pred = model.predict(X_test)\n",
400
+ "\n",
401
+ "print(\"Accuracy:\", accuracy_score(y_test, y_pred))\n",
402
+ "print(classification_report(y_test, y_pred))\n"
403
+ ]
404
+ },
405
+ {
406
+ "cell_type": "code",
407
+ "execution_count": 8,
408
+ "id": "fd69a795-c6b2-4f8f-ac62-87ec5c50f993",
409
+ "metadata": {},
410
+ "outputs": [
411
+ {
412
+ "data": {
413
+ "text/plain": [
414
+ "['got_title_encoder.pkl']"
415
+ ]
416
+ },
417
+ "execution_count": 8,
418
+ "metadata": {},
419
+ "output_type": "execute_result"
420
+ }
421
+ ],
422
+ "source": [
423
+ "import joblib\n",
424
+ "\n",
425
+ "joblib.dump(model, \"got_isalive_model.pkl\")\n",
426
+ "joblib.dump(le_house, \"got_house_encoder.pkl\")\n",
427
+ "joblib.dump(le_title, \"got_title_encoder.pkl\")\n"
428
+ ]
429
+ },
430
+ {
431
+ "cell_type": "code",
432
+ "execution_count": null,
433
+ "id": "9328cd52-72b0-4f5d-8790-c2a2ea2ae131",
434
+ "metadata": {},
435
+ "outputs": [],
436
+ "source": []
437
+ }
438
+ ],
439
+ "metadata": {
440
+ "kernelspec": {
441
+ "display_name": "Python 3 (ipykernel)",
442
+ "language": "python",
443
+ "name": "python3"
444
+ },
445
+ "language_info": {
446
+ "codemirror_mode": {
447
+ "name": "ipython",
448
+ "version": 3
449
+ },
450
+ "file_extension": ".py",
451
+ "mimetype": "text/x-python",
452
+ "name": "python",
453
+ "nbconvert_exporter": "python",
454
+ "pygments_lexer": "ipython3",
455
+ "version": "3.12.9"
456
+ }
457
+ },
458
+ "nbformat": 4,
459
+ "nbformat_minor": 5
460
+ }
README.md CHANGED
@@ -1,20 +1,42 @@
1
- ---
2
- title: Game Of Thrones Survival Prediction
3
- emoji: 🚀
4
- colorFrom: red
5
- colorTo: red
6
- sdk: docker
7
- app_port: 8501
8
- tags:
9
- - streamlit
10
- pinned: false
11
- short_description: Streamlit template space
12
- license: mit
13
- ---
14
-
15
- # Welcome to Streamlit!
16
-
17
- Edit `/src/streamlit_app.py` to customize this app to your heart's desire. :heart:
18
-
19
- If you have any questions, checkout our [documentation](https://docs.streamlit.io) and [community
20
- forums](https://discuss.streamlit.io).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tags:
3
+ - machine-learning
4
+ - classification
5
+ - game-of-thrones
6
+ - streamlit
7
+ - huggingface
8
+ ---
9
+
10
+ # 🐉 Game of Thrones – Karakter Hayatta mı? (ML Modeli)
11
+
12
+ Bu proje, Game of Thrones evrenindeki karakterlerin hayatta kalıp kalmadığını tahmin etmek için oluşturulmuş bir makine öğrenimi modelidir.
13
+
14
+ ## 🔍 Kullanılan Özellikler
15
+
16
+ - Cinsiyet (male)
17
+ - Popülerlik
18
+ - House (label encoded)
19
+ - Title (label encoded)
20
+
21
+ ## 🎯 Model
22
+
23
+ - `RandomForestClassifier`
24
+ - Accuracy: ~ (senin çıktın neyse onu yaz)
25
+
26
+ ## 🖥 Streamlit Arayüzü
27
+
28
+ Kullanıcı girişlerine göre karakterin yaşayıp yaşamadığını tahmin eder.
29
+
30
+ ## 🔧 Gereksinimler
31
+
32
+ ```bash
33
+ pip install -r requirements.txt
34
+
35
+
36
+ ▶️ Uygulama
37
+
38
+ streamlit run app.py
39
+
40
+
41
+
42
+
app.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import streamlit as st
3
+ import joblib
4
+ import numpy as np
5
+
6
+ # Model ve encoder'ları yükle
7
+ model = joblib.load("got_isalive_model.pkl")
8
+ house_encoder = joblib.load("got_house_encoder.pkl")
9
+ title_encoder = joblib.load("got_title_encoder.pkl")
10
+
11
+ st.title("🛡️ Game of Thrones – Hayatta mı?")
12
+
13
+ # Kullanıcıdan giriş al
14
+ male = st.selectbox("Cinsiyet", ["Erkek", "Kadın"])
15
+ popularity = st.slider("Popülarite (0-1 arası)", 0.0, 1.0, 0.5)
16
+ house = st.selectbox("House", house_encoder.classes_)
17
+ title = st.selectbox("Title", title_encoder.classes_)
18
+
19
+ # Girdileri encode et
20
+ male_val = 1 if male == "Erkek" else 0
21
+ house_val = house_encoder.transform([house])[0]
22
+ title_val = title_encoder.transform([title])[0]
23
+
24
+ # Tahmin
25
+ X_input = np.array([[male_val, popularity, house_val, title_val]])
26
+ prediction = model.predict(X_input)[0]
27
+
28
+ if prediction == 1:
29
+ st.success("✅ Bu karakter hayatta!")
30
+ else:
31
+ st.error("☠️ Bu karakter maalesef ölmüş.")
got_house_encoder.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6824d76c6f2b0073423b272ed368f663c545c9879b07d568880da9cf8eb0b30c
3
+ size 8158
got_isalive_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:08a8750ede9ce529c6f04057594bfa7abeeb63194784376197070bc0bba6afbe
3
+ size 5393305
got_title_encoder.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bfeb8d04ff1f21bfbdf89921895d86d7a8e78f8e9cef28aaa1c47729f4479f86
3
+ size 5970
requirements.txt CHANGED
@@ -1,3 +1,4 @@
1
- altair
2
- pandas
3
- streamlit
 
 
1
+ streamlit
2
+ pandas
3
+ scikit-learn
4
+ joblib