ML、DL、CNN学习记录1
文章目录
- 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相关推荐
- ML、DL、CNN学习记录8
文章目录 ML.DL.CNN学习记录7 强化学习 Makov 贝尔曼方程 Value-Based 知识图谱 图神经网络 ML.DL.CNN学习记录7 强化学习(Reinforcement Learni ...
- ML、DL、CNN学习记录7
文章目录 ML.DL.CNN学习记录7 GAN(Generative Adversarial Network) GAN的学习 GAN的损失函数 GAN 训练 GAN的扩展 DCGAN CGAN Sta ...
- ML、DL、CNN学习记录6
文章目录 ML.DL.CNN学习记录5 VAE VAE 工作流程 VAE's Detail code+explain Model Output GAN GAN原理 CRNN(多用于文字识别) ML.D ...
- ML、DL、CNN学习记录5
文章目录 ML.DL.CNN学习记录4 RNN RNN类别 Word 表示 编码 10000dim - 100dim RNN基本运算 imdb 文本生成模型 模型示例 ML.DL.CNN学习记录4 T ...
- ML、DL、CNN学习记录3
文章目录 ML.DL.CNN学习记录3 Transfer Learning ML.DL.CNN学习记录3 # coding: utf-8 # Date:2020/8/15 19:16 # @Autho ...
- ML、DL、CNN学习记录2
文章目录 ML.DL.CNN学习记录2 图片通道 CNN 卷积 卷积如何操作 卷积核大小 卷积的意义 卷积后大小 卷积后大小计算公式(占的内存) 卷积后大小计算公式(运算时间) 1x1的卷积核 激活函 ...
- ml dl el学习_DeepChem —在生命科学和化学信息学中使用ML和DL的框架
ml dl el学习 Application of Machine Learning and Deep Learning for Drug Discovery, Genomics, Microsoco ...
- DL/T645-2007通信协议指令学习记录
DL/T645-2007通信协议指令学习记录 DL/T645协议版本 DL/T645通信链路 DL/T645-2007数据格式 地址域 控制码C 数据长度L 数据域 DATA 校验码 CS 数据标识 ...
- python/ML/DL学习目录
第一部分:python语法学习 . /*******环境搭建************/ 1. Anaconda安装 2. Anaconda的使用 3. Spyder的使用中遇到的问题 4. Jupyt ...
最新文章
- Java 多线程编程之 notify notifyAll wait lock unlock 算法
- 利用U盘进行软件加密(转)
- “腾讯看点”打响信息流的全面战争
- Maven仓库搭建(一):一台HTTP服务器即可(Tomcat、Apache或Nginx)
- w ndows7端口在哪里,win7电脑遇到端口被占用的情况该如何查看并将其关闭
- RIAMeeting第六次开发者交流活动。
- 一个职场小白想当程序员,该从哪学起?做好三大准备,完全不是问题!
- 借助 Pod 删除事件的传播实现 Pod 摘流
- 为什么spring中的controller跳转出错_你的业务代码中Spring声明式事务处理正确了吗?
- 大白话5分钟带你走进人工智能-第二十二节决策树系列之概念介绍(1)
- 6、ES6的let和const
- 计算机组成原理期末总结
- 信息学奥赛一本通1001-1005
- java中的this是什么意思
- html如何实现统计访客功能,百度统计实时访客功能详解
- python提取首字符 判断火车票座位_python实战之通过爬虫实现火车票查询
- sdut oj 2738 小鑫の日常系列故事(七)——小纸条
- android pc摄像头驱动,Android 驱动USB摄像头
- Pro Android学习笔记(一五五):传感器(5): 磁场传感器和方位(上)
- github 常用搜索技巧
热门文章
- Linux/Mac修改conda源,方便安装pytorch等
- php中修改元素值为5,php怎么改变元素数组的值
- mysql 创建用户并授权_教你MySQL-8.0.x数据库授权
- 从数学到计算机 从莱布尼兹到冯诺依曼 从数理逻辑到算法分析
- linux 实现共享内存同步
- mybatis 详解(三)------入门实例(基于注解)
- C#从入门到精通视频教程(2009年最新)- 视频列表
- 编辑器未包含main类型_利用 ONLYOFFICE 将在线文档编辑器集成到 Python Web 应用程序中...
- Shell脚本基础语法
- Linux下yum命令详解