python写softmax分类三类平面上的二维点的代码
时间: 2024-05-11 22:14:46 浏览: 144
可以使用以下代码实现:
```python
import numpy as np
def softmax(x):
"""Compute softmax values for each sets of scores in x."""
e_x = np.exp(x - np.max(x))
return e_x / e_x.sum(axis=0)
# 生成三类平面上的二维点
np.random.seed(0)
num_points = 100
X = np.zeros((num_points*3, 2))
y = np.zeros(num_points*3, dtype=int)
for i in range(3):
mean = np.random.randn(2)
cov = np.eye(2)
X[i*num_points:(i+1)*num_points, :] = np.random.multivariate_normal(mean, cov, num_points)
y[i*num_points:(i+1)*num_points] = i
# 对数据进行归一化
X = (X - np.mean(X, axis=0)) / np.std(X, axis=0)
# 计算每个点的softmax概率
scores = np.dot(X, np.random.randn(2, 3))
probs = softmax(scores.T).T
# 预测每个点属于哪一类
predictions = np.argmax(probs, axis=1)
print(predictions)
```
这段代码会生成三类平面上的二维点,并使用softmax分类算法对这些点进行分类。
阅读全文