Heim > Backend-Entwicklung > Python-Tutorial > Wie implementiert man eine lineare Klassifizierung mit Python Scikit-learn?

Wie implementiert man eine lineare Klassifizierung mit Python Scikit-learn?

PHPz
Freigeben: 2023-08-20 18:57:02
nach vorne
839 Leute haben es durchsucht

Die lineare Klassifizierung ist eines der einfachsten Probleme des maschinellen Lernens. Um eine lineare Klassifizierung zu erreichen, verwenden wir den SGD-Klassifikator (Stochastic Gradient Descent) von sklearn, um Irisblütensorten vorherzusagen.

Schritte

Sie können eine lineare Klassifizierung mit Python Scikit-learn implementieren, indem Sie die folgenden Schritte ausführen:

Schritt 1 − Importieren Sie zunächst die notwendigen Pakete scikit-learn, NumPy und matplotlib

Schritt 2 − Laden Sie den Datensatz und erstellen Sie Trainings- und Testdatensätze.

Schritt 3 − Verwenden Sie matplotlib, um die Trainingsinstanz zu zeichnen. Obwohl dieser Schritt optional ist, empfiehlt es sich, das Beispiel deutlicher zu veranschaulichen.

Schritt 4 − Erstellen Sie ein Objekt des SGD-Klassifikators, initialisieren Sie seine Parameter und trainieren Sie das Modell mit der fit()-Methode.

Schritt 5 − Bewerten Sie die Ergebnisse mithilfe des Metrikpakets der Python Scikit-learn-Bibliothek.

Beispiel

wird übersetzt als:

Beispiel

Sehen wir uns das folgende Beispiel an, in dem wir die Art einer Irisblume anhand von zwei Merkmalen der Irisblume vorhersagen, nämlich der Kelchblattbreite und der Kelchblattlänge.

# Import required libraries
import sklearn
import numpy as np
import matplotlib.pyplot as plt
# %matplotlib inline

# Loading Iris flower dataset
from sklearn import datasets
iris = datasets.load_iris()
X_data, y_data = iris.data, iris.target

# Print iris data shape
print ("Original Dataset Shape:",X_data.shape, y_data.shape)

# Dividing dataset into training and testing dataset and standarized the features
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

# Getting the Iris dataset with only the first two attributes
X, y = X_data[:,:2], y_data

# Split the dataset into a training and a testing set(20 percent)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=1)
print ("\nTesting Dataset Shape:", X_train.shape, y_train.shape)

# Standarize the features
scaler = StandardScaler().fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)

# Plot the dataset
# Set the figure size
plt.figure(figsize=(7.16, 3.50))
plt.subplots_adjust(bottom=0.05, top=0.9, left=0.05, right=0.95)
plt.title('Training instances', size ='18')
colors = ['orange', 'green', 'cyan']
for i in range(len(colors)):
   px = X_train[:, 0][y_train == i]
   py = X_train[:, 1][y_train == i]
   plt.scatter(px, py, c=colors[i])
   
plt.legend(iris.target_names)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()

# create the linear model SGDclassifier
from sklearn.linear_model import SGDClassifier
linear_clf = SGDClassifier()

# Train the classifier using fit() function
linear_clf.fit(X_train, y_train)

# Print the learned coeficients
print ("\nThe coefficients of the linear boundary are:", linear_clf.coef_)
print ("\nThe point of intersection of the line are:",linear_clf.intercept_)

# Evaluate the result
from sklearn import metrics
y_train_pred = linear_clf.predict(X_train)
print ("\nThe Accuracy of our classifier is:", metrics.accuracy_score(y_train, y_train_pred)*100)
Nach dem Login kopieren

Ausgabe

Es wird die folgende Ausgabe erzeugt

Original Dataset Shape: (150, 4) (150,)

Testing Dataset Shape: (120, 2) (120,)

The coefficients of the linear boundary are: [[-28.85486061 13.42772422]
[ 2.54806641 -5.04803702]
[ 7.03088805 -0.73391906]]

The point of intersection of the line are: [-19.61738307 -3.54055412 -0.35387805]
Nach dem Login kopieren

Die Genauigkeit unseres Klassifikators: 76,66666666666667

如何使用Python Scikit-learn实现线性分类?

Das obige ist der detaillierte Inhalt vonWie implementiert man eine lineare Klassifizierung mit Python Scikit-learn?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage