SIGNATE Übung zur Vorhersage von Weinsorten.
Als Ergebnis des Versuchs von drei Algorithmen war die zufällige Gesamtstruktur die genaueste und wurde daher als endgültiger Klassifikator übernommen.
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.
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
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.
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.
SVC
wine-learning.py
clf = svm.SVC()
clf.fit(X_train, y_train)
wine-learning.py
clf = LogisticRegression()
clf.fit(X_train, y_train)
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.
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.
Richtige Antwortrate= 0.6111111111111112
Richtige Antwortrate= 0.8888888888888888
Richtige Antwortrate= 1.0
wine-learning.py
X_pred = np.array(Xt)
y_pred = clf.predict(X_pred)
print(y_pred)
Ich habe es getan (Pachi Pachi)
Recommended Posts