神经网络
感知器(神经元)
感知器模型由输入节点、输出节点和权重连接线组成
单个感知机构成一个简单的决策模型,解决一个线性可分问题: O=G(I1Wi1+I2Wi2+I3*Wi3-t); G 是激活函数常用的有,阶跃函数,sigmoid,tanh; t是偏置项
多层前馈神经网络
对于大量的线性不可分(不可以用一个吸纳行分类器实现分类,直线或者平面)问题,需考虑使用多层神经元;根据神经元所在位置不同可以分为输入层、输出层、隐藏层最后输出层的输出节点个数就是分类个数,输出值表示属于该类型的概率
神经网络拥有多个隐藏层,每层神经元与下一层神经元全连接,同层神经元之间不连接,这样的结构称之为多层前馈神经网络
神经网络的训练:权重和偏置项 学习算法:误差反向传播算法(BP,迭代计算直到获得一个较优值)
from sklearn.neural_network import MLPClassifier
mlp = MLPClassifier(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(5, 5), random_state=1)
mlp.fit(X,y)
print("Train with complete data set: ",mlp.score(X,y))
from sklearn import metrics
y_predicted = mlp.predict(X)
print("Classification report for %s" % mlp)
print(metrics.classification_report(y, y_predicted) )
print( "Confusion matrix:\n", metrics.confusion_matrix(y, y_predicted) )
Train with complete data set: 0.9866666666666667
precision recall f1-score support
0 1.00 1.00 1.00 50
1 0.98 0.98 0.98 50
2 0.98 0.98 0.98 50
avg / total 0.99 0.99 0.99 150
Confusion matrix: [[50 0 0] [ 0 49 1] [ 0 1 49]] 参考书籍:数据科学技术与应用 宋晖 主编
|