文章目录

  • ML、DL学习记录1
    • ML 、sklearn
    • Tensorflow2.2.0安装问题

ML、DL学习记录1

ML 、sklearn

# coding: utf-8
# Date:2020/8/12 19:22
# @Author: hcf
# @Name: toy
import osimport numpy as np
import pandas as pd
import sklearn
# scikit-learn 包# 准确度分数
from sklearn.metrics import accuracy_score
# 对标签 进行 编码 的预处理操作
from  sklearn.preprocessing import LabelEncoder# 划分训练集和测试集
from sklearn.model_selection import train_test_split
# 交叉验证, 找较好的超参数
from sklearn.model_selection import GridSearchCV
# Node:有的版本把 joblab 删掉了,可能需要自己使用pip install joblib进行安装
from sklearn.externals import joblib
# 随机森林
from sklearn.ensemble import RandomForestClassifier### 逻辑回归、朴素贝叶斯、SVM
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import BernoulliNB,MultinomialNB
from sklearn.svm import SVC
## 经典的数据集合
# ML : Iris
# uci:数据集
# DL : MNIST , IMDB
# GNN: Cora# ML: scikit-learn
def forset0():data = pd.read_csv('iris.data',header=None)# print(data)x = data[np.arange(4)]y = data[4]print(x)# 编码器   将字符串转换为 数字 for example: 好、还好、不好 == 0 1 2le = LabelEncoder()# fit 转换操作 对因子编码le.fit(y)# 转换result = le.transform(y)print(y)print(result)coding = [0,1,2,2,1,0]# 逆转inv_coding = le.inverse_transform(coding)print(inv_coding)# 随机森林# 决策树的数目、分割标准(:gini、entropy)、决策树最大深度、分割节点最小的样本数目(最小为2,默认也为2)# 叶子节点最少要多少样本model = RandomForestClassifier(n_estimators=20,criterion='gini',max_depth=5,min_samples_split=5,min_samples_leaf=3)model.fit(x,result)def forset1():# 数据读取data = pd.read_csv('iris.data',header=None)# print(data)x = data[np.arange(4)]x = x[[2,3]]y = LabelEncoder().fit_transform(data[4])# 随机森林# 决策树的数目、分割标准(:gini、entropy)、决策树最大深度、分割节点最小的样本数目(最小为2,默认也为2)# 叶子节点最少要多少样本、随机的种子x_train,x_test,y_train,y_test = train_test_split(x,y)model = RandomForestClassifier(n_estimators=20, criterion='gini', max_depth=5, min_samples_split=5, min_samples_leaf=3,random_state=2020)model.fit(x_train,y_train)y_pred = model.predict(x)# print('real :', y)# print('model predit : ',y_pred)result = y == y_predprint(result)# True 的数目、False的数目print(pd.value_counts(result))# 正确率print(np.mean(result))# 特征(属性)重要度, 有的时候将不重要的属性去掉  可能提高准确度fea_importance = model.feature_importances_print(fea_importance)# 分类概率 [样本数,类数目]print(model.predict_proba(x))# 大多数模型的输出是概率,但是KNN,SVM之类的输出不是概率# 存在随机性质: 模型、数据## 数据划分 :train 和 test
# 准确率
def forset2():data = pd.read_csv('iris.data',header=None)# print(data)x = data[np.arange(4)]x = x[[2,3]]y = LabelEncoder().fit_transform(data[4])# 划分训练集、测试集x_train,x_test,y_train,y_test = train_test_split(x, y, test_size=0.3)# 随机森林# 决策树的数目、分割标准(:gini、entropy)、决策树最大深度、分割节点最小的样本数目(最小为2,默认也为2)# 叶子节点最少要多少样本、随机的种子model = RandomForestClassifier(n_estimators=20, criterion='gini', max_depth=5, min_samples_split=5, min_samples_leaf=3,random_state=2020)model.fit(x_train, y_train)y_train_pred = model.predict(x_train)y_test_pred = model.predict(x_test)# 准确度print('Train : ', accuracy_score(y_train,y_train_pred))print('Test  : ', accuracy_score(y_test, y_test_pred))# 数据划分 :train 和 test
# 交叉验证
# 保存模型
def forset3():data = pd.read_csv('iris.data',header=None)# print(data)x = data[np.arange(4)]# 经过之前步骤   查看属性重要度后发现第2、3属性两个重要一些   所以单独提出来训练模型x = x[[2,3]]# 用于编码y = LabelEncoder().fit_transform(data[4])# 划分训练集、测试集 30%的分为测试集合( train:test  == 7:3)x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3)if os.path.exists('rf.model'):print('模型加载...')model = joblib.load('rf.model')else:print('模型Train...')# 随机森林# 决策树的数目、分割标准(:gini、entropy)、决策树最大深度、分割节点最小的样本数目(最小为2,默认也为2)# 叶子节点最少要多少样本、随机的种子rf = RandomForestClassifier(n_estimators=20, criterion='gini', max_depth=5, min_samples_split=5, min_samples_leaf=3,random_state=2020)# rf : 模型# cv : 3折交叉验证model = GridSearchCV(rf, cv=3,param_grid={'max_depth':np.arange(3,7),'min_samples_split': np.arange(2,9,2),'min_samples_leaf':np.arange(1,5)})model.fit(x_train, y_train)print("最优参数:",model.best_params_)print("最优模型:", model.best_estimator_)print("最优分数:", model.best_score_)y_train_pred = model.predict(x_train)y_test_pred = model.predict(x_test)# 准确度print('Train : ', accuracy_score(y_train,y_train_pred))print('Test  : ', accuracy_score(y_test, y_test_pred))# 保存模型joblib.dump(model, 'rf.model')# 数据划分 :train 和 test
# 交叉验证
# 保存模型
def forset3():data = pd.read_csv('iris.data',header=None)# print(data)x = data[np.arange(4)]x = x[[2,3]]y = LabelEncoder().fit_transform(data[4])# 划分训练集、测试集x_train,x_test,y_train,y_test = train_test_split(x, y, test_size=0.3)if os.path.exists('rf.model'):print('模型加载...')model = joblib.load('rf.model')else:print('模型Train...')# 随机森林# 决策树的数目、分割标准(:gini、entropy)、决策树最大深度、分割节点最小的样本数目(最小为2,默认也为2)# 叶子节点最少要多少样本、随机的种子# 当想要使用其他的模型的时候, 只需要换掉下面这一句(就是说:所有的sklearn的模型的操作都是一样的流程)rf = RandomForestClassifier(n_estimators=20, criterion='gini', max_depth=5, min_samples_split=5, min_samples_leaf=3,random_state=2020)# rf : 模型# cv : 3折交叉验证model = GridSearchCV(rf, cv=3,param_grid={'max_depth':np.arange(3,7),'min_samples_split': np.arange(2,9,2),'min_samples_leaf':np.arange(1,5)})model.fit(x_train, y_train)print("最优参数:",model.best_params_)print("最优模型:", model.best_estimator_)print("最优模型:", model.best_score_)y_train_pred = model.predict(x_train)y_test_pred = model.predict(x_test)# 准确度print('Train : ', accuracy_score(y_train,y_train_pred))print('Test  : ', accuracy_score(y_test, y_test_pred))# 保存模型joblib.dump(model, 'rf.model')if __name__ == '__main__':forset3()

Tensorflow2.2.0安装问题

原因是:tensorflow的底层是c++,系统缺少了microsotf vc++组件,百度下载“微软常用运行库合集”并安装,就不会报错了

ML、DL、CNN学习记录1相关推荐

  1. ML、DL、CNN学习记录8

    文章目录 ML.DL.CNN学习记录7 强化学习 Makov 贝尔曼方程 Value-Based 知识图谱 图神经网络 ML.DL.CNN学习记录7 强化学习(Reinforcement Learni ...

  2. ML、DL、CNN学习记录7

    文章目录 ML.DL.CNN学习记录7 GAN(Generative Adversarial Network) GAN的学习 GAN的损失函数 GAN 训练 GAN的扩展 DCGAN CGAN Sta ...

  3. ML、DL、CNN学习记录6

    文章目录 ML.DL.CNN学习记录5 VAE VAE 工作流程 VAE's Detail code+explain Model Output GAN GAN原理 CRNN(多用于文字识别) ML.D ...

  4. ML、DL、CNN学习记录5

    文章目录 ML.DL.CNN学习记录4 RNN RNN类别 Word 表示 编码 10000dim - 100dim RNN基本运算 imdb 文本生成模型 模型示例 ML.DL.CNN学习记录4 T ...

  5. ML、DL、CNN学习记录3

    文章目录 ML.DL.CNN学习记录3 Transfer Learning ML.DL.CNN学习记录3 # coding: utf-8 # Date:2020/8/15 19:16 # @Autho ...

  6. ML、DL、CNN学习记录2

    文章目录 ML.DL.CNN学习记录2 图片通道 CNN 卷积 卷积如何操作 卷积核大小 卷积的意义 卷积后大小 卷积后大小计算公式(占的内存) 卷积后大小计算公式(运算时间) 1x1的卷积核 激活函 ...

  7. ml dl el学习_DeepChem —在生命科学和化学信息学中使用ML和DL的框架

    ml dl el学习 Application of Machine Learning and Deep Learning for Drug Discovery, Genomics, Microsoco ...

  8. DL/T645-2007通信协议指令学习记录

    DL/T645-2007通信协议指令学习记录 DL/T645协议版本 DL/T645通信链路 DL/T645-2007数据格式 地址域 控制码C 数据长度L 数据域 DATA 校验码 CS 数据标识 ...

  9. python/ML/DL学习目录

    第一部分:python语法学习 . /*******环境搭建************/ 1. Anaconda安装 2. Anaconda的使用 3. Spyder的使用中遇到的问题 4. Jupyt ...

最新文章

  1. Java 多线程编程之 notify notifyAll wait lock unlock 算法
  2. 利用U盘进行软件加密(转)
  3. “腾讯看点”打响信息流的全面战争
  4. Maven仓库搭建(一):一台HTTP服务器即可(Tomcat、Apache或Nginx)
  5. w ndows7端口在哪里,win7电脑遇到端口被占用的情况该如何查看并将其关闭
  6. RIAMeeting第六次开发者交流活动。
  7. 一个职场小白想当程序员,该从哪学起?做好三大准备,完全不是问题!
  8. 借助 Pod 删除事件的传播实现 Pod 摘流
  9. 为什么spring中的controller跳转出错_你的业务代码中Spring声明式事务处理正确了吗?
  10. 大白话5分钟带你走进人工智能-第二十二节决策树系列之概念介绍(1)
  11. 6、ES6的let和const
  12. 计算机组成原理期末总结
  13. 信息学奥赛一本通1001-1005
  14. java中的this是什么意思
  15. html如何实现统计访客功能,百度统计实时访客功能详解
  16. python提取首字符 判断火车票座位_python实战之通过爬虫实现火车票查询
  17. sdut oj 2738 小鑫の日常系列故事(七)——小纸条
  18. android pc摄像头驱动,Android 驱动USB摄像头
  19. Pro Android学习笔记(一五五):传感器(5): 磁场传感器和方位(上)
  20. github 常用搜索技巧

热门文章

  1. Linux/Mac修改conda源,方便安装pytorch等
  2. php中修改元素值为5,php怎么改变元素数组的值
  3. mysql 创建用户并授权_教你MySQL-8.0.x数据库授权
  4. 从数学到计算机 从莱布尼兹到冯诺依曼 从数理逻辑到算法分析
  5. linux 实现共享内存同步
  6. mybatis 详解(三)------入门实例(基于注解)
  7. C#从入门到精通视频教程(2009年最新)- 视频列表
  8. 编辑器未包含main类型_利用 ONLYOFFICE 将在线文档编辑器集成到 Python Web 应用程序中...
  9. Shell脚本基础语法
  10. Linux下yum命令详解