Home > Backend Development > Python Tutorial > SVM examples in Python

SVM examples in Python

PHPz
Release: 2023-06-11 20:42:06
Original
1169 people have browsed it

The Support Vector Machine (SVM) in Python is a powerful supervised learning algorithm that can be used to solve classification and regression problems. SVM performs well when dealing with high-dimensional data and non-linear problems, and is widely used in data mining, image classification, text classification, bioinformatics and other fields.

In this article, we will introduce an example of using SVM for classification in Python. We will use the SVM model from the scikit-learn library, which provides many powerful machine learning algorithms.

First, we need to install the scikit-learn library, which can be installed using the following command in the terminal:

pip install scikit-learn
Copy after login

Next, we will use the classic Iris data set to demonstrate the classification effect of SVM. The Iris data set contains 150 samples, divided into three categories, each category contains 50 samples. Each sample has 4 characteristics: sepal length, sepal width, petal length and petal width. We will use SVM to classify these samples.

First, we need to import the required libraries:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.metrics import accuracy_score
Copy after login

Next, we load the Iris data set:

iris = datasets.load_iris()
Copy after login

Then, we divide the data into a training set and a test set:

X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=0)
Copy after login

Here, we use the train_test_split function to randomly divide the data set into a training set and a test set. The test_size parameter specifies that the test set accounts for 30% of the total data set.

Next, we will use the SVM model to fit the training set:

clf = svm.SVC(kernel='linear', C=1)
clf.fit(X_train, y_train)
Copy after login

Here, we use the linear kernel function and specify a regularization parameter C=1. The hyperparameter C of SVM controls the trade-off between accuracy and complexity of the model. The smaller the C value, the simpler the model is and is prone to under-fitting; the larger the C value is, the more complex the model is and is prone to over-fitting. Usually, we need to choose an appropriate C value through cross-validation.

Next, we use the trained model to predict the test set:

y_pred = clf.predict(X_test)
Copy after login

Finally, we can use the accuracy_score function to calculate the classification accuracy:

accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
Copy after login

Complete The code is as follows:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.metrics import accuracy_score

# Load iris dataset
iris = datasets.load_iris()

# Split data into train and test
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=0)

# Fit SVM model on training data
clf = svm.SVC(kernel='linear', C=1)
clf.fit(X_train, y_train)

# Predict on test data
y_pred = clf.predict(X_test)

# Compute accuracy score
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
Copy after login

In this example, we use the SVM model for classification, targeting a very common data set, the Iris data set. The advantage of SVM is its powerful classification ability and its suitability for high-dimensional data and nonlinear problems. Implementing SVM requires tuning a series of hyperparameters to achieve the best classification effect.

The above is the detailed content of SVM examples in Python. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template