Wir haben die Klassifizierung des maschinellen Lernens und eine einfache Implementierung unter Verwendung einer Bibliothek dieser Algorithmen zusammengefasst. Der Code jedes Algorithmus enthält Beispieldaten, sodass er so ausgeführt werden kann, wie er ist. Da nur die minimal erforderlichen Parameter eingestellt sind, finden Sie detaillierte Einstellungen im offiziellen Dokument usw.
Jeder Algorithmus hat eine kurze Erklärung, aber keine detaillierte Erklärung.
Maschinelles Lernen wird wie folgt kategorisiert.
Dieses Mal werden wir uns nicht mit der Implementierung von verbessertem Lernen befassen.
Überwachtes Lernen ist eine Methode zum Lernen der Antwort auf eine Frage aus Daten, die Merkmale (Merkmale, erklärende Variablen) darstellen, und Daten, die die Antwort sind (Bezeichnungen, objektive Variablen).
Betreutes Lernen kann in die folgenden zwei Kategorien unterteilt werden.
--Return: Sagen Sie fortlaufende Zahlen voraus
Ich werde kurz die in der Implementierung verwendeten Daten erläutern.
Hier werden wir die Beispieldaten von scicit-learn verwenden. Die verwendeten Daten sind wie folgt für die Regression und Klassifizierung.
--Rückkehr
Ich werde den Algorithmus des überwachten Lernens vorstellen. Es wird beschrieben, ob jeder Algorithmus auf Regression oder Klassifizierung angewendet werden kann.
--Rückkehr
Eine Methode zum Modellieren der Beziehung, in der die Zielvariable größer (kleiner) wird, wenn die Merkmalsmenge größer wird.
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
#Daten lesen
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)
--Kategorie
Eine Methode zum Lernen der Wahrscheinlichkeit, dass ein Ereignis eintritt.
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
#Daten lesen
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)
--Rückkehr --Kategorie
Eine Methode zur mehrheitlichen Vorhersage aus mehreren Entscheidungsbäumen.
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
#Daten lesen
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
#Daten lesen
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)
Eine Technik, um bessere Entscheidungsgrenzen durch Maximierung der Ränder zu erzielen.
--Rückkehr --Kategorie
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.svm import SVR
#Daten lesen
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
#Daten lesen
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
Eine Methode zum Speichern aller Trainingsdaten und zum Treffen einer Mehrheitsentscheidung aus k Daten, die nahe an den Daten liegen, die Sie vorhersagen möchten.
--Rückkehr --Kategorie
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsRegressor
#Daten lesen
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
#Daten lesen
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)
Eine Methode, die die neuronalen Schaltkreise des menschlichen Gehirns nachahmt und eine Struktur aufweist, die aus einer Eingangsschicht, einer verborgenen Schicht und einer Ausgangsschicht besteht.
--Rückkehr --Kategorie
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from tensorflow.keras import models
from tensorflow.keras import layers
#Daten lesen
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
#Daten lesen
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)
Einer der Ensembles lernt, mehrere Modelle zu trainieren. Eine Methode zum wiederholten Extrahieren einiger Daten und zum sequentiellen Trainieren mehrerer Entscheidungsbaummodelle.
--Rückkehr --Kategorie
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
#Daten lesen
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
#Daten lesen
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)
Unbeaufsichtigtes Lernen ist eine Methode, um nur aus den Daten zu lernen, die die Merkmale ohne Antwortdaten darstellen.
Bei der Verwendung von unbeaufsichtigtem Lernen handelt es sich um die Qualitätsdaten des Weins, der beim überwachten Lernen verwendet wird.
Ich werde den Algorithmus des unbeaufsichtigten Lernens vorstellen.
K-means
Eine der Clustering-Methoden. Eine Methode zum Organisieren von Daten in k Klassen.
from sklearn.datasets import load_wine
from sklearn.cluster import KMeans
#Daten lesen
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))
Eine der Clustering-Methoden. Eine Methode zum Klassifizieren von Daten nach der Gaußschen Verteilung, zu der sie gehören, unter der Annahme, dass die Daten aus mehreren Gaußschen Verteilungen generiert werden.
from sklearn.datasets import load_wine
from sklearn.mixture import GaussianMixture
#Daten lesen
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))
Eine der Methoden zur Dimensionsreduzierung. Eine Methode zum Ausdrücken von Daten aus einer großen Anzahl von Variablen mit weniger Variablen (Hauptkomponenten) unter Beibehaltung der Eigenschaften der Daten.
from sklearn.datasets import load_wine
from sklearn.decomposition import PCA
#Daten lesen
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])
Ich habe nicht genug über unbeaufsichtigtes Lernen und die Stärkung des Lernens gelernt, deshalb werde ich weiter lernen.
Recommended Posts