[PYTHON] Ich habe versucht, RandomForest zu verwenden

Zweck dieser Zeit

SIGNATE Übung zur Vorhersage von Weinsorten.

Hauptthema

Lernalgorithmus verwendet

Als Ergebnis des Versuchs von drei Algorithmen war die zufällige Gesamtstruktur die genaueste und wurde daher als endgültiger Klassifikator übernommen.

Code

Daten lesen

wine-learning.py


wine_data = pd.read_csv('train.tsv',sep='\t')
wine_test = pd.read_csv('test.tsv',sep='\t')

Ich habe das letzte Mal "read_table" verwendet, aber ich habe auch versucht, "read_csv" zu verwenden, weil es eine große Sache ist. Ich finde, dass die Tabelle einfacher ist. Übrigens scheinen die Methoden, beide aufzurufen, gleich zu sein, daher gibt es keine richtige.

Trennung von Feature-Daten und Lehrerdaten

wine-learning.py


X = wine_data.loc[:,['Alcohol','Malic acid','Ash','Alcalinity of ash','Magnesium','Total phenols','Flavanoids','Nonflavanoid ohenols','Proanthocyanins','Color intensity','Hue','OD280/OD315 of diluted wines','Proline']].values
y = wine_data.loc[:,'Y'].values

Ich möchte etwas dagegen tun, da es bei vielen Variablen in der Regel lang ist. Lassen Sie uns überlegen, ob es eine Möglichkeit gibt, es bei der nächsten Aufgabe zu verbessern. Die Testdaten sind übrigens endlich da

wine-learning.py


Xt = wine_test.loc[:,['Alcohol','Malic acid','Ash','Alcalinity of ash','Magnesium','Total phenols','Flavanoids','Nonflavanoid ohenols','Proanthocyanins','Color intensity','Hue','OD280/OD315 of diluted wines','Proline']].values

Unterteilt in Trainingsdaten und Testdaten

wine-learning.py


X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2)

Auch diesmal wurden die Daten im Verhältnis 8: 2 aufgeteilt.

Fehlende Werte löschen

wine-learning.py


X_train = X_train[:, ~np.isnan(X_train).any(axis=0)]
X_test = X_test[:, ~np.isnan(X_test).any(axis=0)]
Xt = Xt[:, ~np.isnan(Xt).any(axis=0)]

Ein fehlender Wert, der vor dem Split nicht vorhanden war, wurde plötzlich angezeigt. Ich kannte die Ursache nicht, daher werde ich versuchen, ihn bald zu überprüfen. Dieses Mal haben wir beschlossen, die fehlenden Werte zu löschen.

Modelllernen

SVC

wine-learning.py


clf = svm.SVC()
clf.fit(X_train, y_train)
Logistische Rückgabe

wine-learning.py


clf = LogisticRegression()
clf.fit(X_train, y_train)
Zufälliger Wald

wine-learning.py


clf = RandomForestClassifier(n_estimators=500, random_state=0)
clf.fit(X_train, y_train)

Random_state wurde auf 0 und n_estimators (Anzahl der Entscheidungsbäume) auf 500 gesetzt.

Modellbewertung

wine-learning.py


y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print('Richtige Antwortrate= ' , accuracy)

Wie im Beispiel wurde die richtige Antwortrate mit der Funktion "Genauigkeit" berechnet.

SVC korrekte Antwortrate
Richtige Antwortrate=  0.6111111111111112
Richtige Antwortrate der logistischen Regression
Richtige Antwortrate=  0.8888888888888888
Zufällige Waldgenauigkeitsrate
Richtige Antwortrate=  1.0

Einstufung

wine-learning.py


X_pred = np.array(Xt)
y_pred = clf.predict(X_pred)
print(y_pred)

Ergebnis

image.png

Ich habe es getan (Pachi Pachi)

Erwägung

Recommended Posts

Ich habe versucht, RandomForest zu verwenden
Ich habe versucht, parametrisiert zu verwenden
Ich habe versucht, Argparse zu verwenden
Ich habe versucht, Mimesis zu verwenden
Ich habe versucht, anytree zu verwenden
Ich habe versucht, aiomysql zu verwenden
Ich habe versucht, Summpy zu verwenden
Ich habe versucht, Coturn zu verwenden
Ich habe versucht, Pipenv zu verwenden
Ich habe versucht, Matplotlib zu verwenden
Ich habe versucht, "Anvil" zu verwenden.
Ich habe versucht, Hubot zu verwenden
Ich habe versucht, ESPCN zu verwenden
Ich habe versucht, openpyxl zu verwenden
Ich habe versucht, Ipython zu verwenden
Ich habe versucht, PyCaret zu verwenden
Ich habe versucht, Cron zu verwenden
Ich habe versucht, ngrok zu verwenden
Ich habe versucht, face_recognition zu verwenden
Ich habe versucht, Jupyter zu verwenden
Ich habe versucht, doctest zu verwenden
Ich habe versucht, Folium zu verwenden
Ich habe versucht, jinja2 zu verwenden
Ich habe versucht, Folium zu verwenden
Ich habe versucht, das Zeitfenster zu verwenden
[Ich habe versucht, Pythonista 3 zu verwenden] Einführung
Ich habe versucht, easydict (Memo) zu verwenden.
Ich habe versucht, das Gesicht mit Face ++ zu erkennen
Ich habe versucht, BigQuery ML zu verwenden
Ich habe versucht, Amazon Glacier zu verwenden
Ich habe versucht, Git Inspector zu verwenden
Ich habe versucht, Magenta / TensorFlow zu verwenden
Ich habe versucht, AWS Chalice zu verwenden
Ich habe versucht, Slack Emojinator zu verwenden
Zufälliger Wald (2)
Zufälliger Wald
Ich habe versucht, Rotrics Dex Arm # 2 zu verwenden
Ich habe versucht, Rotrics Dex Arm zu verwenden
Ich habe versucht, GrabCut von OpenCV zu verwenden
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Ich habe versucht, mit dem Server-Client über tmux zu kommunizieren
Ich habe versucht, mit PyBrain verstärkt zu lernen
Ich habe versucht, mit Theano tief zu lernen
Ich habe irgendwie versucht, ein Jupyter-Notebook zu verwenden
[Kaggle] Ich habe versucht, mit unausgeglichenem Lernen zu unterabtasten
Ich habe versucht, mit OpenPose eine Schildkrötenwelle zu schießen
Ich habe versucht, die checkio-API zu verwenden
Ich habe versucht, asynchrone Verarbeitung mit Asyncio
Tag 67 [Einführung in Kaggle] Haben Sie versucht, Random Forest zu verwenden?
Was wurde gefragt, wenn Random Forest in der Praxis verwendet wurde?
Ich habe versucht, Amazon SQS mit Django-Sellerie zu verwenden
Ich habe versucht, Azure Speech to Text zu verwenden.
Ich habe versucht zu kratzen
Ich habe PyQ ausprobiert
Ich habe versucht, ○ ✕ mit TensorFlow zu spielen
Ich habe versucht, Selen mit Headless-Chrom zu verwenden