欢迎访问宙启技术站
智能推送

Python实现Sigmoid函数的计算

发布时间:2023-12-11 04:50:04

Sigmoid函数可以将输入的实数映射到[0,1]的范围内,其表达式为:

$$

\sigma(x) = \frac{1}{1 + e^{-x}}

$$

Python提供了math库和numpy库可以用来计算Sigmoid函数。以下分别介绍了两种方法的实现。

方法一:使用math库实现Sigmoid函数计算

首先,我们需要引入math库:

import math

然后,定义一个函数来计算Sigmoid函数的值:

def sigmoid(x):
    return 1 / (1 + math.exp(-x))

通过调用sigmoid函数,我们可以计算出Sigmoid函数在任意实数输入上的值:

print(sigmoid(0))   # 输出:0.5
print(sigmoid(-5))  # 输出:0.0066928509242848554
print(sigmoid(5))   # 输出:0.9933071490757153

方法二:使用numpy库实现Sigmoid函数计算

首先,我们需要引入numpy库:

import numpy as np

然后,定义一个函数来计算Sigmoid函数的值:

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

通过调用sigmoid函数,我们可以计算出Sigmoid函数在任意实数输入上的值,也可以将一个列表作为输入:

print(sigmoid(0))              # 输出:0.5
print(sigmoid(np.array([-5,5])))  # 输出:[0.00669285 0.99330715]

使用Sigmoid函数的一个常见示例是在逻辑回归中作为激活函数。逻辑回归是一种常用的分类算法,它使用Sigmoid函数将输入映射到概率值。

import numpy as np

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# 生成一些模拟的数据
X = np.random.randn(100, 2)  # 100个样本,每个样本有2个特征
y = np.random.randint(0, 2, 100)  # 100个类别标签,0或1

# 使用逻辑回归进行训练和预测
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X, y)
y_pred = model.predict(X)

# 计算准确率
accuracy = np.mean(y_pred == y)
print('准确率:', accuracy)

上述代码首先使用numpy生成了一个包含100个样本,每个样本有2个特征的数据集,以及100个类别标签。然后,使用sklearn库的LogisticRegression类对数据进行训练和预测,并计算预测准确率。

Sigmoid函数是神经网络中常用的激活函数之一,它可以将任意实数输入映射到[0,1]的范围,也被用于逻辑回归等其他机器学习算法中。以上是Python实现Sigmoid函数的计算及使用示例。