您的位置:首页 > 理论基础 > 计算机网络

python机器学习库sklearn——神经网络感知器

2018-01-15 11:05 519 查看
全栈工程师开发手册 (作者:栾鹏)

python数据挖掘系列教程

神经网络多层感知器的相关的知识内容可以参考

http://blog.csdn.net/luanpeng825485697/article/details/79009050

这里只讲述sklearn中如何使用感知器进行分类。

import numpy as np

from sklearn.neural_network import MLPClassifier  # 多层感知器

data = [
[-0.017612, 14.053064, 0],
[-1.395634, 4.662541, 1],
[-0.752157, 6.53862, 0],
[-1.322371, 7.152853, 0],
[0.423363, 11.054677, 0],
[0.406704, 7.067335, 1],
[0.667394, 12.741452, 0],
[-2.46015, 6.866805, 1],
[0.569411, 9.548755, 0],
[-0.026632, 10.427743, 0],
[0.850433, 6.920334, 1],
[1.347183, 13.1755, 0],
[1.176813, 3.16702, 1],
[-1.781871, 9.097953, 0],
[-0.566606, 5.749003, 1],
[0.931635, 1.589505, 1],
[-0.024205, 6.151823, 1],
[-0.036453, 2.690988, 1],
[-0.196949, 0.444165, 1],
[1.014459, 5.754399, 1],
[1.985298, 3.230619, 1],
[-1.693453, -0.55754, 1],
[-0.576525, 11.778922, 0],
[-0.346811, -1.67873, 1],
[-2.124484, 2.672471, 1],
[1.217916, 9.597015, 0],
[-0.733928, 9.098687, 0],
[1.416614, 9.619232, 0],
[1.38861, 9.341997, 0],
[0.317029, 14.739025, 0]
]

dataMat = np.array(data)
X=dataMat[:,0:2]
y = dataMat[:,2]

# solver='lbfgs',  MLP的求解方法:L-BFGS 在小数据上表现较好,Adam 较为鲁棒,SGD在参数调整较优时会有最佳表现(分类效果与迭代次数);SGD标识随机梯度下降。
# alpha:L2的参数:MLP是可以支持正则化的,默认为L2,具体参数需要调整
# hidden_layer_sizes=(5, 2) hidden层2层,第一层5个神经元,第二层2个神经元),2层隐藏层,也就有3层神经网络
clf = MLPClassifier(solver='lbfgs', alpha=1e-5,hidden_layer_sizes=(5, 2), random_state=1)
clf.fit(X, y)
print('predict\t', clf.predict([[0.317029, 14.739025]]))  # 预测某个输入对象
print('predict\t', clf.predict_proba([[0.317029, 14.739025]]))  # 预测某个输入对象属于分类的概率

cengindex = 0
for wi in clf.coefs_:
cengindex += 1  # 表示底第几层神经网络。
print(cengindex, wi.shape, wi)  # 打印每层的权重矩阵。第1层为两个输入到5个神经元,第元到1个输出结果2层为5个神经元到2个神经元,第3层为2个神经
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: