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

一步一步认知机器学习

1,前言

之前学习并且实操了一些算法框架用来探索相关方向的可能性,但是总不了解相关的步骤。因为一步一步按照别人给出的步骤去操作,解决一些操作时出现的问题,基本可以达到目的。但是这个也基本限制了在那个框架而已。对于算法还是知之甚少。这两天碰到了scikit-learn,觉得很不错,于是去敲敲代码,了解了解。文章主要为我学习所需,记录和强化我的认知。觉得有用则看,无用则略过

2,机器学习方式

ch02_机器学习基础/第二章_机器学习基础.md · zhucoding/DeepLearning-500-questions - Gitee.com

a,监督学习--体现为标记输入数据集(最常用):分类,回归   

b,非监督式学习--体现为未标记输入数据集:聚类

c,半监督式学习:相当于监督学习的延伸,未标记的数据用来预测

d,弱监督式学习:

3,监督学习步骤

①数据集创建和分类:标记数据

②数据增强:对图片数据进行旋转,平移,颜色转换,裁剪,仿射变换等

③特征工程:特征提取和特征选择---特征工程的方法和步骤_特征工程流程-CSDN博客

④构建预测模型和损失

⑤训练

⑥验证和模型选择

⑦测试和应用

3,例子

使用scikit learning鸢尾花数据,去模拟大致跑一次基础流程先

基本流程

获取数据(包括特征值x,目标属性y)-->划分训练集、测试集-->选好模型(支持向量机,LR分类模型,随机森林分类模型)-->开始进行训练集训练(交叉验证,调超参)-->得到训练集最佳模型识别率和置信度-->开始进行测试集训练(交叉验证,调超参)-->得到测试集集最佳模型识别率和置信度

# 模型加入了调参
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split,GridSearchCV
from sklearn.svm import SVCdataset = load_iris()  # 得到鸢尾花的数据x = dataset.datay = dataset.target
print(x)
print(y)train_x, test_x, train_y, test_y = train_test_split(x, y, test_size=0.2, random_state=0)svm_model = SVC()params = [{'kernel': ['linear'], 'C': [1, 10, 100, 100]},{'kernel': ['poly'], 'C': [1], 'degree': [2, 3]},{'kernel': ['rbf'], 'C': [1, 10, 100, 100], 'gamma': [1, 0.1, 0.01, 0.001]}
]# 在这里进行了交叉验证 和 调参
best_model = GridSearchCV(svm_model, param_grid=params, cv=5, scoring='accuracy')
best_model.fit(train_x, train_y)print('svm模式在训练集上的精准度为:%.4f'%best_model.best_score_)
print(best_model.best_params_)
print(best_model.cv_results_)best_model1 = GridSearchCV(svm_model, param_grid=params, cv=5, scoring='accuracy')
best_model1.fit(test_x, test_y)print('svm模式在验证集上的精准度为:%.4f'%best_model.best_score_)
print(best_model1.best_params_)
print(best_model1.cv_results_)

新手!如有不对,敬请指出

参考:机器学习超详细实践攻略(8):使用scikit-learn构建模型的通用模板【万字长文】 - 知乎 (zhihu.com)

 

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

相关文章:

  • 现代C++、STL、QTL的使用
  • Android 备案公钥、签名 MD5获取方法
  • 1688拍立淘接口,按图搜索商品接口,图片识别接口,图片上传搜索接口,图片搜索API接口,以图搜货接口
  • H3C AC通过Web平台进行AC软件的升级?
  • 网络通信和tcp协议
  • React 核心与实战2023版
  • 在 Android 上测试 Kotlin 协程
  • 图论04-【无权无向】-图的广度优先遍历BFS
  • vue3 v-model的使用
  • Ubuntu 20.04 安装 Docker
  • vue el-dialog弹出框自定义指令实现拖拽改变位置-宽度-高度
  • 玄铁C906——物理内存保护(PMP)介绍
  • 【进阶C语言】编译与链接、预处理符号详解
  • spring.profiles生效顺序
  • 【经典PageRank 】02/2 算法和线性代数
  • 【微客云】91优惠话费充值API接口开发功能介绍
  • Kubernetes - 一键安装部署 K8S(附:Kubernetes Dashboard)
  • Camera2开发基础知识篇——手机影像参数
  • Unity之ShaderGraph如何实现无贴图水球效果
  • 【C语言】指针错题(类型分析)
  • prosemirror 学习记录(二)创建 apple 节点
  • 自然语言处理---迁移学习
  • node 第十天 原生node封装一个简易的服务器
  • php实战案例记录(25)intval函数的用法
  • laravel框架介绍(二) composer命令下载laravel报错
  • 代码签名证书到期了怎么续费?
  • JAVA 同城服务预约家政小程序开发的优势和运营
  • 基于粒子群算法的无人机航迹规划-附代码
  • 前端使用qrcodejs2插件实现根据网址生成二维码
  • A股风格因子看板 (2023.10 第11期)