import numpy as np
import sklearn
import sklearn.datasets
import sklearn.linear_model
import matplotlib.pyplot as plt
import matplotlib
import operator
import me
def createData(dim=200, cnoise=0.20):
"""
输出:数据集, 对应的类别标签
描述:生成一个数据集和对应的类别标签
"""
np.random.seed(0)
X, y = sklearn.datasets.make_moons(dim, noise=cnoise)
plt.sca!er(X[:, 0], X[:, 1], s=40, c=y, cmap=plt.cm.Spectral)
#plt.show()
return X, y
def plot_decision_boundary(pred_func, X, y):
"""
输入:边界函数, 数据集, 类别标签
描述:绘制决策边界(画图用)
"""
# 设置最小最大值, 加上一点外边界
x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5
y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
h = 0.01
# 根据最小最大值和一个网格距离生成整个网格
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
# 对整个网格预测边界值
Z = pred_func(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
# 绘制边界和数据集的点
plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral)
plt.sca!er(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Spectral)
def calculate_loss(model, X, y):
"""
输入:训练模型, 数据集, 类别标签
输出:误判的概率
描述:计算整个模型的性能
"""
W1, b1, W2, b2 = model['W1'], model['b1'], model['W2'], model['b2']
# 正向传播来计算预测的分类值
z1 = X.dot(W1) + b1
评论0
最新资源