Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie die Scikit-Learn-Bibliothek für maschinelles Lernen in Python.

So verwenden Sie die Scikit-Learn-Bibliothek für maschinelles Lernen in Python.

PHPz
PHPznach vorne
2023-04-22 22:31:111823Durchsuche

Vorwort

scikit-learn ist eine der beliebtesten Bibliotheken für maschinelles Lernen in Python. Sie bietet eine Vielzahl von Algorithmen und Werkzeugen für maschinelles Lernen, einschließlich Klassifizierung, Regression, Clustering, Dimensionsreduktion usw.

Die Vorteile von scikit-learn sind:

  • Einfach zu bedienen: Die Benutzeroberfläche von scikit-learn ist einfach und leicht zu verstehen, sodass Benutzer problemlos mit maschinellem Lernen beginnen können. Einheitliche API: Die API von scikit-learn ist sehr einheitlich und die Methoden zur Verwendung verschiedener Algorithmen sind grundsätzlich gleich, was das Lernen und die Verwendung komfortabler macht.

  • Implementiert eine große Anzahl von Algorithmen für maschinelles Lernen: scikit-learn implementiert verschiedene klassische Algorithmen für maschinelles Lernen und bietet eine Fülle von Tools und Funktionen, um das Debuggen und Optimieren von Algorithmen zu vereinfachen.

  • Open Source und kostenlos: scikit-learn ist vollständig Open Source und kostenlos, jeder kann seinen Code verwenden und ändern.

  • Effizient und stabil: scikit-learn implementiert verschiedene effiziente Algorithmen für maschinelles Lernen, kann große Datensätze verarbeiten und bietet eine gute Leistung in Bezug auf Stabilität und Zuverlässigkeit. scikit-learn eignet sich sehr gut für maschinelles Lernen auf Einstiegsniveau, da die API sehr einheitlich und das Modell relativ einfach ist. Meine Empfehlung hier ist, in Verbindung mit der offiziellen Dokumentation zu studieren, die nicht nur den Anwendungsbereich jedes Modells vorstellt, sondern auch Codebeispiele bereitstellt.

Lineares Regressionsmodell-LinearRegression

Das lineare Regressionsmodell ist ein Modell, das auf linearer Regression basiert und sich zur Lösung von Vorhersageproblemen kontinuierlicher Variablen eignet. Die Grundidee dieses Modells besteht darin, eine lineare Gleichung aufzustellen, die Beziehung zwischen unabhängigen Variablen und abhängigen Variablen als gerade Linie zu modellieren und die Trainingsdaten zum Anpassen der geraden Linie zu verwenden, um die Koeffizienten der linearen Gleichung zu ermitteln. und verwenden Sie dann diese Gleichung, um die Daten auf Vorhersage zu testen.

Das lineare Regressionsmodell eignet sich für Probleme, bei denen eine lineare Beziehung zwischen unabhängigen und abhängigen Variablen besteht, z. B. Immobilienpreisvorhersage, Verkaufsvorhersage, Benutzerverhaltensvorhersage usw. Wenn die Beziehung zwischen der unabhängigen Variablen und der abhängigen Variablen nichtlinear ist, ist die Leistung des LinearRegression-Modells natürlich schlecht. Zu diesem Zeitpunkt können Polynomregression, Ridge-Regression, Lasso-Regression und andere Methoden zur Lösung des Problems verwendet werden.

Bereiten Sie den Datensatz vor

Nach Abzug des Einflusses anderer Faktoren besteht ein gewisser linearer Zusammenhang zwischen Lernzeit und Lernleistung. Natürlich bezieht sich die Lernzeit hier auf die effektive Lernzeit, die als Leistung ausgedrückt wird nimmt mit der Lernzeit zu. Deshalb erstellen wir einen Datensatz über Studienzeit und Noten. Einige Daten im Datensatz sind wie folgt:

Lernzeit, Punkte
0,5, 15
0,75, 23
1,0, 14
1,25, 42
1,5, 21
1,75, 28
1,75, 35
2,0, 51
2,25, 61
2,5,49

Verwenden Sie die lineare Regression

, um Merkmale und Ziele zu bestimmen

Zwischen Lernzeit und Noten ist die Lernzeit das Merkmal, das die unabhängige Variable ist; die Note ist die Bezeichnung, die die abhängige Variable ist. Daher müssen wir uns auf das Erlernen des Extrahierens von Merkmalen und Beschriftungen aus Zeit- und Notendatensätzen vorbereiten.

import pandas as pd
import numpy as np
from sklearn.metrics import r2_score, mean_squared_error
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# 读取学习时间和成绩CSV数据文件
data = pd.read_csv('data/study_time_score.csv')
# 提取数据特征学习时间
X = data['学习时间']
# 提取数据目标(标签)分数
Y = data['分数']

Teilen Sie den Trainingssatz und den Testsatz auf.

Nachdem die Feature- und Label-Daten vorbereitet wurden, verwenden Sie die LinearRegression von scikit-learn für das Training und teilen Sie den Datensatz in einen Trainingssatz und einen Testsatz auf.

"""
将特征数据和目标数据划分为测试集和训练集
通过test_size=0.25将百分之二十五的数据划分为测试集
"""
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.25, random_state=0)
x_train = X_train.values.reshape(-1, 1)
model.fit(x_train, Y_train)

Wählen Sie ein Modell und passen Sie die Daten an

Nach der Vorbereitung des Testsatzes und des Trainingssatzes können wir ein geeignetes Modell auswählen, das zum Trainingssatz passt, damit wir die Ziele vorhersagen können, die anderen Funktionen entsprechen

# 选择模型,选择模型为LinearRegression
model = LinearRegression()
# Scikit-learn中,机器学习模型的输入必须是一个二维数组。我们需要将一维数组转换为二维数组,才能在模型中使用。
x_train = X_train.values.reshape(-1, 1)
# 进行拟合
model.fit(x_train, Y_train)

Modellparameter erhalten

Da der Datensatz nur zwei Lernzeiten und Noten enthält, handelt es sich um ein sehr einfaches lineares Modell. Die mathematische Formel dahinter lautet y=ax+b, wobei die y-abhängige Variable die Noten und die x-unabhängige Variable die Lernzeit ist .

"""
输出模型关键参数
Intercept: 截距 即b
Coefficients: 变量权重 即a
"""
print('Intercept:', model.intercept_)
print('Coefficients:', model.coef_)

Backtest

Das obige Anpassungsmodell verwendet nur die Testsatzdaten, um einen Backtest für die Anpassung des Modells durchzuführen. Anschließend können wir es anpassen Machen Sie Vorhersagen mit dem Feature-Testsatz und vergleichen Sie die erhaltenen Zielvorhersageergebnisse mit den tatsächlichen Zielwerten. Wir können den Anpassungsgrad des Modells ermitteln.

# 转换为n行1列的二维数组
x_test = X_test.values.reshape(-1, 1)
# 在测试集上进行预测并计算评分
Y_pred = model.predict(x_test)
# 打印测试特征数据
print(x_test)
# 打印特征数据对应的预测结果
print(Y_pred)
# 将预测结果与原特征数据对应的实际目标值进行比较,从而获得模型拟合度
# R2 (R-squared):模型拟合优度,取值范围在0~1之间,越接近1表示模型越好的拟合了数据。
print("R2:", r2_score(Y_test, Y_pred))
  • Programmlaufergebnisse

  • Gemäß dem obigen Code müssen wir den Anpassungsgrad des LinearRegression-Modells bestimmen, das heißt, ob die Daten für die Anpassung an ein lineares Modell geeignet sind as follows:

Prediction results:
[47.43726068 33.05457106 49.83437561 63.41802692 41.84399249 37.84880093
23.46611131 37.84880093 26.662 26456 71.40841004 18.67188144 88.9872529 63.41802692 42.6430308 21.86803469 69.81033341 66.61418017 33.05457106 58. 62379705 50.63341392 18.67188144 41.04495418 20.26995807 77.80071653
28.26034119 13.87765157 61.81995029 90.58532953 77. 80071653 36.25072431
84,19302303]
R2: 0,8935675710322939

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Scikit-Learn-Bibliothek für maschinelles Lernen in Python.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen