python调用sklearn库BP机器学习基于小样本进行痘痘预测尝试

  • 背景:
  • MLPClassifier() BP
  • 处理过程:
    • 数据集
    • 证明下痘痘数据的真实性(自己每天记录),还是有点正态分布特征:
    • 数据标准化:
      • Excel标准化:
      • python的StandardScaler()标准化:
    • 代码时刻:
    • 运行结果:
  • 结论:

背景:

MLPClassifier() BP

这个暑假有幸接触到Anaconda,甚至不知道具体怎么念,自己慢慢瞎摸乱搜慢慢学嘛。这个sklearn库,有点厉害。只需调用通过参数,解放了双手去编算法,得以零基础用机器学习。
本渣渣来到弗兰脸上容易长痘。自己平常喜欢将各种生活状态量化表示。遂有了自己的一个小excel。这个数据集100多天。
于是,我决定对尝试下跨学科来进行医疗与机器学习。自己做的没什么价值的,但万一言者无心,听者有意呢。

处理过程:

数据集

尽管数据少,而且我只用了辣椒和油炸两个因素。我尝试加进去起床时间、天气,严重拉低预测率,遂放弃。但睡眠时间也是稍微拉低一点。
首先展示部分样本,我只用了油炸、辣椒两个参数。(本人数据 链接:https://pan.baidu.com/s/1kepl3NJm26IKbFOVSYdzqw 提取码:2h45)

证明下痘痘数据的真实性(自己每天记录),还是有点正态分布特征:


我通过这个直方图将痘痘分为2,3,4,5。4个等级

数据标准化:

Excel标准化:

痘痘评分按上直方图进行量化后
睡眠时间先转浮点再通过excel表的if else if else…语句统一标准化

python的StandardScaler()标准化:

再次统一对训练数据进行标准化操作

代码时刻:

# -*- coding: utf-8 -*-
"""
Created on Tue Sep  3 19:10:07 2019
使用BP神经网络模型
@author: yiqing
"""
#import numpy as np
import pandas as pd
#import matplotlib.pyplot as plt
from sklearn.metrics import classification_report
#from sklearn.metrics import roc_curve
#from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPClassifier
#from sklearn.externals import joblibdef read():dates=pd.read_excel("D:\ziliao\jihua\日常记录3月.xlsx",sheet_name=1)print(dates.iloc[:98,16:19])#代表矩阵的16至19行 矩阵从(0,0)开始x_train=dates.iloc[30:79,17:19]print("xtrain:/n",x_train)y_train=dates.iloc[30:79,23]*10x_test=dates.iloc[80:129,17:19]y_test=dates.iloc[80:129,23]*10# 神经网络对数据尺度敏感,所以最好在训练前标准化,或者归一化,或者缩放到[-1,1]#数据标准化scaler = StandardScaler() # 标准化转换scaler.fit(x_test)  # 训练标准化对象x_test_Standard= scaler.transform(x_test)   # 转换数据集scaler.fit(x_train)  # 训练标准化对象x_train_Standard= scaler.transform(x_train)   # 转换数据集#bp=MLPClassifier(hidden_layer_sizes=(500, ), activation='relu', solver='lbfgs', alpha=0.0001, batch_size='auto', learning_rate='constant')bp.fit(x_train_Standard,y_train.astype('int'))y_predict=bp.predict(x_test_Standard)y_test1=y_test.tolist()y_predict=list(y_predict)#print(int(y_test1[1]))for i in range(len(y_test1)):y_test1[i]=int(y_test1[i])print('BP网络基于辣椒与油炸预测脸上痘痘评价报告:\n',classification_report(y_test.astype('int'),y_predict))print("真实数据:\t",y_test1)print("预测数据:\t",y_predict)if __name__ == "__main__":read()

运行结果:

BP网络基于辣椒与油炸预测脸上痘痘评价报告:precision    recall  f1-score   support2       0.00      0.00      0.00         03       0.50      0.30      0.37        104       0.85      0.89      0.87        38avg / total       0.78      0.77      0.77        48真实数据:    [4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 4, 3]
预测数据:    [4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, 4]

结论:

(瞎扯的)
1)总预测率 78%还是不错的,主要原因大部分都是4,太稳定了,数据还是太少,想预测难都难
2)油炸与辣椒较影响痘痘,但相关性不是特别强。
3)go to bed时刻与总睡眠时长次之
4)天气、起床时间毫无关系
5) 我觉得应该痘痘与前好几天的饮食有关,正所谓冰冻一尺非一日之寒。
6) 个人认为:情绪状况、饮水、每日洗脸状况也可考虑在内。
7) 一方水土养一方人,回家不长痘,觉得这是在家喝粥,在学校不喝粥主稻造成也有点关系
8)用药。很有用。不过我没记录那几天
9)自己记录有失偏颇,无打分量准,完全看心情。

python调用sklearn库BP神经网络基于小样本进行痘痘预测尝试相关推荐

  1. BP神经网络——基于近红外光谱的汽油辛烷值预测

    BP神经网络--基于近红外光谱的汽油辛烷值预测 问题描述 获取数据 解题思路及步骤 1.产生训练集/测试集 2.创建/训练BP神经网络及仿真测试 3.性能评价 4.绘图 Matalab代码 问题描述 ...

  2. python 调用 so 库 需要注意的地方

    2019独角兽企业重金招聘Python工程师标准>>> 使用C++而不是C来编写so库时往往会遇到一些问题,这里着重探讨一下linux环境下C++编写so库 及python调用so库 ...

  3. Python安装sklearn库时出现异常:ERROR: Could not install packages due to an EnvironmentError: [Errno 2]

    文章目录 一.问题描述 二.问题解决 一.问题描述 今天在学习python机器学习时,需要安装python的sklearn库,在安装的过程中出现了以下错误 上CSDN上找了好多文章,都没办法解决问题 ...

  4. python 神经网络 多进程_使用python实现一段bp神经网络后,由于数据量增多(76条),出现nan报错...

    使用python实现一段bp神经网络后,由于数据量增多(76条),出现nan报错 代码如下: # coding:utf-8 import numpy as np import matplotlib.p ...

  5. Python调用C库及进程形式启动C的线程

    Python调用C库的线程则比lua好多了,只是lua的体量比较小,python就要大一点,python使用ctypes调用C库(注意这里就不同于lua需要以lua形式 提供c接口,python可以直 ...

  6. PSCAD通过python调用自动化库的实现

    带有python脚本的pscad自动化 PSCAD通过python调用自动化库的实现 前期准备 实现 导入项目 官方例子 PSCAD通过python调用自动化库的实现 在网上搜了一圈没有找到,通过油管 ...

  7. Python机器学习Sklearn入门之神经网络

    Python机器学习Sklearn入门之神经网络 MLP 神经网络算法 MLP 神经网络算法函数位于 neural_network 神经网络模块,函数名是 MLPClassifier,接口是 MLPC ...

  8. 【视频】Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析|数据分享...

    全文下载链接:http://tecdat.cn/?p=23544 在本文中,长短期记忆网络--通常称为"LSTM"--是一种特殊的RNN递归神经网络,能够学习长期依赖关系(点击文末 ...

  9. Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析

    原文链接:http://tecdat.cn/?p=23544  下面是一个关于如何使用长短期记忆网络(LSTM)来拟合一个不平稳的时间序列的例子. 每年的降雨量数据可能是相当不平稳的.与温度不同,温度 ...

  10. RBF神经网络——基于近红外光谱的汽油辛烷值预测

    RBF神经网络--基于近红外光谱的汽油辛烷值预测 问题描述 辛烷值是汽油最重要的品质指标,传统的实验室检测方法存在样品用量大.测试周期长和费用高等问题,不适用与生产控制,特别是在线测试,近红外光谱分析 ...

最新文章

  1. Python基础4_列表,元祖
  2. Kd-Tree算法原理和开源实现代码
  3. 解决oracle主键问题,解决renren-security使用oracle主键问题
  4. warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失...
  5. S7 Linux用户管理及用户信息查询命令
  6. Microsoft Operations Management Suite 启用NPM网络性能监视
  7. centos7安装oracle12c 一
  8. TensorFlow——Ubuntu系统上TensorFlow的安装教程
  9. Si24R2E超低功耗2.4G有源RFID芯片
  10. 《信任的速度》读书笔记
  11. 学习日记day35 平面设计 作品练习字体设计
  12. 尹伊:我的学习成长路径
  13. firefox 无法启动
  14. 代数表达式c语言表达式,[单选] 设floata=2,b=4,c=3;,以下C语言表达式与代数式(a+b)+c计算结果不一致的是()...
  15. 《宣州谢眺楼饯别校书叔云》 李白诗两首
  16. RO,RW,ZI概念
  17. sudo apt-get install build-essential的作用
  18. VS2022+PCL 1.12.1
  19. Windows如何打开命令模式
  20. Leon : YoloV5 结构原理全解析 思维导图版

热门文章

  1. 老表,教你一招啊!!!如何用python实现将csv文件快速导入数据库,建议收藏!!!
  2. Python如何使用生成器得到斐波那契数列
  3. 数据结构二叉树的建立代码_二叉树就是这么简单
  4. 编译php的问题,php编译常见错误
  5. MySQL 8.0窗口函数介绍(一)
  6. Mysql 数据库中Where 关键字的使用
  7. 论文笔记_S2D.29_2017_CVPR_多尺度连续CRFs作为序列深度网络的单目深度估计
  8. 形式语义学关于带权有向图最短路径的有模式函数算法
  9. mac OS X下终端使用tree命令列目录
  10. 如何学习多传感器感知融合技术?