Inhaltsverzeichnis Kapitel 1: Lineares Regressionsmodell [Kapitel 2: Nichtlineares Regressionsmodell] (https://qiita.com/matsukura04583/items/baa3f2269537036abc57) [Kapitel 3: Logistisches Regressionsmodell] (https://qiita.com/matsukura04583/items/0fb73183e4a7a6f06aa5) [Kapitel 4: Hauptkomponentenanalyse] (https://qiita.com/matsukura04583/items/b3b5d2d22189afc9c81c) [Kapitel 5: Algorithmus 1 (k-Nachbarschaftsmethode (kNN))] (https://qiita.com/matsukura04583/items/543719b44159322221ed) [Kapitel 6: Algorithmus 2 (k-Mittel)] (https://qiita.com/matsukura04583/items/050c98c7bb1c9e91be71) [Kapitel 7: Support Vector Machine] (https://qiita.com/matsukura04583/items/6b718642bcbf97ae2ca8)
x=(x_1,x_2,・ ・ ・,x_m)^T \in R^m
y \in \left\{0,1\right\}
Google Drive Mount
from google.colab import drive
drive.mount('/content/drive')
#aus Modulname Importklassenname (oder Funktionsname oder Variablenname)
import pandas as pd
from pandas import DataFrame
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#Magie für die Anzeige von Matplotlib inline(plt.show()Das musst du nicht)
%matplotlib inline
Im Folgenden wird der Ordner study_ai_ml direkt unter Mein Laufwerk in Google Drive verwendet.
#Lesen Sie die CSV-Datei mit Titandaten
titanic_df = pd.read_csv('/content/drive/My Drive/study_ai_ml/data/titanic_train.csv')
#Zeigen Sie den Anfang der Datei an und überprüfen Sie den Datensatz
titanic_df.head(5)
Ich habe die Bedeutung von Variablen untersucht.
Passagier-ID: Passagier-ID Überlebt: Überlebensergebnis (1: Überleben, 0: Tod) Klasse: Passagierklasse 1 ist die höchste Klasse Name: Name des Passagiers Geschlecht: Geschlecht Alter: Alter SibSp Anzahl der Brüder und Ehepartner Parch Anzahl der Eltern und Kinder Ticket Ticketnummer Tarifgebühr Kabinenraumnummer Eingeschiffte Häfen an Bord von Cherbourg, Queenstown, Southampton
#Lassen Sie es fallen, weil Sie denken, dass es für die Vorhersage nicht notwendig ist
titanic_df.drop(['PassengerId','Pclass', 'Name', 'SibSp','Parch','Ticket','Fare','Cabin','Embarked'], axis=1, inplace=True)
#Zeigen Sie Daten mit einigen abgelegten Spalten an
titanic_df.head()
#Zeilen anzeigen, die null enthalten
titanic_df[titanic_df.isnull().any(1)].head(10)
#Vervollständigen Sie null in der Spalte Alter mit Median
titanic_df['AgeFill'] = titanic_df['Age'].fillna(titanic_df['Age'].mean())
#Zeigen Sie erneut Zeilen mit Null an(Das Alter Null wird ergänzt)
titanic_df[titanic_df.isnull().any(1)]
#titanic_df.dtypes
#titanic_df.head()
#Weil ich den fehlenden Wert von Age Fill eingegeben habe
#titanic_df = titanic_df.drop(['Age'], axis=1)
#Stellen Sie weiblich 0 männlich 1 in Geschlecht ein
titanic_df['Gender'] = titanic_df['Sex'].map({'female': 0, 'male': 1}).astype(int)
titanic_df.head()
np.random.seed = 0
xmin, xmax = -5, 85
ymin, ymax = -0.5, 1.3
index_survived = titanic_df[titanic_df["Survived"]==0].index
index_notsurvived = titanic_df[titanic_df["Survived"]==1].index
from matplotlib.colors import ListedColormap
fig, ax = plt.subplots()
cm = plt.cm.RdBu
cm_bright = ListedColormap(['#FF0000', '#0000FF'])
sc = ax.scatter(titanic_df.loc[index_survived, 'AgeFill'],
titanic_df.loc[index_survived, 'Gender']+(np.random.rand(len(index_survived))-0.5)*0.1,
color='r', label='Not Survived', alpha=0.3)
sc = ax.scatter(titanic_df.loc[index_notsurvived, 'AgeFill'],
titanic_df.loc[index_notsurvived, 'Gender']+(np.random.rand(len(index_notsurvived))-0.5)*0.1,
color='b', label='Survived', alpha=0.3)
ax.set_xlabel('AgeFill')
ax.set_ylabel('Gender')
ax.set_xlim(xmin, xmax)
ax.set_ylim(ymin, ymax)
ax.legend(bbox_to_anchor=(1.4, 1.03))
Da 1 männlich, 0 weiblich, rot tot und blau lebendig ist, wird es so verteilt, als ob eine relativ große Anzahl von Frauen lebt.
#Erstellen Sie nur eine Liste mit Alter und Geschlecht
data2 = titanic_df.loc[:, ["AgeFill", "Gender"]].values
data2
Ergebnis
array([[22. , 1. ],
[38. , 0. ],
[26. , 0. ],
...,
[29.69911765, 0. ],
[26. , 1. ],
[32. , 1. ]])
Lassen Sie uns ein Überlebensdiagramm nach Alter erstellen
split_data = []
for survived in [0,1]:
split_data.append(titanic_df[titanic_df.Survived==survived])
temp = [i["AgeFill"].dropna() for i in split_data ]
plt.hist(temp, histtype="barstacked", bins=16)
Da die fehlenden Alterswerte im Durchschnitt ausgefüllt werden, gibt es viele in der Mitte. Versuchen Sie erneut, die Daten mit Ausnahme der fehlenden Werte grafisch darzustellen.
temp = [i["Age"].dropna() for i in split_data]
plt.hist(temp, histtype="barstacked", bins=16)
Überprüfen Sie die Überlebensrate von Männern und Frauen mit einer Stapelkarte
temp = [i["Gender"].dropna() for i in split_data]
plt.hist(temp, histtype="barstacked", bins=16)
Es wurde so.
##Erstellen Sie nur eine Liste mit Lebens- und Todesflaggen
label2 = titanic_df.loc[:,["Survived"]].values
from sklearn.linear_model import LogisticRegression
model2 = LogisticRegression()
model2.fit(data2, label2)
Ergebnis
/usr/local/lib/python3.6/dist-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.
FutureWarning)
/usr/local/lib/python3.6/dist-packages/sklearn/utils/validation.py:724: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
y = column_or_1d(y, warn=True)
LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
intercept_scaling=1, l1_ratio=None, max_iter=100,
multi_class='warn', n_jobs=None, penalty='l2',
random_state=None, solver='warn', tol=0.0001, verbose=0,
warm_start=False)
Sagen Sie einen 30-jährigen Mann voraus
model2.predict([[30,1]])
Ergebnis
array([0])```
```python
model2.predict([[30,1]])
Ergebnis
array([1])
model2.predict_proba([[30,1]])
Die Null-Vorhersage (Todesvorhersage) wird zurückgegeben
Ergebnis
array([0])
Ich beobachte die Errichtung dieses Urteils
model2.predict_proba([[30,1]])
Ergebnis
array([[0.80664059, 0.19335941]])
Die Rate von 80% Todeswahrscheinlichkeit und 20% Überlebenswahrscheinlichkeit ist zu sehen.
Verwandte Seiten
Kapitel 1: Lineares Regressionsmodell [Kapitel 2: Nichtlineares Regressionsmodell] (https://qiita.com/matsukura04583/items/baa3f2269537036abc57) [Kapitel 3: Logistisches Regressionsmodell] (https://qiita.com/matsukura04583/items/0fb73183e4a7a6f06aa5) [Kapitel 4: Hauptkomponentenanalyse] (https://qiita.com/matsukura04583/items/b3b5d2d22189afc9c81c) [Kapitel 5: Algorithmus 1 (k-Nachbarschaftsmethode (kNN))] (https://qiita.com/matsukura04583/items/543719b44159322221ed) [Kapitel 6: Algorithmus 2 (k-Mittel)] (https://qiita.com/matsukura04583/items/050c98c7bb1c9e91be71) [Kapitel 7: Support Vector Machine] (https://qiita.com/matsukura04583/items/6b718642bcbf97ae2ca8)
Recommended Posts