机器学习精简教程之七——用scikit-learn做特征提取

Scikit-Learn机器学习基础教程与代码实例 根据模型的评估结果,我们可以选择表现最好的模型,并根据实际需求(如准确率、解释性、计算效率等)来决定最终的模型。同时,根据模型的性能,可能需要进一步优化特征工程或尝试其他模型。最后,将模型部署到生产环境中,以便在实际应用中使用。# 选择最佳模型else:# 保存模型在这个项目实战案例中,我们通过数据探索、特征工程、模型训练与优化、模型评估与验证,最终选择了一个适合实际应用的机器学习模型。这个过程展示了Scikit-Learn在实际项目中的应用,以及如何利用其功能来提高模型性能。 阅读详情

本文转自:http://www.shareditor.com/blogshow/?blogId=58


现实世界中多数特征都不是连续变量,比如分类、文字、图像等,为了对非连续变量做特征表述,需要对这些特征做数学化表述,因此就用到了特征提取 (特征数字化)

分类变量的特征提取

比如城市作为一个特征,那么就是一系列散列的城市标记,这类特征我们用二进制编码来表示,是这个城市为1,不是这个城市为0

比如有三个城市:北京、天津、上海,我们用scikit-learn的DictVector做特征提取,如下:

#sklearn 只能处理数字化的特征
from sklearn.feature_extraction import DictVectorizer

onehot_encoder = DictVectorizer()
instances = [{'city':'背景'},{'city':'天津'},{'city':'上海'}]#这个可以使用相同的key值city是因为它们属于不同的字典中
print(onehot_encoder.fit_transform(instances).toarray())

输出结果为:
[[ 0.  0.  1.]
 [ 0.  1.  0.]
 [ 1.  0.  0.]]

不同编码表示不同城市。

文字特征提取


文字特征无非这几种:有这个词还是没有、这个词的TF-IDF(TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF意思是词频(Term Frequency),IDF意思是逆向文件频率(Inverse Document Frequency)。)
第一种情况用词库表示法,如下:
from sklearn.feature_extraction.text import CountVectorizer
corpus = [
    'UNC played Duke in basketball',
    'Duke lost the basketball game'
]
vectorizer = CountVectorizer()
print(vectorizer.fit_transform(corpus).todense())
print(vectorizer.vocabulary_)
执行后:
[[1 1 0 1 0 1 0 1]
 [1 1 1 0 1 0 1 0]]
{'unc': 7, 'played': 5, 'duke': 1, 'in': 3, 'basketball': 0, 'lost': 4, 'the': 6, 'game': 2}

数值为1表示词表中的这个词出现,为0表示未出现

词表中的数值表示单词的坐标位置

什么意思呢? 通俗的将就是将上面两个句子 拆分,去重,从0到最后一个编号,打乱,执行完这个操作对应的{'unc': 7, 'played': 5, 'duke': 1, 'in': 3, 'basketball': 0, 'lost': 4, 'the': 6, 'game': 2},然后两个句子再和打乱后的进行对比,句子中有这个词就为1,没有就为0.数字化的向量长度应该是与拆分去重后的长度一致的。

第二种情况TF-IDF表示词的重要性,如下:
from sklearn.feature_extraction.text import TfidfVectorizer

corpus = [
    'The dog ate a sandwich and I ate a sandwich',
    'The wizard transfigured a sandwich'
]
vectorizer = TfidfVectorizer(stop_words='english')
print(vectorizer.fit_transform(corpus).todense())
print(vectorizer.vocabulary_)

输出结果为:
[[ 0.75458397  0.37729199  0.53689271  0.          0.        ]
 [ 0.          0.          0.44943642  0.6316672   0.6316672 ]]
{'dog': 1, 'ate': 0, 'sandwich': 2, 'wizard': 4, 'transfigured': 3}

值最高的是第一个句子中的ate,因为它在这一个句子里出现了两次

值最低的自然是本句子未出现的单词

(这里是有点疑问的:直接去除了I and a 这样的词?? 第一个句子中sandwich也出现了两次啊,为什么ate最高呢??)

数据标准化

数据标准化就是把数据转成均值为0,方差为1的。比如对如下矩阵做标准化:
from sklearn import preprocessing
import numpy as np
X = np.array([
    [0.,0.,5.,13.,9.,1.],
    [0.,0.,13.,15.,10.,15.],
    [0.,3.,15.,2.,0.,11.]
])
print(preprocessing.scale(X))

输出结果为:
[[ 0.         -0.70710678 -1.38873015  0.52489066  0.59299945 -1.35873244]
 [ 0.         -0.70710678  0.46291005  0.87481777  0.81537425  1.01904933]
 [ 0.          1.41421356  0.9258201  -1.39970842 -1.4083737   0.33968311]]

【Scikit-learn】【入门】简介 + Scikit-learn六大功能 1.简介(1)SciPy,SciPy是一个开源的基于Python的科学计算工具包。(2)Scikits,基于SciPy针对不同的应用领域发展出众多的分支版本,他们统一称为Scikits,即SciPy工具包的意思(3)Scikit-learn,是针对机器学习出的一个分支版本(开源框架),就是Scikit-learn,这就是Scikit-learn和SciPy的关系。Scikit-learn需要Num... 阅读详情

相关推荐

Scikit-Learn的基本使用

Scikit-Learn是用Python开发的机器学习库,其中包含大量机器学习算法、数据集,是数据挖掘方便的工具。 Scikit-Learn的安装可使用pip工具,在安装前需要安装NumPy和SciPy,打开一个命令行中端并输入:

sinat_21062543的博客 2万+

K-means 案例代码实现(Python)

K-means代码实现

weixin_50304531的博客 4447

Scikit-learn高级教程:深入理解机器学习算法

Scikit-learn是一个开源的机器学习库,基于NumPy、SciPy和Matplotlib构建,提供了简单高效的数据挖掘和数据分析工具。管道用于简化机器学习工作流,自定义转换器用于实现自定义的数据预处理逻辑。return X + 1 # 自定义转换逻辑# 创建管道])# 训练管道# 预测# 评估。

2401_85639015的博客 1273

Scikit-Learn 1.4使用指南:数据转换 特征提取 Feature Extraction

..") == ('])True:一个可调用对象,将整个文档作为输入(作为一个字符串),并返回可能经过转换的文档的版本,仍然作为一个字符串。这可以用于删除 HTML 标签、将整个文档转换为小写等。tokenizer:一个可调用对象,将预处理器的输出拆分为标记,然后返回这些标记的列表。analyzer:一个可调用对象,替换预处理器和标记器。默认的分析器都调用预处理器和标记器,但自定义的分析器将跳过这些步骤。N-gram 提取和停用词过滤发生在分析器级别,因此自定义分析器可能需要重现这些步骤。

数智笔记 1312

RPG MV游戏数据修改指南:从JSON解析到脚本进阶

游戏数据修改是游戏开发与逆向工程中的常见实践,其核心原理在于解析和操作游戏资源文件。许多现代游戏引擎采用结构化数据格式(如JSON)存储游戏配置,这为外部修改提供了可能。通过理解文件结构、数据格式与游戏逻辑的关联,开发者或爱好者可以调整游戏平衡、修复问题或实现个性化定制,这不仅能深化对游戏设计机制的理解,也具备实际的技术学习价值。本文以基于Web技术栈的RPG Maker MV(RPG MV)引擎为例,其游戏数据多以明文JSON存储,结构清晰。文章将具体阐述如何安全地修改角色属性、物品效果、敌人数据及技能公

weixin_29001419的博客 405

MediaPipe实战:从零构建人脸关键点检测应用

本文详细介绍了如何使用Google的MediaPipe框架从零构建一个实时人脸关键点检测应用。文章深入剖析了MediaPipe的三段式检测流水线,提供了Android平台的完整实战教程,包括环境配置、模型加载、摄像头集成、关键点绘制以及性能调优指南,帮助开发者快速实现高效、跨平台的人脸AR特效与交互功能。

weixin_29100927的博客 343

八、用scikit-learn做特征提取

现实世界中多数特征都不是连续变量,比如分类、文字、图像等,为了对非连续变量做特征表述,需要对这些特征做数学化表述,因此就用到了特征提取 请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址 分类变量的特征提取 比如城市作为一个特征,那么就是一系列散列的城市标记,这类特征我们用二进制编码来表示,是这个城市为1,不是这个城市为0 比如有三个城市:北京、天津、上海,

jiangjingxuan的博客 994

GEO数据挖掘实战:用R语言从GSE42872数据集中找到关键差异基因(附完整代码)

本文详细介绍了使用R语言从GSE42872数据集中挖掘关键差异基因的完整流程,包括数据下载、探针ID转换、差异表达分析和功能富集分析。通过实战代码演示,帮助生信研究者掌握GEO数据挖掘的核心技术,快速识别疾病相关基因并理解其生物学功能。

weixin_42625070的博客 365

机器学习好伙伴之scikit-learn的使用——特征提取

机器学习好伙伴之scikit-learn的使用——特征提取什么是特征提取sklearn中特征提取的实现PCA(主成分分析)LDA(线性评价分析)应用示例PCA部分LDA部分 有些时候特征太多了,可以利用sklearn中自带的函数进行特征提取噢 什么是特征提取 在进行机器学习的实验里,但并不是所有的维度都是有用的,如果能将对实验结果影响较大的有用维度提取出来,去除掉无用维度,那么既可以提高预测的精...

Bubbliiiing的学习小课堂 2278

GCJ02坐标系转WGS84坐标系(已实地测试基本无偏差)

坐标系转化,GCJ02坐标系,WGS84坐标系

Xiao_XianYu_的博客 1856

基于遗传算法的柔性作业车间调度(初始化以及编码策略)

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

菜鸡 8595

特征工程(四): 类别特征

来源:https://mp.weixin.qq.com/s/Ub-bnil-DvMFNB4np3nOhQ 一个类别特征,见名思义,就是用来表达一种类别或标签。比如,一个类别特征能够表达世界上的主要城市,一年四季,或者说一个公司的产品(石油、路程、技术)。在真实世界的数据集中,类别值的数量总是无限的。同时这些值一般可以用数值来表示。但是,与其他数值变量不一样的是,类别特征的数值变量无法与其他数值变量进行比较大小。(作为行业类型,石油与旅行无法进行比较)它们被称之为非序的。 一个简单的问题可以作为测试.

weixin_41643439的博客 1425

定位教程7---旋转中心标定之方法二

手算相机相对机器人关系

Quintin 6230

机器学习库Scikit-learn

本文目录3.1 背景知识3.2 Scikit-learn概述3.3 Scikit-learn主要用法3.3.1 基本建模流程3.3.2 数据预处理3.3.3 监督学习算法3.3.4 无监督学习算法3.3.5 评价指标3.3.6 交叉验证及超参数调优3.4 Scikit-learn总结参考文献Scikit-learn是基于NumPy、SciPy和Matplotlib的开源Python机器学习包,它封...

fengdu78的博客 8631

VS2019编译使用log4cplus 1.2.0

logger.properties 文件。第三步,创建项目来测试,配置库。第二步,使用VS2019编译。

h a 6 6 6 c k 为 你解决复杂难题! 528

基于LLM的电商数据分析系统

随着电商行业的蓬勃发展,每天都会产生海量的数据,这些数据包含了用户的行为信息、商品信息、销售数据等。如何从这些繁杂的数据中提取有价值的信息,为电商企业的决策提供支持,成为了一个关键问题。基于LLM的电商数据分析系统的目的就是利用大语言模型强大的自然语言处理和数据分析能力,对电商数据进行深入挖掘和分析,帮助企业了解市场趋势、用户需求、商品销售情况等,从而制定更加合理的营销策略、优化商品库存管理、提升用户体验等。本系统的范围涵盖了电商领域的多个方面,包括用户行为分析、商品分析、销售数据分析等。

AI Python 编程之道的博客 808

【参考答案】Python机器学习软件包Scikit-Learn的学习与运用

python人工智能学习educoder做题记录 Python机器学习软件包Scikit-Learn的学习与运用 题目链接 https://www.educoder.net/shixuns/qsza57pj/challenges

Aiwz999的博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Python机器学习软件包Scikit-Learn的学习与运用

Python机器学习软件包Scikit-Learn的学习与运用: 导入数据集、数据预处理、文本数据特征提取、数据分类

sxw_wxs的博客 8149

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【Python】使用scikit-learn做数据挖掘和分析

Scikit-learn,也被称为sklearn,是一个针对Python编程语言的免费软件机器学习库,是一个功能强大、易用且广泛应用的Python机器学习库,为数据科学家和开发者提供了丰富的工具和资源来进行机器学习任务的开发与实践。 Scikit-learn起源于David Cournapeau的Google Summer of Code项目,名为scikits.learn。 Scikit-learn提供了各种分类、回归和聚类算法,包括支持向量机(SVM)、随机森林、梯度提升、k-均值和DBSCAN等。

不积跬步无以至千里,不积小流无以成江海。一个喜欢学习分享的程序员 2729

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

scikit-learn安装步骤

scikit-learn安装步骤scikit-learn简介什么是scikit-learn?scikit-learn可以做什么?scikit-learn安装 scikit-learn简介 什么是scikit-learn? python的机器学习工具 简单高效的数据挖掘和数据分析工具 每个人都可以访问,并且可以在各种情况下重用 基于NumPy,SciPy和matplotlib构建 开源,可商业使用...

Work hard 2万+

三、Scikit-learn机器学习框架

三、Scikit-learn机器学习框架 3.1 Scikit-learn介绍 Scikit-learn介绍 对Python语言有所了解的科研人员可能都知道SciPy——一个开源的基于Python的科学计算工具包。 基于SciPy,目前开发者们针对不同的应用领域已经发展出了为数众多的分支版本,它们被统一称为Scikits,即SciPy工具包的意思。 而在这些分支版本中,最有名,也是专门面向机器学习的一个就是Scikit-learn。 Scikit-learn项目最早由数据科学家 David Cournape

小石小石摩西摩西 3万+

Python scikit-learn特征提取讲解

特征提取,简单来说是把一系列数据中转换为可用于机器学习的数字特征。sklearn.feature_extraction是scikit-learn特征提取的模块 本文分别总结以下内容: Onehot编码 DictVectorizer使用 CountVectorizer使用 TfidfVectorizer使用 HashingVectorizer使用 1.Onehot编码 上面说过特征转化为机器学习的数字特征,其实就是转化为Onehot编码。 为什么要转化为onehot编码?先看看下面.

qq_37628075的博客 2834

机器学习:scikit-learn库的主要组件

sklearn)是一个用于机器学习的Python库,它提供了广泛的算法和工具,用于数据预处理、模型构建、模型评估、模型选择等。的设计遵循一致的API原则,使得使用不同的模型和算法变得简单且直观。以下是。

www_tlj的专栏 1982

机器学习之scikit-learn初识

上了一门机器学习课,实践平台老师推荐了Python和scikit-learn库。scikit-learn库包含有完善的文档和丰富的机器学习算法,在官方文档上每种算法都有讲解和应用示例(简直堪比老师课上的PPT)。于是调查了一下这个库,目的是学习下它怎么用。

不眠旅行 2908

scikit-learn全解:掌握Python最强大的机器学习库

本篇博客详细介绍了Python机器学习库Scikit-learn的使用方法和主要特性。内容涵盖了如何安装和配置Scikit-learn,Scikit-learn的主要特性,如何进行数据预处理,如何使用监督学习和无监督学习算法,以及如何评估模型和进行参数调优。本文旨在帮助读者深入理解Scikit-learn,并有效地应用在实际的机器学习任务中。

TechLead 1713

机器学习 scikit-learn 特征提取

机器学习 scikit-learn 特征提取 字典特征抽取 def dict_extract(): """字典特征抽取""" vector = DictVectorizer() res = vector.fit_transform( [{'city': "北京", 'temperature': 100}, {'city': "上海", 'temperatur...

小小熊的博客 385
上一篇: 机器学习精简教程之六——用随机梯度下降法(SGD)做线性拟合
下一篇: 机器学习精简教程之八——二元分类效果的评估方法
quliulangle
博客等级 码龄14年 15粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值