python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)

https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share

author: Toby,项目合作QQ:231469242

https://www.youtube.com/watch?v=lAaCeiqE6CE&list=PLXO45tsB95cJ0U2DKySDmhRqQI9IaGxck

人工神经网络 VS 生物神经网络

两者是不一样的

生物神经网络是大自然经过千亿年进化而成,目前最先进人工智能神经网络无法达到

人工神经网络 :通过正反馈和负反馈创建或删除神经元

生物神经网络  :通过刺激产生新的链接,信号通过新的链接传递产生反馈,

目前最先进人工智能神经网络无法模拟生物神经网络

卷积神经网络 CNN (深度学习)应用:

图片识别,语音识别,药物发现

神经网络原理:hidden layer是通过函数传递值

了解神经网络,必须了解线性代数

神经网络对数字识别是一层层分解

https://blog.csdn.net/gamer_gyt/article/details/51255448

scikit-learn博主使用的是0.17版本,是稳定版,当然现在有0.18发行版,两者还是有区别的,感兴趣的可以自己官网上查看

scikit-learn0.17(and 之前)上对于Neural Network算法 的支持仅限于 BernoulliRBM

scikit-learn0.18上对于Neural Network算法有三个  neural_network.BernoulliRBM ,neural_network.MLPClassifier,neural_network.MLPRgression

Multi-layer Perceptron 多层感知机

MLP是一个监督学习算法,图1是带一个隐藏层的MLP模型 

具体可参考:点击阅读

1:神经网络算法简介

2:Backpropagation算法详细介绍

3:非线性转化方程举例

4:自己实现神经网络算法NeuralNetwork

5:基于NeuralNetwork的XOR实例

6:基于NeuralNetwork的手写数字识别实例

7:scikit-learn中BernoulliRBM使用实例

8:scikit-learn中的手写数字识别实例

一:神经网络算法简介

1:背景

以人脑神经网络为启发,历史上出现过很多版本,但最著名的是backpropagation

2:多层向前神经网络(Multilayer  Feed-Forward Neural Network)

多层向前神经网络组成部分

输入层(input layer),隐藏层(hiddenlayer),输出层(output layer)

   每层由单元(units)组成
   输入层(input layer)是由训练集的实例特征向量传入
   经过连接结点的权重(weight)传入下一层,一层的输出是下一层的输入
   隐藏层的个数是任意的,输出层和输入层只有一个
   每个单元(unit)也可以被称作神经结点,根据生物学来源定义
   上图称为2层的神经网络(输入层不算)
   一层中加权的求和,然后根据非线性的方程转化输出
   作为多层向前神经网络,理论上,如果有足够多的隐藏层(hidden layers)和足够大的训练集,可以模拟出任何方程
 

3:设计神经网络结构

    3.1使用神经网络训练数据之前,必须确定神经网络层数,以及每层单元个数
    3.2特征向量在被传入输入层时通常被先标准化(normalize)和0和1之间(为了加强学习过程)
    3.3离散型变量可以被编码成每一个输入单元对应一个特征可能赋的值
        比如:特征值A可能取三个值(a0,a1,a2),可以使用三个输入单元来代表A
                    如果A=a0,那么代表a0的单元值就取1,其他取0
                    如果A=a1,那么代表a1的单元值就取1,其他取0,以此类推
    3.4神经网络即可以用来做分类(classification)问题,也可以解决回归(regression)问题
         3.4.1对于分类问题,如果是2类,可以用一个输入单元表示(0和1分别代表2类)
                                         如果多于两类,每一个类别用一个输出单元表示
                所以输入层的单元数量通常等于类别的数量 
        3.4.2没有明确的规则来设计最好有多少个隐藏层
               3.4.2.1根据实验测试和误差,以及准确度来实验并改进

4:算法验证——交叉验证法(Cross- Validation)

 

神经网络优点和缺点

优点:大数据高效,处理复杂模型,处理多维度数据,灵活快速

缺点:数据需要预处理

代替:TensorFlow,Keras

python sklearn建模处理乳腺癌细胞分类器

# -*- coding: utf-8 -*-
"""
Created on Sun Apr 1 11:49:50 2018 @author: Toby,项目合作QQ:231469242
神经网络
"""
#Multi-layer Perceptron 多层感知机
from sklearn.neural_network import MLPClassifier
#标准化数据,否则神经网络结果不准确,和SVM类似
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
import mglearn
import matplotlib.pyplot as plt
mglearn.plots.plot_logistic_regression_graph()
mglearn.plots.plot_single_hidden_layer_graph() cancer=load_breast_cancer()
x_train,x_test,y_train,y_test=train_test_split(cancer.data,cancer.target,stratify=cancer.target,random_state=42) mlp=MLPClassifier(random_state=42)
mlp.fit(x_train,y_train)
print("neural network:")
print("accuracy on the training subset:{:.3f}".format(mlp.score(x_train,y_train)))
print("accuracy on the test subset:{:.3f}".format(mlp.score(x_test,y_test))) scaler=StandardScaler()
x_train_scaled=scaler.fit(x_train).transform(x_train)
x_test_scaled=scaler.fit(x_test).transform(x_test) mlp_scaled=MLPClassifier(max_iter=1000,random_state=42)
mlp_scaled.fit(x_train_scaled,y_train)
print("neural network after scaled:")
print("accuracy on the training subset:{:.3f}".format(mlp_scaled.score(x_train_scaled,y_train)))
print("accuracy on the test subset:{:.3f}".format(mlp_scaled.score(x_test_scaled,y_test))) mlp_scaled2=MLPClassifier(max_iter=1000,alpha=1,random_state=42)
mlp_scaled.fit(x_train_scaled,y_train)
print("neural network after scaled and alpha change to 1:")
print("accuracy on the training subset:{:.3f}".format(mlp_scaled.score(x_train_scaled,y_train)))
print("accuracy on the test subset:{:.3f}".format(mlp_scaled.score(x_test_scaled,y_test))) plt.figure(figsize=(20,5))
plt.imshow(mlp.coefs_[0],interpolation="None",cmap="GnBu")
plt.yticks(range(30),cancer.feature_names)
plt.xlabel("columns in weight matrix")
plt.ylabel("input feature")
plt.colorbar()

  

python信用评分卡建模(附代码,博主录制)

神经网络1_neuron network原理_python sklearn建模乳腺癌细胞分类器(推荐AAA)的更多相关文章

  1. 支持向量机SVM原理_python sklearn建模乳腺癌细胞分类器(推荐AAA)

    项目合作联系QQ:231469242 sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?cours ...

  2. 决策树decision tree原理介绍_python sklearn建模_乳腺癌细胞分类器(推荐AAA)

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  3. 机器学习公开课笔记(4):神经网络(Neural Network)——表示

    动机(Motivation) 对于非线性分类问题,如果用多元线性回归进行分类,需要构造许多高次项,导致特征特多学习参数过多,从而复杂度太高. 神经网络(Neural Network) 一个简单的神经网 ...

  4. UML类建模(强烈推荐-思路很清晰)

    UML类建模(强烈推荐-思路很清晰) 2016年10月23日 15:17:47 mbshqqb 阅读数:2315 标签: uml面向对象设计模式 更多 个人分类: 面向对象程序设计   UML的构造快 ...

  5. sklearn_随机森林random forest原理_乳腺癌分类器建模(推荐AAA)

     sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  6. 因子分析factor analysis_spss运用_python建模(推荐AAA)

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  7. 卷积神经网络CNN的原理(一)---基本概念

    什么是卷积神经网络呢?这个的确是比较难搞懂的概念,特别是一听到神经网络,大家脑海中第一个就会想到复杂的生物学,让人不寒而栗,那么复杂啊.卷积神经网络是做什么用的呢?它到底是一个什么东东呢? 卷积神经网 ...

  8. 机器学习公开课笔记(5):神经网络(Neural Network)——学习

    这一章可能是Andrew Ng讲得最不清楚的一章,为什么这么说呢?这一章主要讲后向传播(Backpropagration, BP)算法,Ng花了一大半的时间在讲如何计算误差项$\delta$,如何计算 ...

  9. 卷积神经网络CNN的原理(三)---代码解析

    卷积神经网络在几个主流的神经网络开源架构上面都有实现,我这里不是想实现一个自己的架构,主要是通过分析一个最简单的卷积神经网络实现代码,来达到进一步的加深理解卷积神经网络的目的. 笔者在github上找 ...

随机推荐

  1. oppo7.0系统手机(亲测有效)激活Xposed框架的流程

    对于喜欢钻研手机的朋友而言,很多时候会使用到xposed框架及种类繁多功能极强的模块,对于5.0以下的系统版本,只要手机能获得root权限,安装和激活xposed框架是异常简单的,但随着系统版本的升级 ...

  2. Linux安装配置Mariadb

    一.安装数据库Mariadb 参考:http://blog.51cto.com/12173069/2047746 从最新版本的linux系统开始,默认的是 Mariadb而不是mysql! 使用系统自 ...

  3. POST一下就知道:人生苦短,我用Python!

    Python编程笔记---- 背景: “闸机端”简版程序要求: 读取扫描仪得到的userID; 向服务器发送请求进行验证: 根据返回值(True/False)决定闸机的信号. 1. 文件的读取 网上买 ...

  4. C#零基础入门-3-第一个控制台程序

    打开VS2017 文件 新建 项目 模板选择Visual C# Windows 控制台应用程序 快速写入Console.WriteLine 输入cw,然后快速按tab键两次即可.

  5. Delphi中使用ISuperObject解析Json数据

    Java.Php等语言中都有成熟的框架来解析Json数据,可以让我们使用很少的代码就把格式化好的json数据转换成程序可识别的对象或者属性,同时delphi中也有这样的组件来实现此功能,即Isuper ...

  6. SQLServer之数据库行锁

    行锁使用注意事项 1.ROWLOCK行级锁确保在用户取得被更新的行,到该行进行更新,这段时间内不被其它用户所修改.因而行级锁即可保证数据的一致性,又能提高数据操作的并发性. 2.ROWLOCK告诉SQ ...

  7. mysql之limit使用

    在mysql中,limit的使用方式如下: limit m,n --m:表示从哪一行开始查,n:查询多少条 需要明确的是,m表示取条数的起始位置,而n表示取多少条.例如我查询某个表,获取第一条数据,那 ...

  8. 自定义react数据验证组件

    我们在做前端表单提交时,经常会遇到要对表单中的数据进行校验的问题.如果用户提交的数据不合法,例如格式不正确.非数字类型.超过最大长度.是否必填项.最大值和最小值等等,我们需要在相应的地方给出提示信息. ...

  9. 【心得】Lattice Diamond 后端约束实战小结

    [博客导航] [导航]FPGA相关 IOB约束 参考<插入IO寄存器和位置约束---lattice&diamond>,推荐的方法是: 1.在strategy设置[Map Desig ...

  10. 转://从一条巨慢SQL看基于Oracle的SQL优化

    http://mp.weixin.qq.com/s/DkIPwbDKIjH2FMN13GkT4w 本次分享的内容是基于Oracle的SQL优化,以一条巨慢的SQL为例,从快速解读SQL执行计划.如何从 ...