python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)
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)
3:设计神经网络结构
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信用评分卡建模(附代码,博主录制)