Hello, 2024.
用NeuralNetwork类(详见博文《最优化方法Python计算:无约束优化应用——神经网络回归模型》)和Classification类(详见博文《最优化方法Python计算:无约束优化应用——线性回归分类器》)可以构建用于分类的神经网络。
class NeuralNetworkClassifier(Classification, NeuralNetwork): #神经网络分类模型
def __init__(self, hidden_layer_sizes = (100,)):
super().__init__(hidden_layer_sizes) #执行父类构造函数
self.tagVal = np.round #分类任务通过四舍五入离散化
注意构造函数中第4行将目标值函数设置为Numpy的round函数以适应分类模型。用NeuralNetworkClassifier解决下列案例。
综合案例
乳腺癌是困扰女性的一种疾病。随着医学科学的长足发展,许多病人通过手术可解除病痛,延续生命。然而,根据检查数据对患者的正确诊断是有效治疗的前提。文件breast-cancer-wisconsin.csv(来自UC Irvine Machine Learning Repository)记录了699例病人的记录。
编号 | 肿块密度 | 大小均匀性 | 形状均匀性 | 边缘粘附性 | 单一细胞大小 | 裸核 | 乏味染色体 | 正常核 | 有丝分裂 | 分类 |
---|---|---|---|---|---|---|---|---|---|---|
1000025 | 5 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 |
1002945 | 5 | 4 | 4 | 5 | 7 | 10 | 3 | 2 | 1 | 2 |
1015425 | 3 | 1 | 1 | 1 | 2 | 2 | 3 | 1 | 1 | 2 |
⋮ \vdots ⋮ | ⋮ \vdots ⋮ |