SIGNATURE Pratique, prédiction des cépages.
RandomForest
Après avoir essayé trois algorithmes, la forêt aléatoire était la plus précise, elle a donc été adoptée comme classificateur final.
wine-learning.py
wine_data = pd.read_csv('train.tsv',sep='\t')
wine_test = pd.read_csv('test.tsv',sep='\t')
J'ai utilisé read_table
la dernière fois, mais j'ai aussi essayé d'utiliser read_csv
parce que c'est un gros problème. Je pense que cette table est plus facile.
À propos, les méthodes pour appeler les deux semblent être les mêmes, il n'y en a donc pas de bonne.
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
Je veux faire quelque chose à ce sujet parce que cela a tendance à être long quand il y a beaucoup de variables. Voyons s'il y a un moyen de l'améliorer lors de la tâche suivante. Au fait, les données de test sont enfin là
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)
Cette fois également, les données ont été divisées selon un ratio de 8: 2.
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)]
Une valeur manquante qui n'existait pas avant l'apparition soudaine de la scission. Je ne connaissais pas la cause, je vais donc essayer de la vérifier bientôt. Cette fois, nous avons décidé de supprimer les valeurs manquantes.
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 a été défini sur 0 et n_estimators (nombre d'arbres de décision) sur 500.
wine-learning.py
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print('Taux de réponse correct= ' , accuracy)
Comme dans l'exemple, le taux de réponse correct a été calculé à l'aide de la fonction «précision».
Taux de réponse correct= 0.6111111111111112
Taux de réponse correct= 0.8888888888888888
Taux de réponse correct= 1.0
wine-learning.py
X_pred = np.array(Xt)
y_pred = clf.predict(X_pred)
print(y_pred)
Je l'ai fait (Pachi Pachi)
Recommended Posts