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函数的计算及使用示例。
