当前位置: 首页 > news >正文

机器学习--Kaggle的使用

机器学习–Kaggle的使用

打开Kaggle: Your Machine Learning and Data Science Community并点击Sign In登录账号

image-20241209162509517

kaggle中自带了很多的数据集

image-20241209162947772

在点击Datasets之后,单点Notebook,如果有适用的数据集可以单击Copy and Edit复制其Notebook,之后我们自己进行慢慢研习。

image-20241209162749300

点击FileUpload inputUpload dataset后即可把我们现有的文档进行上传。

image-20241209171618199

来举一个手写数字识别的栗子:

import numpy as np # 导入NumPy数学工具箱
import pandas as pd # 导入Pandas数据处理工具箱
from keras.datasets import mnist #从Keras中导入mnist数据集
#读入训练集和测试集
(X_train_image, y_train_lable), (X_test_image, y_test_lable) =  mnist.load_data() 
print ("特征集张量形状:", X_train_image.shape) #用shape方法显示张量的形状
print ("第一个数据样本:\n", X_train_image[0]) #注意Python的索引是从0开始的

结果如下image-20241209174647681

shape方法显示X_train_image张量的形状。灰度图像数据集是3D张量,第一个维度是样本维(也就是一张一张的图片,共60 000张),后面两个是特征维(也就是图片的28px×28px的矩阵)

print ("第一个数据样本的标签:", y_train_lable[0])
from tensorflow.keras.utils import to_categorical # 导入keras.utils工具箱的类别转换工具
X_train = X_train_image.reshape(60000,28,28,1) # 给标签增加一个维度
X_test = X_test_image.reshape(10000,28,28,1) # 给标签增加一个维度
y_train = to_categorical(y_train_lable, 10) # 特征转换为one-hot编码
y_test = to_categorical(y_test_lable, 10) # 特征转换为one-hot编码
print ("数据集张量形状:", X_train.shape) # 特征集张量的形状
print ("第一个数据标签:",y_train[0]) # 显示标签集的第一个数据

image-20241209175001439

(1)Keras要求图像数据集导入卷积网络模型时为4阶张量,最后一阶代表颜色深度,灰度图像只有一个颜色通道,可以设置其值为1。

from keras import models # 导入Keras模型, 和各种神经网络的层
from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D
model = models.Sequential() # 用序贯方式建立模型
model.add(Conv2D(32, (3, 3), activation='relu', # 添加Conv2D层input_shape=(28,28,1))) # 指定输入数据样本张量的类型
model.add(MaxPooling2D(pool_size=(2, 2))) # 添加MaxPooling2D层
model.add(Conv2D(64, (3, 3), activation='relu')) # 添加Conv2D层
model.add(MaxPooling2D(pool_size=(2, 2))) # 添加MaxPooling2D层
model.add(Dropout(0.25)) # 添加Dropout层
model.add(Flatten()) # 展平
model.add(Dense(128, activation='relu')) # 添加全连接层
model.add(Dropout(0.5)) # 添加Dropout层
model.add(Dense(10, activation='softmax')) # Softmax分类激活,输出10维分类码
# 编译模型
model.compile(optimizer='rmsprop', # 指定优化器loss='categorical_crossentropy', # 指定损失函数metrics=['accuracy']) # 指定验证过程中的评估指标

这段代码把数据集放入卷积神经网络进行处理。这个网络中包括两个Conv2D(二维卷积)层,两个MaxPooling2D(最大池化)层,两个Dropout层用于防止过拟合,还有Dense(全连接)层,

最后通过Softmax分类器输出预测标签y’值,也就是所预测的分类值。这个y’值,是一个one-hot(即“一位有效编码”)格式的10维向量。我们可以将y’与标签真值y进行比较,以计算预测的准确率。

image-20241209175219511

model.fit(X_train, y_train, # 指定训练特征集和训练标签集validation_split = 0.3, # 部分训练集数据拆分成验证集epochs=5, # 训练轮次为5轮batch_size=128) # 以128为批量进行训练

image-20241209175816069

accuracy:代表训练集上的预测准确率。

val_accuracy:代表验证集上的预测准确率。

score = model.evaluate(X_test, y_test) # 在测试集上进行模型评估
print('测试集预测准确率:', score[1]) # 打印测试集上的预测准确率

K折验证:机器学习中有重用同一个数据集进行多次验证的方法

image-20241209180153328

K折验证(K-fold validation)的思路是将数据划分为大小相同的K个分区,对于每个分区,都在剩余的K-1个分区上训练模型,然后在留

下的分区上评估模型。

最终分数等于K个分数的平均值。对于数据集的规模比较小或者模型性能很不稳定的情况,这是一种很有用的方法。

注意K折验证仍需要预留独立的测试集再次进行模型的校正

pred = model.predict(X_test[0].reshape(1, 28, 28, 1)) # 预测测试集第一个数据
print(pred[0],"转换一下格式得到:",pred.argmax()) # 把one-hot码转换为数字
import matplotlib.pyplot as plt # 导入绘图工具包
plt.imshow(X_test[0].reshape(28, 28),cmap='Greys') # 输出这个图片

可通过如上predict方法得到模型的预测值

http://www.lryc.cn/news/502718.html

相关文章:

  • 客户服务新突破,天润融通助力电动车企业实现数智化转型
  • 力扣题目 - 2931.购买物品的最大开销
  • 智慧化工园区自动化在线监测,建立产业链路数字安全网
  • 在Docker中运行MySQL的思考:挑战与解决方案
  • Linux中所有和$有关的操作
  • github操作学习笔记(杂乱版)
  • 学习思考:一日三问(思考篇)之路由表
  • 多个NVR同时管理EasyNVR:设置了“按需拉流超时”配置但没反应的解决方法
  • 基于Springboot的实验室管理系统【附源码】
  • 【Oracle11g SQL详解】常用字符串函数:`CONCAT`、`SUBSTR`、`LENGTH`、`INSTR` 等
  • 某养老产业公司管理诊断项目成功案例纪实
  • 自然语言处理基础及应用场景
  • 网页爬虫技术全解析:从基础到实战
  • 数据仓库-查看表和数据库的信息
  • 【JVM】JVM基础教程(四)
  • 深入了解Text2SQL开源项目(Chat2DB、SQL Chat 、Wren AI 、Vanna)
  • websocket 服务 pinia 全局配置
  • 基于Springboot企业oa管理系统【附源码】
  • Python遥感开发之地理探测器的实现
  • 【HarmonyOS】 鸿蒙保存图片或视频到相册
  • Apache Echarts和POI
  • 厦门凯酷全科技有限公司正规吗靠谱吗?
  • WireShark 下载、安装和使用
  • 2025周易算命网站搭建详细方法+源码选择php环境的配置
  • 共享购模式革新登场:重构消费生态,领航商业新未来
  • centos kafka单机离线安装kafka服务化kafka tool连接kafka
  • QT JSON文件解析
  • [小白系列]GPU-nvidia-smi指令
  • 在SQL Server中使用hash join来提高表连接的性能
  • 《Django 5 By Example》阅读笔记:p493-p520