机器学习(1)--特征工程之特征抽取

2023-05-16

三者关系:人工智能>机器学习>深度学习

机器学习:

机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测

机器学习的数据:文件csv(mysql有性能瓶颈,读取速度慢,格式不符合机器学习所要求的格式)

Pandas:读取工具

数据集结构:

可用数据集

1. Kaggle

特点:

1)大数据竞赛平台            

2)80万科学家              

3)真实数据              

4)数据量巨大

2. UCI

特点:

1)收录了360个数据集              

2)覆盖科学、生活、经济等领域                        

3)数据量几十万

3. scikit-learn

特点:

1)数据量较小              

2)方便学习

常用数据集结构的结构组成

特征值+目标值

数据处理工具

Pandas:一个数据读取非常方便以及基本的处理格式的工具

sklearn:对于特征的处理提供了强大的接口

特征工程

目的:特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的模型准确性

包括三大内容:特征抽取,特征预处理和降维

一、特征抽取

目的:将字典、文本或字符串等其他类型的数据转化成数字类型的数据(特征值化)

sklearn特征抽取API:sklearn.feature_extraction

1. 字典特征抽取:sklearn.feature_extraction.DictVectorizer(类,使用需要实例化)

DictVectorizer语法:

1)DictVectorizer.fit_transform(X)      

       X:字典或者包含字典的迭代器

       返回值:返回sparse矩阵,X指sparse参数,其默认为True

2)DictVectorizer.inverse_transform(X)

        X:array数组或者sparse矩阵

        返回值:转换之前数据格式

3)DictVectorizer.get_feature_names()

         返回类别名称

4)DictVectorizer.transform(X)

          按照原先的标准转换

字典特征提取流程:

1)实例化类DictVectorizer

2)调用fit_transform方法输入数据并转换(注意返回格式)

from sklearn.feature_extraction import DictVectorizer


def dictvec():
    """
    字典数据抽取
    :return:None
    “”“
    #实例化
    dict = DictVectorizer()

    #调用fit_transform
    data = dict.fit_transform({'city':'北京',‘temperature’: 100}, {'city': '上海', ‘temperature’: 60}, {'city': '深圳', 'temperature': 30})
    
    print(data)

    return None
   
if __name__ == "__main__":
    dictvec()

结果显示:

默认转换为sparse矩阵:节约内存,方便读取处理

将sparse参数=False,转换格式将转变为ndarray二维数组

 

sparse矩阵:只显示值和其位置

ndarray二维数组:空值也会显示

调用DictVectorizer.get_feature_names()

from sklearn.feature_extraction import DictVectorizer


def dictvec():
    """
    字典数据抽取
    :return:None
    “”“
    #实例化
    dict = DictVectorizer()

    #调用fit_transform
    data = dict.fit_transform({'city':'北京',‘temperature’: 100}, {'city': '上海', ‘temperature’: 60}, {'city': '深圳', 'temperature': 30})
    #返回类别名称
    print(dict.get_feature_names())  

    print(data)

    return None
   
if __name__ == "__main__":
    dictvec()

结果显示:

可见,对于类别城市这一类别特征,二维数组第一行代表北京那条数据,前三列代表城市的三种类别,为0则这条数据不是这一城市的, 为1则代表是这个城市的,对于已是数值型的数据,不会转换,第四列就代表这条数据的temperature是多少,既这个城市的温度是多少。 

由此可以看出字典特征提取是把字典中一些类别数据,分别进行转换成特征,已是数值的不会转换

*如果遇到数组形式的数据且有类别的这些特征(像是城市类别),将其转换为字典类型再进行转换

*对于结果没有影响的特征可以人为直接删除

调用DictVectorizer.inverse_transform(X)

结果显示:

One-hot编码

上述打印的ndarray二维数组的前边0,1部分,也就是前三列,使用的one-hot编码

目的: 

2. 文本特征抽取:sklearn.feature_extraction.text.CountVectorizer(类,使用需要实例化)

目的:对文本数据进行特征化

CountVectorizer语法:(无参数)

1)CountVectorizer(max_df=1.0,min_df=1,…)

           返回词频矩阵

2)CountVectorizer.fit_transform(X,y)      

            X:文本或者包含文本字符串的可迭代对象

            返回值:返回sparse矩阵

3)CountVectorizer.inverse_transform(X)

             X:array数组或者sparse矩阵

             返回值:转换之前数据格式

4)CountVectorizer.get_feature_names()

              返回值:单词列表      

文本特征抽取流程:

1)实例化类CountVectorizer

2)调用fit_transform方法输入数据并转换

(注意返回格式,利用toarray()进行sparse矩阵转换array数组)

from sklearn.feature_extraction.text import CountVectorizer


def countvec():
    """
    对文本进行特征化
    :return None
    """
    cv = CountVectorizer()##括号里可以加一些参数设定,设定特征化的原则
    data = cv.fit_transform(["life is short, i like python", "life is too long, i dislike python"])##用列表表示文本,列表里的一个元素代表一个文本

    print(data)

    return None 

if __name__ == "__main__":
    countvec()

*用列表表示文本,列表里的一个元素代表一个文本 

结果显示:

很明显,结果依然是sparse矩阵的形式,我们要想得到二维数组的形式,就要使用一个基于numpy的toarray()的方法 

print(data.toarray())

结果显示:

通过cv.get_feature_names() (注意这里是cv,使用的是实例化对象,不是用的类对象)

结果显示:

由此可见,这里的feature name是单词,这个列表是统计所有文章所有的词,重复的只看作一次,数字代表每篇文本每个单词出现的次数,这里的数字是计数功能,不同于类别的one-hot编码,0,1代表是否有,不是计数功能

*单个字母不统计 (因为一个英文字母不会反映文章的主题,没有意义)

文本是中文文本的转换:

from sklearn.feature_extraction.text import CountVectorizer


def countvec():
    """
    对文本进行特征化
    :return None
    """
    cv = CountVectorizer()
    data = cv.fit_transform(["人生苦短,我喜欢python", "人生漫长,我不喜欢python"])##用列表表示文本,列表里的一个元素代表一个文本
    print(cv.get_feature_name())

    print(data.toarray())

    return None 

if __name__ == "__main__":
    countvec()

结果显示:

这显然不是我们想要的结果,不是一个词一个词的,所以这不支持中文文本,要想转换转换中文文本,需要使用空格对句子进行拆分,例如(英文默认有分词功能)

人生 苦短,我 喜欢 python, 人生漫长,我 不喜欢 python

中文文本分词工具

jieba分词

        下载:pip3 install jieba

        使用:import jieba jieba.cut(“我是一个好程序员”)

        注意:返回值:词语生成器

from sklearn.feature_extraction.text import CountVectorizer
import jieba


def cutword():
    con1 = jieba.cut("今天很残酷,明天更残酷,后天很美好,
    但绝对大部分是死在明天晚上,所以每个人不要放弃今天。")

    con2 = jieba.cut("我们看到的从很远星系来的光是在几百万年之前发出的,
    这样当我们看到宇宙时,我们是在看它的过去。")

    con3 = jieba.cut("如果只用一种方式了解某样事物,你就不会真正了解它。
    了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。")

#转换成列表
    content1 = list(con1)
    content2 = list(con2)
    content3 = list(con3)
#把列表转换成用空格隔开的字符串(以空格隔开的字符串)#英文的transform的对象也是字符串组成的列

    c1 = ‘ ’.join(content1)
    c2 = ‘ ’.join(content2)
    c3 = ‘ ’.join(content3)

return c1,c2,c3


def countvec():
    """
    对文本进行特征化
    :return None
    """
    c1, c2, c3 = cutword()#接收cutword方法的返回值
 
    print(c2,c2,c3)
    cv = CountVectorizer()
    data = cv.fit_transform([c1, c2, c3])##用列表表示文本,列表里的一个元素代表一个文本,这里既是是英文文本时候,列表里元素存储的也是字符串的形式,因此要在前边的步骤里将中文文本转换为字符串形式
    print(cv.get_feature_name())

    print(data.toarray())

    return None 


if __name__ == "__main__":
    countvec()

结果显示:

 解析将中文文本变为字符串的过程:

1)先使用jieba这一工具将原本的中文文本进行分词,


con1 = jieba.cut("文本1")  

2)将文本转化为列表


content1 = list(con1)  

3)到这步的打印结果(单个的字符是没有被筛掉的)---列表形式,

至于为什么转化成列表形式而不直接转化为字符串形式,jieba.cut后得到的con1是列表迭代器,尽管迭代器很好用,但仍然不具备某些功能,例如,通过索引获取某个元素,进行分片操作。这些操作都是列表的专利,所以在很多时候,需要将迭代器转换为列表。但有很多迭代器都是无限迭代的。因此,在讲迭代器转换为列表时,需要给迭代器能够迭代的元素限定一个范围,否则内存就会溢出。要想让迭代器停止迭代,值需要抛出StopIteration异常即可。通过list函数可以直接将迭代器转换为列表。为何转为列表我认为有三个原因:一是字符串不可修改,在添加空格时,需要重新分配内存空间,消耗大,其次,列表安全性更高,其三,在实际操作中,操作序列常在列表上进行,也是一种习惯吧。


['今天', '很', '残酷', ',', '明天', '更', '残酷', ',', '后天', '很', '美好', ',', '但', '绝对', '大部分  

4)把列表转换成用空格隔开的字符串(以空格隔开的字符串),英文的transform需要对象是字符串组成的列表,且中文必须有空格分词才能识别,这里所以要转为空格连接jieba分词后词组组成的字符串,可见如下,不是列表形式了


今天 很 残酷 , 明天 更 残酷 , 后天 很 美好 , 但 绝对 大部分 是 死 在 明天 晚上 , 所以 每个 人 不要 放弃 今天 。 我们 看到 的 从 很 远 星系 来 的 光是在 几百万年 之前 发出 的 , 这样 当 我们 看到 宇宙 时 , 我们 是 在 看 它 的 过去 。 如果 只用 一种 方式 了解 某样 事物 , 你 就 不会 真正 了解 它 。 了解 事物 真正 含义 的 秘密 取决于 如何 将 其 与 我们 所 了解 的 事物 相 联系 。  

5)使用文本特征化方法特征化中文文本


cv = CountVectorizer()
data = cv.fit_transform([c1, c2, c3])  

可以看到,在这步又将第四步的字符串变成了列表进行特征化操作

这个展示了完整的中文文本的预处理操作:



中文文本预处理之结巴分词及特征化 - hahahaer - 博客园

文本特征抽取应用:

1)计数Count:文本分类/情感分析…【不常用,因为一些中性词语像是我们,明天等不能反映文本之间关系】

2)TF-IDF:常用做文本分类

主要思想:如果某个词或短语在一篇文章中出现的概率高, 并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分 能力,适合用来分类。

作用:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。

tf:term frequencey(词频)

idf:inverse document frequency(逆文档频率)log(总文档数量/该词出现的文档数量)、

       log(数值):输入的数值越小,值越小

tf*idf:重要性程度,对所有在文章出现的词作重要性分析

为什么需要TfidfVectorizer:分类机器学习算法的的重要依据

:sklearn.feature_extraction.text.TfidfVectorizer

TfidfVectorizer语法

1)TfidfVectorizer(stop_words=None,…)

           返回词的权重矩阵

2)TfidfVectorizer.fit_transform(X,y)      

            X:文本或者包含文本字符串的可迭代对象

            返回值:返回sparse矩阵

3)TfidfVectorizer.inverse_transform(X)

             X:array数组或者sparse矩阵

            返回值:转换之前数据格式

4)TfidfVectorizer.get_feature_names()

            返回值:单词列表

# 导入包
# from sklearn.feature_extraction.text import CountVectorizer
#
# # 实例化CountVectorizer
#
# vector = CountVectorizer()
#
# # 调用fit_transform输入并转换数据
#
# res = vector.fit_transform(["life is short,i like python","life is too long,i dislike python"])
#
# # 打印结果
# print(vector.get_feature_names())
#
# print(res.toarray())


def dictvec():
    """
    字典数据抽取
    :return: None
    """
    # 实例化
    dict = DictVectorizer(sparse=False)

    # 调用fit_transform
    data = dict.fit_transform([{'city': '北京','temperature': 100}, {'city': '上海','temperature':60}, {'city': '深圳','temperature': 30}])

    print(dict.get_feature_names())

    print(dict.inverse_transform(data))

    print(data)

    return None


def countvec():
    """
    对文本进行特征值化
    :return: None
    """
    cv = CountVectorizer()

    data = cv.fit_transform(["人生 苦短,我 喜欢 python", "人生漫长,不用 python"])

    print(cv.get_feature_names())

    print(data.toarray())

    return None



def cutword():

    con1 = jieba.cut("今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。")

    con2 = jieba.cut("我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。")

    con3 = jieba.cut("如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。")

    # 转换成列表
    content1 = list(con1)
    content2 = list(con2)
    content3 = list(con3)

    # 吧列表转换成字符串
    c1 = ' '.join(content1)
    c2 = ' '.join(content2)
    c3 = ' '.join(content3)

    return c1, c2, c3



def hanzivec():
    """
    中文特征值化
    :return: None
    """
    c1, c2, c3 = cutword()

    print(c1, c2, c3)

    cv = CountVectorizer()

    data = cv.fit_transform([c1, c2, c3])

    print(cv.get_feature_names())

    print(data.toarray())

    return None



def tfidfvec():
    """
    中文特征值化
    :return: None
    """
    c1, c2, c3 = cutword()

    print(c1, c2, c3)

    tf = TfidfVectorizer()

    data = tf.fit_transform([c1, c2, c3])

    print(tf.get_feature_names())

    print(data.toarray())

    return None

Scikit-learn库

  1. Python语言的机器学习工具
  2. Scikit-learn包括许多知名的机器学习算法的实现
  3. Scikit-learn文档完善,容易上手,丰富的API,使其在学术界颇受欢迎。
  4. 目前稳定版本0.18
  5. 内容包括:分类、回归、聚类(Clustering)、降维(Dimensionality Reduction)、模型选择(Model Selection)、特征工程(Preprocessing)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习(1)--特征工程之特征抽取 的相关文章

  • PX4驱动分析之MPU6000

    PX4驱动分析之MPU6000 前言 xff1a 首先分析PX4中MPU6000传感器驱动的注册 xff0c 调用 xff0c 实例的过程 xff0c 先要理解一个事情 就是PX4是使用了一个类Linux操作系统的Nuttx操作系统 也就是
  • PX4分析系列之添加北醒TOF传感器(使用UART)

    PX4分析系列之添加北醒TOF传感器 xff08 使用UART xff09 提示 xff1a 一个飞行器爱好者 xff0c 才疏学浅 通过自己学习PX4源码的过程 xff0c 进行分析和记录 欢迎各路大神讨论 xff0c 并指正文中错误 x
  • 产品化的理解

    我对产品化的理解 产品化的时机是看业务的需要 xff0c 不管是对前景的落实 xff0c 还是项目转化成产品 xff0c 这些都不是技术人员能考虑的 xff0c 业务的发展和策划 xff0c 如何进行市场细化等如果都由技术人员考虑 xff0
  • JS对象转insert语句

    function obj2Sql tablename obj var sqls 61 34 34 f 61 34 34 v 61 34 34 obj forEach o 61 gt f 61 34 34 v 61 34 34 for let
  • HTML5小试 双人贪吃蛇

    lt html gt lt head gt lt head gt lt body gt lt div style 61 34 float left 34 gt 当前速度1 xff1a lt button nclick 61 34 jianc
  • 九个Console命令,让js调试更简单

    九个Console命令 xff0c 让js调试更简单 一 显示信息的命令 lt DOCTYPE html gt lt html gt lt head gt lt title gt 常用console命令 lt title gt lt met
  • echarts自定义功能按钮图片 网络路径格式

    toolbox show true orient 39 vertical 39 x 39 left 39 top 39 20 39 feature myTool show true title 39 自定义扩展方法 39 icon 39 i
  • 上班摸鱼逛博客,逮到一个字节8年测试开发,聊过之后羞愧难当......

    老话说的好 xff0c 这人呐 xff0c 一旦在某个领域鲜有敌手了 xff0c 就会闲得某疼 前几天我在上班摸鱼刷博客的时候认识了一位字节测试开发大佬 xff0c 在字节工作了8年 xff0c 因为本人天赋比较高 xff0c 平时工作也兢
  • Ubuntu下USB权限问题以及udev规则文件笔记

    在ubuntu系统下使用传感器的时候 xff0c 通常会遇到一些权限上的问题 比如我使用ROS驱动包来启动bluefox摄像头 xff0c 如果没有任何关于权限上的处理就会提示权限问题导致无法正常启动该摄像头 xff0c 如下图 xff1a
  • 三.卡尔曼滤波器(EKF)开发实践之三: 基于三个传感器的海拔高度数据融合

    本系列文章主要介绍如何在工程实践中使用卡尔曼滤波器 分七个小节介绍 一 卡尔曼滤波器开发实践之一 五大公式 二 卡尔曼滤波器开发实践之二 一个简单的位置估计卡尔曼滤波器 三 卡尔曼滤波器 EKF 开发实践之三 基于三个传感器的海拔高度数据融
  • 树莓派 - 1 安装与配置 - a 系统安装(Raspbian)

    xff08 1 xff09 软件 Raspbian operating system https www raspberrypi org downloads raspbian Etcher SD card writing tool http
  • 分享一个Linux的录屏工具script

    在使用该命令后 xff0c 直接录屏 xff0c 会记录终端在命令行的所有动作 想让别人帮你操作 xff0c 但你的思路跟不上对方敲命令的速度 xff0c 可以先录下来 xff0c 然后回去慢慢琢磨 我的是centos7系统 span cl
  • 最佳Linux防病毒软件推荐!

    看到标题或许你会疑问 xff0c linux如此安全 xff0c 为什么我们还需要安装防病毒软件呢 确实 xff0c linux为全球超过70 的web服务器提供支持 xff0c 黑客极有动机来制造强大的病毒来渗透这些服务器安全系统 xff
  • NvidiaAGXXavier刷机Jetpack5.0.2报错记录(已解决,非搬运)

    网上有很多教程 xff0c 很详细的讲了这个板子刷机应该怎么去做 xff0c 正常的话就按照那个步骤走就可以了 xff0c 这里就不再赘述了 xff0c 但是我在给自己的NvidiaAgxXavier刷Jetpack5 0 2的时候 xff
  • Atmel Cortex-A5跑Nuttx是如此酸爽

    开源RTOS Nuttx已经支持Atmel SAMA5系列MPU xff0c 而且看到Nuttx还支持Graphic API xff0c 决定尝试在Ateml SAMA5D3 Xplained上跑下Nuttx Nuttx是一款开源RTOS
  • Using NuttX OS as a library on Atmel Studio 7

    This document explains how to add NuttX OS to your application on Atmel Studio 7 using NuttX OS as a library With Atmel
  • 【开发备忘】QGroundControl编译

    本文记录在windows下编译最新版QGC的过程 Qt版本为5 15 2 xff0c 编译器为MSVC2015 1 Qt环境配置 尽管目前已有Qt6 xff0c 但是QGC官网明确强调了仅可使用Qt 5 15 2 xff0c 因此首先需要安
  • Linux都应用在哪些领域?发展如何?

    与Windows操作系统软件一样 xff0c Linux也是一个操作系统软件 但与Windows不同的是 xff0c Linux是一套开放源代码程序的 xff0c 并可以自由传播的类UNIX操作系统软件 xff0c 随着信息技术的更新变化
  • opensuse 11.1 在线安装虚拟机 VirtualBox-2.2.4

    有些喜欢的windows软件可以用wine虚拟出来了 xff0c 比如酷狗 xff0c 但是有些就比较麻烦了 xff0c 比如中国特色的在线电影 xff0c 网银 xff0c 或许只有用虚拟机解决起来比较方面 xff0c 说句实在话 xff
  • Linux下CMakeLists.txt编译C++程序笔记

    在Linux下运用ROS系统可免去很多构建框架的步骤 xff0c 所以一般只要按照官网给的教程逐步进行即可 但是ROS自身有许多的毛病 xff0c 比如其稳定性和实时性差 xff0c 有时候数据传输会发现丢失的现象 xff0c 因此其性能不

随机推荐

  • px4: actuators control, control group 和 mixer科普

    原文链接 xff1a https pixhawk org dev mixing Control Mixing This page discusses the general purpose control mixing architectu
  • 如何用开源飞控PIXHAWK进行二次开发?

    著作权归作者所有 商业转载请联系作者获得授权 xff0c 非商业转载请注明出处 作者 xff1a 我是肉包子 链接 xff1a http www zhihu com question 38874663 answer 84239995 来源
  • px4的模式与状态

    一 模式 PX4 native flight stack String Description and notes MANUAL ACRO ALTCTL POSCTL OFFBOARD STABILIZED RATTITUDE in mas
  • ESP8266开发实战之(一)-开发环境配置

    最近买了一块ESP8266的小板子 xff0c 上面自带WIFI功能 xff0c 可以进行一些好玩的物联网开发 因此 xff0c 我打算将对整个板子的的熟悉过程通过一系列的文档记录下来 我拿到的板子型号是NodeMUC 1 0 ESP 12
  • ESP8266开发实战之(4)-连接路由器的wifi

    概述 ESP8266支持连接到wifi xff0c 从而使得我们能够通过网络访问 xff0c 做出一些简单而有趣的功能 因此 xff0c 第一步工作便是连接到wifi网络 一般情况下 xff0c 我们要连接wifi xff0c 在手机上的操
  • 怎样用一行代码判断系统的大小端?

    最近在设计自己的TCP IP协议栈 xff0c 代码完成的差不多了 xff0c 已经能够跑在嵌入式STM32开发板上 闲来无事 xff0c 想着优化一下问题的解决方案 这个问题据说是很常见的面试问题 xff1a 如何判断当前系统的大小端 x
  • 在操作系统开发中选bochs还是qemu

    最近有同学问我 xff1a 为什么你在写 0写x86 Linux操作系统时选择了bochs xff0c 而不是qemu xff1f 他认为bochs更加好用 xff0c 很多资料上都写了用该软件 其实我也是经过不断地对比和尝试后 xff0c
  • 网络编程中的大小端

    最近在录制一门手写TCP IP协议栈的课程 不得不说 xff0c TCP IP这个东西是真难 xff0c 写代码费了我半天劲 xff0c 然后又要用课程的方式给讲出现 这其中涉及到大小端的转换 xff0c 所以这里总结一下 在计算机领域 x
  • RTOS系统延时与普通软延时的特点与区别

    我们知道 xff0c 在RTOS中会提供若干延时函数的API 对于没有仔细了解过RTOS的同学而言 xff0c 可能会产生这样疑惑 xff1a 这些API与普通自写的延时函数相比究竟有何优势呢 xff1f 为什么要额外提供这些API xff
  • 超简单!在Keil中指定某个函数或变量存放的地址

    在我们开发过程中 xff0c 有时候会有这样一个需求 xff1a 希望能够指定某个函数或变量存放的地址 也许你看过一些文章 xff0c 里面介绍了一大堆内容 xff0c 甚至于还会介绍分散加载文件的配置 但是绝大多数情况下 xff0c 为了
  • 解决Ubuntu环境下ROS Kinetic中的cv_bridge和自己安装OpenCV 2.4.xx兼容性笔记

    我们如果使用的ROS版本为Kinetic xff0c 那么ROS一般会默认安装OpenCV3 所以使用cv bridge的情况下 xff0c ROS会自动去调用它自己安装的OpenCV3 但是对于一部分人还是比较习惯使用OpenCV2 xf
  • 自己动手从0到1写嵌入式操作系统-李述铜-专题视频课程

    自己动手从0到1写嵌入式操作系统 7941人已学习 课程介绍 这不是rtos源码分析的课程 xff0c 而是为初级的同学设计 xff0c 从基础原理讲师 xff0c 一步步不断迭代设计rtos的课程 xff01 用不到 2000行代码 xf
  • opencv基于颜色的物体识别

    span style font size 18px include lt iostream gt include lt string gt include lt string h gt include lt vector gt includ
  • c++模板(函数模板、类模板)STL、map、容器

    一 什么是模板 模板是C 43 43 中自动生成代码的技术 二 为什么使用模板 问题 xff1a 实现一个通用的排序算法 C语言 xff1a 通过回调函数实现 xff0c 使用者调用麻烦 C 43 43 语言 xff1a 函数重载 xff0
  • iPad 上最强 IDE,支持 20 多种开发语言,还开源了

    x1f447 x1f447 关注后回复 进群 xff0c 拉你进程序员交流群 x1f447 x1f447 作者丨小集 来源丨小集 xff08 ID xff1a zsxjtip xff09 https mp weixin qq com s 3
  • 如何删除Docker镜像

    Docker镜像不过是一组只读文件 xff0c 这意味着一旦docker镜像被构建 xff0c 就不能修改 然而 xff0c 你可以借助现有的docker镜像创建一个新的docker镜像 Docker镜像是用来构建docker容器的 Doc
  • 如何减少/缩小Linux中的LVM(逻辑卷大小)?

    减少 缩小逻辑卷会给数据非常大的损坏风险 所以 xff0c 如果可能的话 xff0c 尽量避免这种情况 xff0c 但如果没有其他选择的话 xff0c 只能这样操作了 缩减LVM之前 xff0c 建议先做一个备份 当你在LVM中的磁盘空间耗
  • 是结束也是开始

    往事随风 时光飞逝 xff0c 不知不觉已答辩完 xff0c 不知不觉已毕业 xff0c 不知不觉告别了生活四年的学校 告别了一起的你们 xff0c 不知不觉踏上了返程的火车 xff0c 不知不觉已回到了家 xff0c 坐在电脑旁边 xff
  • 目标检测光流法(一):对光流法的认识

    所谓光流 xff0c 是计算机视觉研究领域的术语 xff0c 直观的认识就是提供一个对运动物体的的描述 xff0c 因此也常用于运动物体的检测与识别 现实生活中 xff0c 我们之所以能感受到物体的动与不动 xff0c 就是因为这个物体在前
  • 机器学习(1)--特征工程之特征抽取

    三者关系 xff1a 人工智能 gt 机器学习 gt 深度学习 机器学习 xff1a 机器学习是从数据中自动分析获得规律 xff08 模型 xff09 xff0c 并利用规律对未知数据进行预测 机器学习的数据 xff1a 文件csv xff