机器学习day1-数据集

机器学习

一、机器学习

1.定义

让计算机在数据中学习规律并根据得到的规律对未来进行预测。

2.发展史

19世纪50年代:图灵测试提出、塞缪尔开发的西洋跳棋程序,标志着机器学习正式进入发展期

19世纪80年代:神经网络反向传播(BP)算法训练的多参数线性规划(MLP),复兴时代

19世纪90年代:决策树(ID3)算法,支持向量机(SVM),由知识驱动转变为数据驱动

21世纪初:Hinton提出深度学习(Deep Learning),蓬勃发展时期

2012年:算力提升和海量训练样本的支持,深度学习成为机器学习研究热点

3.分类

按学习模式不同:

监督学习:给结果去学习模型,然后对给定的新数据利用模型去进行预测。主要用于回归和分类。

半监督学习:利用少量标注数据和大量无标注数据进行学习,侧重于在有监督的分类算法中加入无标记样本来实现半监督分类。

无监督学习:没有结果,给数据找出规律。主要用于关联分析、聚类和降维。对抗神经网络。

强化学习:类似于监督学习,但未使用样本数据进行训练,通过不断试错进行学习的模式。两个可交互对象:智能体和环境,四个核心要素:策略、回报函数(收益信号)、价值函数、环境模型(可选)。常用于机器人避障、棋牌类游戏、广告和推荐等应用场景。

4.机器学习项目开发步骤

1.收集数据

2.准备数据

3.训练模型

4.评估模型

5.提高性能

二、scikit-learn工具

1.安装

windows+r输入cmd,进入命令提示符

激活conda:conda activate

创建sklearn虚拟环境:conda create -n sklearn python=3.9

激活sklearn环境:activate sklearn

pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ numpy

pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ scipy

pip install --index Verifying - USTC Mirrors matplotlib

pip install --index Verifying - USTC Mirrors pandas

pip install --index Verifying - USTC Mirrors scikit-learn

参考以下安装教程:https://www.sklearncn.cn/62/

安装报错参考:pip 安装 scikit-learn失败解决教程_failed to build scikit-learn-CSDN博客

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-learn

VScode安装

环境选择-测试是否可以正常使用

2.scikit-learn包含内容

分类

回归

聚类

降低维度

模型选择

特征预处理

三、数据集

1.sklearn玩具数据集

数据在sklearn库的本地,数据量小

函数返回
load_boston(*[,return_X_y])加载并返回波士顿房价数据集(回归)
load_iris(*[,return_X_y,as_frame])加载并返回鸢尾花数据集(分类)
load_diabetes(*[,return_X_y,as_frame])加载并返回糖尿病数据集(回归)
load_digits(*[,n_class,return_X_y,as_frame])加载并返回数字数据集(分类)
load_linnerud(*[,return_X_y,as_frame])加载并返回linnerud物理锻炼数据集
load_wine(*[,return_X_y,as_frame])加载并返回葡萄酒数据集(分类)
load_breast_cancer(*[,return_X_y,as_frame])加载并返回威斯康星州乳腺癌数据集(分类)

2.sklearn现实世界数据集

通过网络获取,数据量大

函数说明
fetch_olivetti_faces(*[,data_home,...])从AT&T(分类)中加载Olivetti人脸数据集
fetch_20newsgroups(*[,data_home,subset,...])从20个新闻组数据集中加载文件名和数据(分类)
fetch_20newsgroups_vectorized(*[,subset,...])加载20个新闻组数据集并将其矢量化为令牌计数(分类)
fetch_lfw_people(*[,data_home,funneled...])将标签的面孔加载到Wild(LFW)人数据集中(分类)
fetch_lfw_pairs(*[,subset,data_home,...])在“Wild(LFW)”对数据集中加载标签的面部(分类)
fetch_covtype(*[,data_home,...])加载covertype(植被型数据集)数据集(分类)
fetch_rcv1(*[,data_home,subset,...])加载RCV1多标签数据集(分类)
fetch_kddcup99(*[,subset,data_home,...])加载kddcup99(网络入侵检测)数据集(分类)
fetch_california_housing(*[,data_home,...])加载加利福尼亚住房数据集(回归)

3.sklearn加载玩具数据集

eg1:加载鸢尾花数据
from sklearn.datasets import load_iris#加载玩具数据(鸢尾花数据集)
iris = load_iris()
print(iris.data)#数据(特征数据)
print(iris.data.shape)
print(iris.feature_names)#特征名称
print(iris.target)#标签(目标)
print(iris.target.shape)
print(iris.target_names)#目标描述
print(iris.filename) #iris.csv 保存后的文件名
print(iris.DESCR)#数据集的描述

特征有:

花萼长 sepal length

花萼宽sepal width

花瓣长 petal length

花瓣宽 petal width

三分类:

0-Setosa山鸢尾

1-Versicolour变色鸢尾

2-Virginica维吉尼亚鸢尾

用pandas把特征和目标一起显示出来:

from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
def loadiris1():iris = load_iris()#加载鸢尾花数据(去本地加载了一个csv文件)# print(iris.data)#特征数据# print(iris.feature_names)# print(iris.target)# print(iris.target_names)# print(iris.DESCR)# print(iris.filename)# print("data什么类型的数据",type(iris.data),iris.data.dtype)# print("target什么类型的数据",type(iris.target),iris.target.dtype)x = iris.data# print(x.shape,x.dtype)y = iris.target.reshape(x.shape[0],1).astype(np.float64)#把一维数组转化为2维数组(待会可以和x堆叠) 再把保存的数据的类型转化为跟x一样data=np.hstack([x,y])# print(data,data.shape)# print(data[80][4])# print(iris.target_names[int(data[80][4])])# print(iris.feature_names.append("target"))iris.feature_names.append("target")dataf=pd.DataFrame(data=data,columns=iris.feature_names)print(dataf)
loadiris1()
​

4.sklearn获取现实世界数据集

1.联网下载后,保存到home目录

from sklearn import datasets
datasets.get_data_home()  #查看数据集默认存放的位置
eg2.获取20分类新闻数据

sklearn.datasets.fetch_20newsgroups(data_home,subset)

data_home:

subset:train:只下载训练集;test:只下载测试集;all:训练集和测试集

return_X_y:决定返回值的情况,False:默认

当参数return_X_y值为False时, 函数返回Bunch对象,Bunch对象中有以下属性 *data:特征数据集, 长度为18846的列表list, 每一个元素就是一篇新闻内容, 共有18846篇 *target:目标数据集,长度为18846的数组ndarray, 第一个元素是一个整数,整数值为[0,20) *target_names:目标描述,长度为20的list *filenames:长度为18846的ndarray, 元素为字符串,代表新闻的数据位置的路径 当参数return_X_y值为True时,函数返回值为元组,元组长度为2, 第一个元素值为特征数据集,第二个元素值为目标数据集

from sklearn.datasets import fetch_20newsgroups
​
data=fetch_20newsgroups(data_home="./src",subset="test")
​
print(data.data[1])
​
print(data.target_names)

5.加载本地自己的数据集

1.csv文件

①:txt,数据之间用英文逗号隔开,保存后缀名改为csv

②:excel,填写数据,以csv后缀保存文件

2.pandas加载csv
pd.read_csv("./src/ss.csv")

数据为DataFrame形式

import pandas as pd
# 作业("" "./" "../"  "/" 是什么意思 而且举例说明)
#. (点) 表示当前目录,从当前工作目录开始的相对路径
#.. (两个点) 表示上一级目录,引用位于当前目录父目录中的文件
#/路径分隔符,用于分隔目录名和文件名
data=pd.read_csv('src/ss.csv')
print(data)
import pandas as pd
data=pd.read_excel("src/ss.xlsx")
print(data)

6.数据集的划分

1.函数

sklearn.model_selection.train_test_split(*arrays,**options)

*array :用于接收1到多个"列表、numpy数组、稀疏矩阵或padas中的DataFrame"。

**options, 重要的关键字参数有: test_size 值为0.0到1.0的小数,表示划分后测试集占的比例 random_state 值为任意整数,表示随机种子,使用相同的随机种子对相同的数据集多次划分结果是相同的。否则多半不同 shuffle:布尔值。默认为True,在分割之前是否对数据进行洗牌 stratify:分层划分,默认是y,按照 y 中类别的比例进行分层抽样,确保训练集和测试集中各类别样本的比例相同。 返回值说明:返回值为列表list, 列表长度与形参array接收到的参数数量相关联, 形参array接收到的是什么类型,list中对应被划分出来的两部分就是什么类型

2.示例

复习:

arr2=[100,200]
x,y=arr2
print(x,y)
def m(*a, **b):print(a)       #('hello', 123)print(b)       #{'name': '小王', 'age': 30, 'sex': '男'}   m("hello", 123,  name="小王", age=30, sex="男")
​
def m2(a,b,c):pass
dic={"a":123,"b":12,"c":123}   
print(dic) #{'a': 123, 'b': 12, 'c': 123}
#m2(**dic)相当于m2(a=dic["a"],b=dic["b"],c=dic["c"])
eg3
from sklearn.model_selection import train_test_split
arr1=[1,23,2,231,25,36,23,32,22,34,123,12,3,2,3]
x_train,x_test=train_test_split(arr1,train_size=0.8)
print(arr1)
print(x_train,x_test)
#[1, 23, 2, 231, 25, 36, 23, 32, 22, 34, 123, 12, 3, 2, 3]
[34, 2, 123, 12, 3, 1, 2, 231, 32, 36, 22, 23] [23, 25, 3]
from sklearn.model_selection import train_test_split
arr1=[1111,23,2,231,25,36,23,32,22,34,123,12,3,33333,3]
arr2=[9999,1,1,1,1,1,2,2,2,2,3,3,3,66666,3]
x_train,x_test,y_train,y_test=train_test_split(arr1,arr2,train_size=0.8)#arrays
print(arr1)
print(x_train,x_test)
print(y_train,y_test)
#[1111, 23, 2, 231, 25, 36, 23, 32, 22, 34, 123, 12, 3, 33333, 3]
#[9999, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 66666, 3]
#[34, 3, 1111, 22, 33333, 25, 123, 32, 23, 12, 2, 3] [36, 23, 231]
#[2, 3, 9999, 2, 66666, 1, 3, 2, 2, 3, 1, 3] [1, 1, 1]
#将arr1和对应的arr2打乱,再划分成训练集和测试集
from sklearn.model_selection import train_test_split
x=[[11,2,3,31,111],[12,2,3,32,112],[1,23,3,33,113],[14,2,3,34,114],[15,2,3,35,115],[16,2,3,36,116],[1,23,3,36,117],[1,23,3,316,118],[1,23,3,326,119],[1,23,3,336,120]]
y=[1,1,1,1,1,2,2,2,2,2]
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,stratify=y,random_state=40)#stratify=y,按y进行分层
print("x_train:\n",x_train)
print("x_test:\n",x_test)
print("y_train:\n",y_train)
print("y_test:\n",y_test)
print(type(x_test))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/13563.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【FastAPI】1-url参数

fastapi的核心功能是提供HTTP请求接口 “幂等”和“非幂等” 幂等(idempotent):如果一个方法重复执行多次,产生的效果是一样的,那么这个方法就是幂等的 “Methods can also have the property of “idempotence” in …

CentOS Stream 9设置静态IP

CentOS Stream 9设置静态IP CentOS Stream 9作为CentOS Stream发行版的下一个主要版本,已经发布有一段时间,但与目前广泛使用的CentOS7有较大区别。安装试用Stream 9的过程中,就发现设置静态IP的方式和CentOS7/8差别较大,在此记录…

机器人学 雅可比矩阵

雅可比矩阵(Jacobian Matrix)是机器人学中一个非常重要的工具,广泛应用于分析机器人末端执行器的速度和力学(静力)关系。理解雅可比矩阵的速度和静力作用对于机器人运动控制、动力学分析以及优化设计具有重要意义。 一…

【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-最小的数

CL13 最小的数(20 分) 输入一个有 n 个无重复元素的整数数组 a&#xff0c;输出数组中最小的数。提示&#xff1a;如使用排序库函数 sort()&#xff0c;需要包含头文件#include 。输入&#xff1a; 第一行一个正整数 n(2<n<20)&#xff1b; 第二行 n 个不重的整数 a[i]…

python数据写入excel文件

主要思路&#xff1a;数据 转DataFrame后写入excel文件 一、数据格式为字典形式1 k e &#xff0c; v [‘1’, ‘e’, 0.83, 437, 0.6, 0.8, 0.9, ‘好’] 1、这种方法使用了 from_dict 方法&#xff0c;指定了 orient‘index’ 表示使用字典的键作为行索引&#xff0c;然…

制作自己的刷题小题库,提高刷题效率

日常刷题 乱序/背题多种模式 组队刷题 查看小组的刷题统计 在线考试 创建考试多人同时答题 ----这是一条分割线----- 土著刷题&#xff0c;是一款可以导入题库的在线刷题学习小&#x1f34a;序&#xff0c;提供一套以【搭建题库-组建小组-刷题练习-在线考试】为中心的完整服务…

在 Oracle Linux 8.9 上安装Oracle Database 23ai 23.5

在 Oracle Linux 8.9 上安装Oracle Database 23ai 23.5 1. 安装 Oracle Database 23ai2. 连接 Oracle Database 23c3. 重启启动后&#xff0c;手动启动数据库4. 重启启动后&#xff0c;手动启动 Listener5. 手动启动 Pluggable Database6. 自动启动 Pluggable Database7. 设置开…

springboot线下培训机构集中管理和推荐平台-计算机毕业设计源码48919

摘 要 该论文研究了一种线下培训机构集中管理和推荐平台的设计与实现。该平台旨在解决传统线下培训机构管理和推荐过程中存在的诸多问题&#xff0c;包括信息不对称、资源分散、推荐不精准等。通过系统性的需求分析和技术调研&#xff0c;设计了一套基于Spring Boot和Vue的前后…

Jmeter中的监听器(一)

监听器 1--查看结果树 用途 调试测试计划&#xff1a;查看每个请求的详细信息&#xff0c;帮助调试和修正测试计划。分析响应数据&#xff1a;查看服务器返回的响应数据&#xff0c;验证请求是否成功。检查错误&#xff1a;识别和分析请求失败的原因。 配置步骤 添加查看结果…

机器学习—多个输出的分类(Optional)

有一种不同类型的分类问题&#xff0c;称为多标签分类问题&#xff0c;与每个图像相关联的地方可能有多个标签。 如果你正在制造一辆自动驾驶汽车或者驾驶辅助系统&#xff0c;然后给你一张车前的照片&#xff0c;你可能想问&#xff0c;比如有没有一辆车或者至少有一辆车还是…

上海市计算机学会竞赛平台2020年4月月赛丙组永恒的生命游戏

题目背景 2020年4月11日&#xff0c;英国数学家 约翰霍顿康威&#xff08;John Horton Conway&#xff09;因为新型冠状病毒肺炎不幸逝世。他在群论、数论、代数、几何拓扑、理论物理、组合博弈论和几何等领域&#xff0c;都做出了重大贡献。他的离去是人类文明的损失。他最著…

SQLI LABS | Less-43 POST-Error Based-String-Stacked With Twist

关注这个靶场的其它相关笔记&#xff1a;SQLI LABS —— 靶场笔记合集-CSDN博客 0x01&#xff1a;过关流程 输入下面的链接进入靶场&#xff08;如果你的地址和我不一样&#xff0c;按照你本地的环境来&#xff09;&#xff1a; http://localhost/sqli-labs/Less-43/ 本关是堆…

UEFI Shell命令(二)

一、Shell 命令行选项 ​-b, -break 每页输出后暂停一会&#xff0c;即分页输出 -q, -quiet 抑制所有的输出 -sfo 标准格式输出 -t, -terse 简洁的输出 -v, -verbose 详细的输出 -&#xff1f; 帮助 二、特殊Shell命令 1、attrib 显示或更改文件或目录的属性 [a | -a] 设置…

【QT常用技术讲解】优化网络链接不上导致qt、qml界面卡顿的问题

前言 qt、qml项目经常会涉及访问MySQL数据库、网络服务器&#xff0c;并且界面打开时的初始化过程就会涉及到链接Mysql、网络服务器获取数据&#xff0c;如果网络不通&#xff0c;卡个几十秒&#xff0c;会让用户觉得非常的不爽&#xff0c;本文从技术调研的角度讲解解决此类问…

【C语言】程序性能优化——除法运算符

【C语言】程序性能优化——除法运算符 文章目录 [TOC](文章目录) 前言一、牛顿迭代法1、数学基础2、C代码3、实验 二、二分法1、数学基础2、C代码3、实验 三、参考资料总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、牛顿迭代法 1、数学…

每日计划-1109

1. 完成 104. 二叉树的最大深度 class Solution { public:// 计算二叉树的最大深度的函数int maxDepth(TreeNode* root) {// 如果根节点为空&#xff0c;说明已经到达叶子节点的下一层&#xff0c;返回0&#xff08;这里代码中 return false 应该是错误的&#xff0c;应该是 r…

基于YOLOv5的人群密度检测系统设计与实现

大家好&#xff0c;本文将介绍基于改进后的YOLOv5目标检测模型&#xff0c;设计并实现人群密度检测系统。 使用YOLOv5的源代码&#xff0c;在此基础上修改和训练模型&#xff0c; 数据集选用crowdhuman数据集。对yolov5源码中的文件进行修改&#xff0c;更换主干网络、改进损失…

鸿蒙入门——ArkUI 自定义组件间的父子双向同步状态装饰器@Link语法(四)

文章大纲 引言一、组件间状态装饰器Link 父子双向同步1、使用规则2、支持的观察变化的场景和ArkUI 刷新UI3、Link变量值初始化和更新机制3.1、初始渲染&#xff1a;执行父组件的build()函数后将创建子组件的新实例。3.2、Link的数据源的更新&#xff1a;即父组件中状态变量更新…

【Android、IOS、Flutter、鸿蒙、ReactNative 】启动页

Android 设置启动页 自定义 splash.xml 通过themes.xml配置启动页背景图 IOS 设置启动页 LaunchScreen.storyboard 设置为启动页 storyboard页面绘制 Assets.xcassets 目录下导入图片 AppLogo Flutter 设置启动页 Flutter Android 设置启动页 自定义 launch_background.xm…

[SaaS] 数禾科技 AIGC生成营销素材

https://zhuanlan.zhihu.com/p/923637935https://zhuanlan.zhihu.com/p/923637935