分享一个朋友的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开

docker/kubernetes入门视频教程


全栈工程师开发手册 (作者:栾鹏)
python数据挖掘系列教程

神经网络算法详情参考:
https://blog.csdn.net/luanpeng825485697/article/details/79009050
https://blog.csdn.net/luanpeng825485697/article/details/79009154
https://blog.csdn.net/luanpeng825485697/article/details/79009223

多层感知器

多层感知器的优点:

  • 可以学习得到非线性模型。
  • 使用partial_fit 可以学习得到实时模型(在线学习)。

多层感知器(MLP)的缺点:

  • 具有隐藏层的 MLP 具有非凸的损失函数,它有不止一个的局部最小值。 因此不同的随机权 - 重初始化会导致不同的验证集准确率。
  • MLP 需要调试一些超参数,例如隐藏层神经元的数量、层数和迭代轮数。
  • MLP 对特征归一化很敏感.

神经网络分类

MLPClassifier 类实现了通过 Backpropagation 进行训练的多层感知器(MLP)算法。

目前, MLPClassifier 只支持交叉熵损失函数,通过运行 predict_proba 方法进行概率估计。

MLP 算法使用的是反向传播的方式。 更准确地说,它使用了通过反向传播计算得到的梯度和某种形式的梯度下降来进行训练。 对于分类来说,它最小化交叉熵损失函数,为每个样本 x 给出一个向量形式的概率估计 P(y|x)

# # =============神经网络用于分类=============
# import numpy as np
# import matplotlib.pyplot as plt
# from sklearn.neural_network import MLPClassifier
# from sklearn.preprocessing import StandardScaler
# 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]
# # 神经网络对数据尺度敏感,所以最好在训练前标准化,或者归一化,或者缩放到[-1,1]
# scaler = StandardScaler() # 标准化转换
# scaler.fit(X)  # 训练标准化对象
# X = scaler.transform(X)   # 转换数据集
# # 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)  # 神经网络输入为2,第一隐藏层神经元个数为5,第二隐藏层神经元个数为2,输出结果为2分类。
# clf.fit(X, y)
# print('每层网络层系数矩阵维度:\n',[coef.shape for coef in clf.coefs_])
# y_pred = clf.predict([[0.317029, 14.739025]])
# print('预测结果:',y_pred)
# y_pred_pro =clf.predict_proba([[0.317029, 14.739025]])
# print('预测结果概率:\n',y_pred_pro)
#
# cengindex = 0
# for wi in clf.coefs_:
#     cengindex += 1  # 表示底第几层神经网络。
#     print('第%d层网络层:' % cengindex)
#     print('权重矩阵维度:',wi.shape)
#     print('系数矩阵:\n',wi)
#
#
# # 绘制分割区域
# x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 # 寻找每个维度的范围
# y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1 # 寻找每个维度的范围
# xx1, xx2 = np.meshgrid(np.arange(x_min, x_max, 0.01),np.arange(y_min, y_max,0.01)) # 在特征范围以0.01位步长预测每一个点的输出结果
# Z = clf.predict(np.c_[xx1.ravel(), xx2.ravel()]) # 先形成待测样本的形式,在通过模型进行预测。
# Z = Z.reshape(xx1.shape) # 将输出结果转换为和网格的矩阵形式,以便绘图
# # 绘制区域网格图
# plt.pcolormesh(xx1, xx2, Z, cmap=plt.cm.Paired)
# # 绘制样本点
# plt.scatter(X[:,0],X[:,1],c=y)
# plt.show()

神经网络回归

MLPRegressor 类多层感知器(MLP)的实现,在使用反向传播进行训练时的输出层没有使用激活函数,也可以看作是使用恒等函数(identity function)作为激活函数。 因此,它使用平方误差作为损失函数,输出是一组连续值。

MLPRegressor 还支持多输出回归,其中一个样本可以有多个目标值。

# # =============神经网络用于回归=============import numpy as np
from sklearn.neural_network import MLPRegressor  # 多层线性回归
from sklearn.preprocessing import StandardScaler
data = [[ -0.017612,14.053064,14.035452],[ -1.395634, 4.662541, 3.266907],[ -0.752157, 6.53862,5.786463],[ -1.322371, 7.152853, 5.830482],[0.423363,11.054677,11.47804 ],[0.406704, 7.067335, 7.474039],[0.667394,12.741452,13.408846],[ -2.46015,6.866805, 4.406655],[0.569411, 9.548755,10.118166],[ -0.026632,10.427743,10.401111],[0.850433, 6.920334, 7.770767],[1.347183,13.1755,14.522683],[1.176813, 3.16702,4.343833],[ -1.781871, 9.097953, 7.316082],[ -0.566606, 5.749003, 5.182397],[0.931635, 1.589505, 2.52114 ],[ -0.024205, 6.151823, 6.127618],[ -0.036453, 2.690988, 2.654535],[ -0.196949, 0.444165, 0.247216],[1.014459, 5.754399, 6.768858],[1.985298, 3.230619, 5.215917],[ -1.693453,-0.55754, -2.250993],[ -0.576525,11.778922,11.202397],[ -0.346811,-1.67873, -2.025541],[ -2.124484, 2.672471, 0.547987],[1.217916, 9.597015,10.814931],[ -0.733928, 9.098687, 8.364759],[1.416614, 9.619232,11.035846],[1.38861,9.341997,10.730607],[0.317029,14.739025,15.056054]
]dataMat = np.array(data)
X=dataMat[:,0:2]
y = dataMat[:,2]
scaler = StandardScaler() # 标准化转换
scaler.fit(X)  # 训练标准化对象
X = scaler.transform(X)   # 转换数据集# solver='lbfgs',  MLP的求解方法:L-BFGS 在小数据上表现较好,Adam 较为鲁棒,SGD在参数调整较优时会有最佳表现(分类效果与迭代次数);SGD标识随机梯度下降。
# alpha:L2的参数:MLP是可以支持正则化的,默认为L2,具体参数需要调整
# hidden_layer_sizes=(5, 2) hidden层2层,第一层5个神经元,第二层2个神经元),2层隐藏层,也就有3层神经网络
clf = MLPRegressor(solver='lbfgs', alpha=1e-5,hidden_layer_sizes=(5, 2), random_state=1)
clf.fit(X, y)
print('预测结果:', clf.predict([[0.317029, 14.739025]]))  # 预测某个输入对象cengindex = 0
for wi in clf.coefs_:cengindex += 1  # 表示底第几层神经网络。print('第%d层网络层:' % cengindex)print('权重矩阵维度:',wi.shape)print('系数矩阵:\n',wi)

正则化

MLPRegressor 类和 MLPClassifier 类都使用参数 alpha 作为正则化( L2 正则化)系数,正则化通过惩罚大数量级的权重值以避免过拟合问题。

python机器学习库sklearn——神经网络相关推荐

  1. Python机器学习库sklearn的安装

    Python机器学习库sklearn的安装 scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上能够为用户提供各种机器学习算法接口 ...

  2. python机器学习库sklearn——决策树

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 决策树的相关的知识内容可以参考 http://blog.csdn.net/luanpeng825485697/article/deta ...

  3. python机器学习库sklearn与graphlab与opencv的安装

    1.安装python 首先安装python3.5 Link 然后安装python2.7 Link 注意选择合适的版本(记得之后安装的GraphLab只能用64位,也只能使用python2) 2.安装使 ...

  4. python机器学习库sklearn——特征提取

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 注意:特征特征提取与 特征选择 有很大的不同:前者包括将任意数据(如文本或图像)转换为可用于机器学习的数值特征.后者是将这些特征应用到 ...

  5. python机器学习库sklearn——集成方法(Bagging、Boosting、随机森林RF、AdaBoost、GBDT)

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 docker/kubernetes入门视频教程 全栈工程师开发手册 (作者:栾鹏) pyth ...

  6. python机器学习库sklearn——交叉验证(K折、留一、留p、随机)

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 学习预测函数的参数,并在相 ...

  7. python机器学习库sklearn——参数优化(网格搜索GridSearchCV、随机搜索RandomizedSearchCV、hyperopt)

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 优化的相关的知识内容可以参 ...

  8. python机器学习库sklearn——逻辑回归

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 逻辑分类的相关的知识内容可以参考 http://blog.csdn.net/luanpeng825485697/article/det ...

  9. python机器学习库sklearn——朴素贝叶斯分类器

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 文档贝叶斯分类器的相关的知 ...

最新文章

  1. 分布式服务框架Dubbo疯狂更新!阿里开源要搞大事情?
  2. Method Overloading
  3. ubuntu的Unity功能安装
  4. zookeeper 命令
  5. 设计模式之_工厂系列_01
  6. ubuntu16.04下面的redis desktop manger的使用
  7. Sublime text3配置xdebug调试记录
  8. jquery级试题_jQuery经典面试题及答案精选
  9. 基于visual Studio2013解决面试题之0507字符串转整数
  10. 赋值运算不会提升数据类型,算术运算会提升类型
  11. iso 绝对pe_深度 WinPE 4.2 维护光盘ISO(含U盘PE制作工具) 下载地址
  12. messagedigest 图片加密_MessageDigest的功能及用法(加密解密)
  13. php财务软件的报表如何实现,浪潮财务软件如何实现汇总报表系统调整表的接收 | 浪潮888博客...
  14. Mac Photoshop 替代品 Pixelmator Pro 2.4 新功能一览
  15. 01 【Verilog实战】同步FIFO的设计(附源码RTL/TB)
  16. 概率统计Python计算:学生分布分位点计算
  17. 安卓4.4.4安装哪个微信版本_安卓用户喜大普奔!安卓版微信7.0.13内测版发布,支持深色模式!...
  18. python电商_电商数据分析(python)
  19. SE2431L-R射频放大器
  20. 数字孪生的思考 01 - 简述一下数字孪生项目的实现路线

热门文章

  1. [转载]基于Stm32,LD3320的非特定语音识别USB HID Keyboar
  2. 语音识别开放平台调研以及主要技术
  3. .net5 不支持winform_.NET 5.0 RC 2 发布,正式版将在11月.NET Conf大会上发布
  4. 【模拟】牛客网:区间表达
  5. ffmpeg系列-解复用流程解析
  6. 给 VS2008 / VS2010 MFC 项目添加启动画面
  7. 《嵌入式》复习资料公共版
  8. centos8安装mysql_Linux宝塔面板安装
  9. Element Form表单布局(一行多列)
  10. highcharts注销