Neural network algorithm example in Python
Neural network is an artificial intelligence model that simulates the human nervous system. It can automatically identify patterns and perform tasks such as classification, regression, and clustering by learning data samples. . As a programming language that is easy to learn and has a powerful scientific computing library, Python excels in developing neural network algorithms. This article will introduce examples of neural network algorithms in Python.
Commonly used neural network libraries in Python include Keras, Tensorflow, PyTorch, etc. The Keras library is based on Tensorflow, which can simplify the process of building neural networks. , so this article will choose the Keras library as the development tool for neural network algorithms. Before using the Keras library, you need to install the Tensorflow library as a backend. Execute the following command on the command line to install the dependent libraries:
pip install tensorflow pip install keras
Before training the neural network, the data needs to be preprocessed . Common data preprocessing includes data normalization, data missing value processing, data feature extraction, etc. In this article, we will use the iris data set for example demonstration. The data set contains 150 records, each record has four features: sepal length, sepal width, petal length, petal width, and the corresponding classification label: Iris Setosa, Iris Versicolour, Iris Virginica. In this dataset, every record is of numeric type, so we just need to normalize the data.
from sklearn.datasets import load_iris from sklearn.preprocessing import MinMaxScaler import numpy as np # 导入数据集 data = load_iris().data labels = load_iris().target # 归一化数据 scaler = MinMaxScaler() data = scaler.fit_transform(data) # 将标签转化为 one-hot 向量 one_hot_labels = np.zeros((len(labels), 3)) for i in range(len(labels)): one_hot_labels[i, labels[i]] = 1
In Keras, you can use the Sequential model to build a neural network model. In this model, we can add multiple layers, each layer has a specific role, such as fully connected layer, activation function layer, Dropout layer, etc. In this example, we use two fully connected layers and one output layer to build a neural network model, in which the number of neurons in the hidden layer is 4.
from keras.models import Sequential from keras.layers import Dense, Dropout from keras.optimizers import Adam # 构建神经网络模型 model = Sequential() model.add(Dense(4, activation='relu')) model.add(Dense(4, activation='relu')) model.add(Dense(3, activation='softmax')) # 配置优化器和损失函数 optimizer = Adam(lr=0.001) model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
Before training the model, we need to divide the data set into a training set and a test set in order to evaluate the accuracy of the model. In this example, we use 80% of the data as the training set and 20% of the data as the test set. When training, we need to specify parameters such as batch size and number of iterations to control the training speed and model accuracy.
from sklearn.model_selection import train_test_split # 将数据集分为训练集和测试集 train_data, test_data, train_labels, test_labels = train_test_split(data, one_hot_labels, test_size=0.2) # 训练神经网络 model.fit(train_data, train_labels, batch_size=5, epochs=100) # 评估模型 accuracy = model.evaluate(test_data, test_labels)[1] print('准确率:%.2f' % accuracy)
The complete code of this example is as follows:
from sklearn.datasets import load_iris from sklearn.preprocessing import MinMaxScaler from sklearn.model_selection import train_test_split import numpy as np from keras.models import Sequential from keras.layers import Dense, Dropout from keras.optimizers import Adam # 导入数据集 data = load_iris().data labels = load_iris().target # 归一化数据 scaler = MinMaxScaler() data = scaler.fit_transform(data) # 将标签转化为 one-hot 向量 one_hot_labels = np.zeros((len(labels), 3)) for i in range(len(labels)): one_hot_labels[i, labels[i]] = 1 # 将数据集分为训练集和测试集 train_data, test_data, train_labels, test_labels = train_test_split(data, one_hot_labels, test_size=0.2) # 构建神经网络模型 model = Sequential() model.add(Dense(4, activation='relu')) model.add(Dense(4, activation='relu')) model.add(Dense(3, activation='softmax')) # 配置优化器和损失函数 optimizer = Adam(lr=0.001) model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy']) # 训练神经网络 model.fit(train_data, train_labels, batch_size=5, epochs=100) # 评估模型 accuracy = model.evaluate(test_data, test_labels)[1] print('准确率:%.2f' % accuracy)
This article introduces examples of neural network algorithms in Python, and uses the iris data set as an example for demonstration. During the implementation process, we used the Keras library and Tensorflow library as neural network development tools, and used the MinMaxScaler library to normalize the data. The results of this example show that our neural network model achieved an accuracy of 97.22%, proving the effectiveness and applicability of the neural network.
The above is the detailed content of Neural network algorithm examples in Python. For more information, please follow other related articles on the PHP Chinese website!