独立热编码和向量化

1、什么是 one-hot 编码

one-hot 编码用于将离散的分类标签转换为二进制向量。

注意这里有两个关键词,第一个是离散的分类,第二个是二进制向量。

具体过程:

import pandas as pd
from sklearn.preprocessing import OneHotEncoder
# 创建示例数据集
data = pd.DataFrame({'color': ['red', 'blue', 'green', 'yellow'']})# 创建独热编码器对象
encoder = OneHotEncoder()
# 训练独热编码器
encoder.fit(data)
# 转换特征向量
#就是将'red', 'blue', 'green', 'yellow'这几个转换成[[0001][0010][01001][1000]]
encoded_data = encoder.transform(data).toarray()#处理未知类别
# 创建新的独热编码器对象,设置handle_unknown参数为'ignore'
encoder_handle_unknown = OneHotEncoder(handle_unknown='ignore')# 训练新的独热编码器
encoder_handle_unknown.fit(data)# 转换特征向量
encoded_data_handle_unknown = encoder_handle_unknown.transform(data).toarray()# 将编码后的特征向量与原始数据集合并
encoded_df = pd.DataFrame(encoded_data, columns=encoder.get_feature_names_out(['color']))
result = pd.concat([data, encoded_df], axis=1)

参考来自:https://blog.51cto.com/u_16175448/7272257

2、向量化

什么是向量化?

向量化是将操作应用于整个数组或数据系列的过程,而不是逐个遍历每个元素。在Pandas中可以对整个列或Series执行操作,而无需编写显式循环。这种高效的方法利用了底层优化的库,使您的代码更快、更简洁。

传统的基于循环的处理

在许多编程场景中,可能需要对数据元素集合执行相同的操作,例如逐个添加两个数组或对数组的每个元素应用数学函数。一般都会使用循环一次迭代一个元素并执行操作。

下面是一个没有向量化的Python示例:

list1 = [1, 2, 3, 4, 5] 
list2 = [6, 7, 8, 9, 10] 
result = [] for i in range(len(list1)): result.append(list1[i] + list2[i]) 
print(result) Output: 
[7, 9, 11, 13, 15]

 

使用NumPy进行向量化操作

NumPy是一个流行的Python库,提供对向量化操作的支持。它利用了优化的C和Fortran库,使其在数值计算方面比纯Python循环快得多。

下面是使用NumPy的相同加法操作:

array1 = np.array([1, 2, 3, 4, 5]) 
array2 = np.array([6, 7, 8, 9, 10]) 
result = array1 + array2 
print(result) Output: 
[ 7  9 11 13 15]

padas的向量化: 

import pandas as pd data = {'A': [1, 2, 3], 'B': [4, 5, 6]} 
df = pd.DataFrame(data) 
# Using vectorization to add columns 'A' and 'B' 
df['C'] = df['A'] + df['B'] 
print(df['C']) Output: 
0    5 
1    7 
2    9

 

2、apply

向量化还允许对列应用自定义函数。假设你想计算一列中每个元素的平方:

import pandas as pd data = {'A': [1, 2, 3]} 
df = pd.DataFrame(data) 
# Define a custom function 
def square(x): return x ** 2 # Applying the 'square' function to the 'A' column 
df['A_squared'] = df['A'].apply(square) 
print(df['A_squared']) Output: 
0    1 
1    4 
2    9

3、条件操作

也将矢量化用于条件操作,比如基于列a中的条件创建一个新的列D:

import pandas as pd data = {'A': [1, 2, 3]} 
df = pd.DataFrame(data) # Creating a new column 'D' based on a condition in column 'A' 
df['D'] = df['A'].apply(lambda x: 'Even' if x % 2 == 0 else 'Odd') print(df) Output: A     D 
0  1   Odd 
1  2  Even 
2  3   Odd

 

 

学习向量化在各个领域都有广泛的应用,以下是一些常见的应用场景:

图像处理:学习向量化可以用于图像特征提取、图像分类和图像检索等任务。
自然语言处理:学习向量化可以用于文本分类、情感分析和主题建模等任务。
推荐系统:学习向量化可以用于用户画像建模、商品特征提取和推荐算法优化等任务。
数据挖掘:学习向量化可以用于聚类、异常检测和数据可视化等任务。
生物信息学:学习向量化可以用于基因表达数据分析、蛋白质结构预测和药物设计等任务。
信号处理:学习向量化可以用于音频信号处理、视频信号处理和传感器数据分析等任务。
金融分析:学习向量化可以用于股票价格预测、风险评估和投资组合优化等任务。
医学影像分析:学习向量化可以用于医学影像分割、疾病诊断和治疗方案设计等任务。
工业控制:学习向量化可以用于工业过程监控、质量控制和故障诊断等任务。
社交网络分析:学习向量化可以用于社交网络用户画像建模、社区发现和事件检测等任务

Python中有很多方法可以实现学习向量化,以下是一些常用的方法:

scikit-learn库:scikit-learn是一个常用的Python机器学习库,它提供了多种学习向量化的方法,包括PCA、t-SNE和LLE等。
TensorFlow库:TensorFlow是一个流行的深度学习框架,它提供了多种自编码器模型,可以用于学习向量化。
Keras库:Keras是一个高层次的深度学习库,它提供了多种自编码器模型和降维方法,可以用于学习向量化。
PyTorch库:PyTorch是另一个流行的深度学习框架,它提供了多种自编码器模型和降维方法,可以用于学习向量化。
gensim库:gensim是一个专门用于处理文本数据的Python库,它提供了多种主题模型和词向量模型,可以用于学习向量化。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自定义html5中日期选取器的样式

自定义html5中日期选取器的样式 1. 前言1.1 关于 h5 的新特性1.2 使用浏览器 2. html5中日期选取器默认样式3. 自定义日期样式3.1 简单定义3.2 花式样式定义 4. 改变日期格式5. 参考 1. 前言 1.1 关于 h5 的新特性 可看下面的文章 HTML5 新特性之HTML5 的输入(inpu…

设计模式(4)--对象行为(6)--备忘录

1. 意图 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 这样以后可以将该对象恢复到原先保存的状态。 2. 三种角色 原发器(Originator)、备忘录(Memento)、负责人(Caretaker) 3. 优点 3.1 保持了封装边界。屏蔽了原发器的…

融汇贯通 —— 2023年技术与心灵的双重成长旅程

当我们站在2023年的岁末,回望这一年赋予我们的经历和挑战,心中涌动的感慨与启示像朝日初升的光芒,照亮脚下的路,亦照见心中的路。在此,我想分享几个方面的感悟和成长,愿它们能有所触动,成为您前…

Vue 修饰符有哪些

事件修饰符 .stop 阻止事件继续传播.prevent 阻止标签默认行为.capture 使用事件捕获模式, 即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理.self 只当在 event.target 是当前元素自身时触发处理函数.once 事件将只会触发一次.passive 告诉浏览器你不…

ES6防抖及节流的方法

ES6提供了防抖函数和节流函数来控制函数的执行频率。 1. 防抖函数(Debounce):在一定时间内,只执行最后一次触发的函数。 javascript function debounce(func, delay) { let timer; return function (...args) { clearTim…

一招搞定找不到vcruntime140_1.dll无法继续执行此代码

在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“无法加载某某.dll文件”。而其中一个常见的问题就是vcruntime140_1.dll丢失。那么,vcruntime140_1.dll到底是什么?为什么会出现丢失的情…

免费代理IP:如何获取?有什么风险?有什么性价比高的代理IP?

您可能已经知道,生活中没有什么是真正免费的。代理IP虽然用于保护隐私,但也有非常多代理都是免费的,这对于不想使用付费替代方案的用户来说是一个巨大的优势。在这篇博文中,我们将深入研究免费代理的细节,并评估这把双…

【快速全面掌握 WAMPServer】04.人生初体验

网管小贾 / sysadm.cc 我们在前面的教程中为小伙伴们详细地介绍了 WampServer 的安装方法,相信大家对于如何安装应该已经有了一个比较完全的掌握。 在完全掌握安装方法之后,我们还可以更加便捷地使用我为大家提供的一键安装批处理程序来快速搞定安装部署…

java设计模式学习之【迭代器模式】

文章目录 引言迭代器模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用迭代器示例代码地址 引言 想象一下,你在一个书店里浏览各种书籍。你可能会从头到尾查看每一本书,或者可能跳过一些不感兴趣的部分。在这个过程中,你实…

VuePress-theme-hope 搭建个人博客 2【快速上手】 —— 安装、部署 防止踩坑篇

续👆VuePress、VuePress-theme-hope 搭建个人博客 1【快速上手】 项目常用命令 vuepress dev [dir] 会启动一个开发服务器,以便让你在本地开发你的 VuePress 站点。vuepress build [dir] 会将你的 VuePress 站点构建成静态文件,以便你进行后…

K8S 全局架构图 —— 筑梦之路

kube-apiserver: Kubernetes API 服务器验证并配置 API 对象的数据, 这些对象包括 pods、services、replicationcontrollers 等。API 服务器为 REST 操作提供服务,并为集群的共享状态提供前端, 所有其他组件都通过该前端进行交互。…

3DMAX 中的 VR 渲染器如何设置局部区域渲染?

3DMAX 中的 VR 渲染器如何设置局部渲染? 首先我们要得打开渲染设置,在3damx里按F10,调出渲染设置。选定渲染器为Vary渲染器: 设置VR的局部渲染,需要打开帧缓冲,我们在V-ary项下,打开帧缓冲(点击…

使用 uiautomatorviewer 获取元素的定位信息

1. 使用 adb 连接设备(真机或模拟器) 连接夜神模拟器:adb connect 127.0.0.1:62001 连接MuMu模拟器:adb connect 127.0.0.1:7555 2. 打开 uiautomatorviewer 在 android-sdk --> tools 目录,找到 uiautomatorviewer.bat,双击打开: 3. 连接指定的设备(以连接夜神…

使用cmake配置matplotlibcpp生成VS项目

https://gitee.com/feboreigns/matplotlibcpp 这篇文章需要一些cmake基础,python基础,visualstudio基础 准备环境 注意如果在VS平台使用必须要手动下载python,不能使用conda里面的,比如3.8版本,因为conda里面没有py…

Checkpoint 执行机制原理解析

在介绍Checkpoint的执行机制前,我们需要了解一下state的存储,因为state是Checkpoint进行持久化备份的主要角色。Checkpoint作为Flink最基础也是最关键的容错机制,Checkpoint快照机制很好地保证了Flink应用从异常状态恢复后的数据准确性。同时…

Zblog主题模板:ZblogitseanPage博客主题模板

zblog主题模板:ZblogitseanPage博客主题模板 ZblogitseanPage博客主题模板主要是以文字内容为主导,将页面的设计杂乱的图片和元素进行最小化或者去除,从而使整个页面更加简洁、清晰,突出信息的呈现。 下面介绍一下zblog主题模板:Z…

在Windows 10中,启用飞行模式至少有六种,总有一种适合你

在Windows 10上,你可以通过多种方式管理飞行模式,在本指南中,我将概述完成此配置的步骤。飞行模式是一种允许你通过单一选项快速禁用无线设备(如Wi-Fi、蓝牙、近场通信(NFC)、全球定位系统(GPS)和蜂窝)的功能。通常,当你在飞机上,或者你在禁止使用无线电信号的地方时…

Docker自建私人云盘系统

Docker自建私人云盘系统。 有个人云盘需求的人,主要需求有这几类: 文件同步、分享需要。 照片、视频同步需要,尤其是全家人都是用的同步。 影视观看需要(分为家庭内部、家庭外部) 搭建个人网站/博客 云端OFFICE需…

配置代理解决跨域(CORS)问题

一、跨域 ? 我们在完成前后端分离项目时(VueSpringBoot),有很多人会遇到跨域问题(CORS)。 跨域(Cross-Origin Resource Sharing,CORS)是浏览器的一项安全功能&#xff…

H5向微信小程序发送信息(小程序web-view打开H5)

引入weixin-js-sdk npm i weixin-js-sdk 页面引入 // 引入wxjsimport wx from "weixin-js-sdk"; 点击触发方法 methods: {goweap(id){console.log(wx);// H5传递数据 (navigateBack)wx.miniProgram.navigateBack({delta: 1});wx.min…