[PYTHON] J'ai essayé d'utiliser RandomForest

But de cette fois

SIGNATURE Pratique, prédiction des cépages.

Sujet principal

Algorithme d'apprentissage utilisé

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.

code

Lire les données

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.

Séparation des données d'entité et des données d'enseignant

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

Divisé en données d'entraînement et données de test

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.

Supprimer les valeurs manquantes

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.

Apprentissage de modèle

SVC

wine-learning.py


clf = svm.SVC()
clf.fit(X_train, y_train)
Retour logistique

wine-learning.py


clf = LogisticRegression()
clf.fit(X_train, y_train)
Forêt aléatoire

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.

Évaluation du modèle

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 correcte SVC
Taux de réponse correct=  0.6111111111111112
Taux de réponse correcte de la régression logistique
Taux de réponse correct=  0.8888888888888888
Taux de précision de la forêt aléatoire
Taux de réponse correct=  1.0

Classification

wine-learning.py


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

résultat

image.png

Je l'ai fait (Pachi Pachi)

Considération

Recommended Posts

J'ai essayé d'utiliser RandomForest
J'ai essayé d'utiliser paramétré
J'ai essayé d'utiliser argparse
J'ai essayé d'utiliser la mimesis
J'ai essayé d'utiliser anytree
J'ai essayé d'utiliser aiomysql
J'ai essayé d'utiliser Summpy
J'ai essayé d'utiliser coturn
J'ai essayé d'utiliser Pipenv
J'ai essayé d'utiliser matplotlib
J'ai essayé d'utiliser "Anvil".
J'ai essayé d'utiliser Hubot
J'ai essayé d'utiliser ESPCN
J'ai essayé d'utiliser openpyxl
J'ai essayé d'utiliser Ipython
J'ai essayé d'utiliser PyCaret
J'ai essayé d'utiliser cron
J'ai essayé d'utiliser ngrok
J'ai essayé d'utiliser face_recognition
J'ai essayé d'utiliser Jupyter
J'ai essayé d'utiliser doctest
J'ai essayé d'utiliser du folium
J'ai essayé d'utiliser jinja2
J'ai essayé d'utiliser du folium
J'ai essayé d'utiliser la fenêtre de temps
[J'ai essayé d'utiliser Pythonista 3] Introduction
J'ai essayé d'utiliser easydict (mémo).
J'ai essayé la reconnaissance faciale avec Face ++
J'ai essayé d'utiliser BigQuery ML
J'ai essayé d'utiliser Amazon Glacier
J'ai essayé d'utiliser git inspector
J'ai essayé d'utiliser magenta / TensorFlow
J'ai essayé d'utiliser AWS Chalice
J'ai essayé d'utiliser l'émojinateur Slack
Forêt aléatoire (2)
Forêt aléatoire
J'ai essayé d'utiliser Rotrics Dex Arm # 2
J'ai essayé d'utiliser Rotrics Dex Arm
J'ai essayé d'utiliser GrabCut d'OpenCV
J'ai essayé d'utiliser Thonny (Python / IDE)
J'ai essayé de communiquer avec le client serveur en utilisant tmux
J'ai essayé l'apprentissage par renforcement avec PyBrain
J'ai essayé l'apprentissage en profondeur avec Theano
J'ai essayé d'utiliser le notebook jupyter d'une manière ou d'une autre
[Kaggle] J'ai essayé le sous-échantillonnage en utilisant un apprentissage déséquilibré
J'ai essayé de photographier une vague de tortue en utilisant OpenPose
J'ai essayé d'utiliser l'API checkio
J'ai essayé le traitement asynchrone en utilisant asyncio
Jour 67 [Introduction à Kaggle] Avez-vous essayé d'utiliser Random Forest?
Qu'est-ce qui a été demandé lors de l'utilisation de Random Forest dans la pratique
J'ai essayé d'utiliser Amazon SQS avec django-celery
J'ai essayé d'utiliser Azure Speech to Text.
J'ai essayé de gratter
J'ai essayé PyQ
J'ai essayé de jouer au jeu ○ ✕ en utilisant TensorFlow
J'ai essayé d'utiliser du sélénium avec du chrome sans tête