Nous avons résumé la classification de l'apprentissage automatique et une implémentation simple à l'aide d'une bibliothèque de ces algorithmes. Le code de chaque algorithme comprend des exemples de données, il peut donc être exécuté tel quel. Étant donné que seuls les paramètres minimaux requis sont définis, veuillez vous reporter au document officiel, etc. pour les paramètres détaillés.
Chaque algorithme a une brève explication, mais aucune explication détaillée.
--Je veux connaître la classification des algorithmes d'apprentissage automatique --Je souhaite implémenter et exploiter un algorithme d'apprentissage automatique
--Comprendre la classification des algorithmes d'apprentissage automatique --Peut implémenter des algorithmes d'apprentissage automatique
L'apprentissage automatique est classé comme suit.
--Apprentissage avec un enseignant --Revenir --Catégorie --Apprendre sans professeur
Cette fois, nous ne traiterons pas de la mise en œuvre de l'apprentissage amélioré.
L'apprentissage supervisé est une méthode d'apprentissage de la réponse à un problème à partir de données qui représentent des caractéristiques (caractéristiques, variables explicatives) et des données qui constituent la réponse (étiquettes, variables objectives).
L'apprentissage supervisé peut être divisé en deux catégories.
--Return: prédire des nombres continus
Je vais expliquer brièvement les données utilisées dans la mise en œuvre.
Ici, nous utiliserons les exemples de données de scicit-learn. Les données utilisées sont les suivantes pour la régression et la classification.
--Revenir
Je présenterai l'algorithme de l'apprentissage supervisé. Il décrit si chaque algorithme peut être appliqué à la régression ou à la classification.
--Revenir
Méthode de modélisation de la relation dans laquelle la variable objectif devient plus grande (plus petite) à mesure que la quantité de caractéristique devient plus grande.
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
#Lire les données
boston = load_boston()
X = boston['data']
y = boston['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
model = LinearRegression()
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print('score is', score)
--Catégorie
Une méthode d'apprentissage de la probabilité qu'un événement se produise.
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
#Lire les données
wine = load_wine()
X = wine['data']
y = wine['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
model = LogisticRegression()
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print('score is', score)
--Revenir --Catégorie
Une méthode de prédiction à la majorité à partir de plusieurs arbres de décision.
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
#Lire les données
boston = load_boston()
X = boston['data']
y = boston['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
model = RandomForestRegressor(random_state=0)
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print('score is', score)
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
#Lire les données
wine = load_wine()
X = wine['data']
y = wine['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
model = RandomForestClassifier(random_state=0)
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print('score is', score)
Une technique pour obtenir de meilleures limites de décision en maximisant les marges.
--Revenir --Catégorie
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.svm import SVR
#Lire les données
boston = load_boston()
X = boston['data']
y = boston['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
model = SVR(kernel='linear', gamma='auto')
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print('score is', score)
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
#Lire les données
wine = load_wine()
X = wine['data']
y = wine['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
model = SVC(gamma='auto')
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print('score is', score)
kNN
Une méthode de mémorisation de toutes les données d'entraînement et de prise de décision majoritaire à partir de k données proches des données que vous souhaitez prédire.
--Revenir --Catégorie
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsRegressor
#Lire les données
boston = load_boston()
X = boston['data']
y = boston['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
model = KNeighborsRegressor(n_neighbors=3)
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print('score is', score)
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
#Lire les données
wine = load_wine()
X = wine['data']
y = wine['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print('score is', score)
Une méthode qui imite les circuits neuronaux du cerveau humain, qui a une structure composée d'une couche d'entrée, d'une couche cachée et d'une couche de sortie.
--Revenir --Catégorie
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from tensorflow.keras import models
from tensorflow.keras import layers
#Lire les données
boston = load_boston()
X = boston['data']
y = boston['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
model = models.Sequential()
model.add(layers.Dense(64, activation='relu', input_shape=(X_train.shape[1],)))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(1))
model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])
model.fit(X_train, y_train)
mse, mae = model.evaluate(X_test, y_test)
print('MSE is', mse)
print('MAE is', mae)
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from tensorflow.keras import models
from tensorflow.keras import layers
from tensorflow.keras import utils
#Lire les données
boston = load_wine()
X = boston['data']
y = utils.to_categorical(boston['target'])
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
model = models.Sequential()
model.add(layers.Dense(64, activation='relu', input_shape=(X_train.shape[1],)))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(3, activation='softmax'))
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train)
crossentropy, acc = model.evaluate(X_test, y_test)
print('Categorical Crossentropy is', crossentropy)
print('Accuracy is', acc)
L'un des ensembles apprenant à former plusieurs modèles. Méthode d'extraction répétée de certaines données et d'entraînement séquentiel de plusieurs modèles d'arbres de décision.
--Revenir --Catégorie
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import lightgbm as lgb
import numpy as np
#Lire les données
wine = load_boston()
X = wine['data']
y = wine['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
lgb_train = lgb.Dataset(X_train, y_train)
lgb_eval = lgb.Dataset(X_test, y_test)
params = {
'objective': 'regression',
'metric': 'mse',
}
num_round = 100
model = lgb.train(
params,
lgb_train,
valid_sets=lgb_eval,
num_boost_round=num_round,
)
y_pred = model.predict(X_test)
score = mean_squared_error(y_test, y_pred)
print('score is', score)
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import lightgbm as lgb
import numpy as np
#Lire les données
wine = load_wine()
X = wine['data']
y = wine['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
lgb_train = lgb.Dataset(X_train, y_train)
lgb_eval = lgb.Dataset(X_test, y_test)
params = {
'objective': 'multiclass',
'num_class': 3,
}
num_round = 100
model = lgb.train(
params,
lgb_train,
valid_sets=lgb_eval,
num_boost_round=num_round,
)
pred = model.predict(X_test)
y_pred = []
for p in pred:
y_pred.append(np.argmax(p))
score = accuracy_score(y_test, y_pred)
print('score is', score)
L'apprentissage non supervisé est une méthode d'apprentissage à partir des seules données qui représentent les caractéristiques sans aucune donnée de réponse.
Dans l'utilisation de l'apprentissage non supervisé, ce sont les données de qualité du vin utilisées dans l'apprentissage supervisé.
Je vais présenter l'algorithme de l'apprentissage non supervisé.
K-means
Une des méthodes de clustering. Une méthode d'organisation des données en k classes.
from sklearn.datasets import load_wine
from sklearn.cluster import KMeans
#Lire les données
wine = load_wine()
X = wine['data']
model = KMeans(n_clusters=3, random_state=0)
model.fit(X)
print("labels: \n", model.labels_)
print("cluster centers: \n", model.cluster_centers_)
print("predict result: \n", model.predict(X))
Une des méthodes de clustering. Une méthode de classification des données selon la distribution gaussienne à laquelle elles appartiennent, en supposant que les données sont générées à partir de plusieurs distributions gaussiennes.
from sklearn.datasets import load_wine
from sklearn.mixture import GaussianMixture
#Lire les données
wine = load_wine()
X = wine['data']
model = GaussianMixture(n_components=4)
model.fit(X)
print("means: \n", model.means_)
print("predict result: \n", model.predict(X))
Une des méthodes de réduction de dimension. Une méthode d'expression de données à partir d'un grand nombre de variables avec moins de variables (composants principaux) tout en préservant les caractéristiques des données.
from sklearn.datasets import load_wine
from sklearn.decomposition import PCA
#Lire les données
wine = load_wine()
X = wine['data']
model = PCA(n_components=4)
model.fit(X)
print('Before Transform:', X.shape[1])
print('After Transform:', model.transform(X).shape[1])
Je n'ai pas suffisamment étudié l'apprentissage non supervisé et le renforcement de l'apprentissage, je vais donc continuer à étudier.
Recommended Posts