用Numpy实现sigmoid函数

  • Post category:Python

使用Numpy实现sigmoid函数的步骤如下:

1. 引入Numpy库

import numpy as np

2. 实现sigmoid函数

def sigmoid(x):
    """
    实现sigmoid函数:f(x) = 1 / (1 + exp(-x))
    输入:
        x -- 一个数或数组
    输出:
        s -- sigmoid函数的值
    """
    s = 1 / (1 + np.exp(-x))
    return s

sigmoid函数是一个常用的激活函数,它的值域在[0, 1]之间,具有平滑的非线性特性。使用numpy可以方便地对数组进行计算,加速运算过程。

3. 示例1:绘制sigmoid函数图像

import matplotlib.pyplot as plt

# 生成数据
x = np.linspace(-10, 10, 100)
y = sigmoid(x)

# 绘制图像
plt.plot(x, y)
plt.title("Sigmoid Function")
plt.xlabel("x")
plt.ylabel("sigmoid(x)")
plt.show()

通过绘制sigmoid函数图像,可以直观地了解sigmoid函数的特性。例如当x接近于正无穷大时,函数的值趋近于1;x接近于负无穷大时,函数的值趋近于0;而在x=0处,函数取值为0.5。

4. 示例2:使用sigmoid函数进行分类

在机器学习中,sigmoid函数通常用于二分类任务的决策边界划分。例如我们有如下数据:

X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
y = np.array([0, 0, 1])

其中X是三个样本的特征,y是它们对应的标签(0表示负样本,1表示正样本)。我们可以使用sigmoid函数对特征进行加权求和,并将结果输入到sigmoid函数中得到预测值。代码如下:

# 初始化参数
w = np.array([[0.1], [0.2], [0.3]])
b = -0.1

# 计算预测值
z = np.dot(X, w) + b
y_hat = sigmoid(z)

由于sigmoid函数的取值在[0, 1]之间,可以将其视为概率值进行预测。例如当y_hat>0.5时,预测值为正样本;当y_hat<=0.5时,预测值为负样本。

以上就是使用Numpy实现sigmoid函数的完整攻略,期望能对您有所帮助。