机器学习的特征工程
字典特征提取
def dict_demo():"""字典特征提取:return:"""data = [{'city': '北京', 'temperature': 100}, {'city': '上海', 'temperature': 60}, {'city': '深圳', 'temperature': 30}]# data = [{'city':['北京','上海','深圳']},{'temperature':["100","60","30"]}]from sklearn.feature_extraction import DictVectorizer# 1、实例化一个转换器类transfer = DictVectorizer(sparse=False) # sparse=False表示不用稀疏矩阵存储,稀疏矩阵存储的好处是节省内存,但是不方便观察,所以一般不用# 2、调用fit_transformdata_new = transfer.fit_transform(data)print(f'转换后的数据:{data_new}')print(f'特征名字:{transfer.get_feature_names_out()}') # ['city=上海' 'city=北京' 'city=深圳' 'temperature']return None
结果显示
注意:如果特征中存在非数值类型数据,需要转换成字典然后使用one-hot编码
文本特征提取
def text_demo():"""文本特征提取:return:"""data = ["life is short,i like python","life is too long,i dislike python"]from sklearn.feature_extraction.text import CountVectorizer# 1、实例化一个转换器类transfer = CountVectorizer()# 2、调用fit_transformdata_new = transfer.fit_transform(data)print(f'转换后的数据:{data_new.toarray()}') # toarray()将稀疏矩阵转换成数组print(f'特征名字:{transfer.get_feature_names_out()}')return None
结果显示
中文文本特征抽取
def chinese_demo():"""中文文本特征抽取:return:"""data = ["我 爱 北京 天安门","天安门 上 太阳 升"]from sklearn.feature_extraction.text import CountVectorizer# 1、实例化一个转换器类transfer = CountVectorizer(stop_words=[]) # stop_words表示停用词,不需要的词# 2、调用fit_transformdata_new = transfer.fit_transform(data)print(f'转换后的数据:{data_new.toarray()}') # toarray()将稀疏矩阵转换成数组print(f'特征名字:{transfer.get_feature_names_out()}')return None
结果
中文文本抽取,自动分词
# 分词函数
import jieba
def cut_word(text):text = " ".join(list(jieba.cut(text)))return textdef chinese_demo2():"""中文文本特征抽取,自动分词:return:"""data = ["今天很残酷,明天更残酷,后天很美好,但绝对大多数是死在明天晚上,所以每个人不要放弃今天。","我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。","如果只用了一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相关联。"]# 1、分词data_new = []for sent in data:data_new.append(cut_word(sent))# print(data_new)# 2、特征抽取from sklearn.feature_extraction.text import CountVectorizer# 1、实例化一个转换器类transfer = CountVectorizer(stop_words=[]) # stop_words表示停用词,不需要的词# 2、调用fit_transformdata_final = transfer.fit_transform(data_new)print(f'转换后的数据:{data_final.toarray()}') # toarray()将稀疏矩阵转换成数组print(f'特征名字:{transfer.get_feature_names_out()}')
结果
TF-IDF特征抽取
def tf_idf_demo():"""tf-idf特征抽取:return:"""data = ["今天很残酷,明天更残酷,后天很美好,但绝对大多数是死在明天晚上,所以每个人不要放弃今天。","我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。","如果只用了一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相关联。"]# 1、分词data_new = []for sent in data:data_new.append(cut_word(sent))# print(data_new)# 2、特征抽取from sklearn.feature_extraction.text import TfidfVectorizer# 1、实例化一个转换器类transfer = TfidfVectorizer(stop_words=[]) # stop_words表示停用词,不需要的词# 2、调用fit_transformdata_final = transfer.fit_transform(data_new)print(f'转换后的数据:{data_final.toarray()}') # toarray()将稀疏矩阵转换成数组print(f'特征名字:{transfer.get_feature_names_out()}')
结果
归一化
data.txt
def guiyi_demo():"""归一化:return:"""import pandas as pd# 读取数据data = pd.read_csv("./data.txt")# print(data)data = data.iloc[:,:3]# print(data)# 归一化(针对特征值)from sklearn.preprocessing import MinMaxScaler# 1、实例化一个转换器类transfer = MinMaxScaler(feature_range=(0,1)) # feature_range表示归一化的范围# 2、调用fit_transformdata_new = transfer.fit_transform(data)print(f'转换后的数据:{data_new}')
结果
标准化
def biaozhun_demo():"""标准化:return:"""import pandas as pddata = pd.read_csv("./data.txt")data = data.iloc[:,:3]# 标准化from sklearn.preprocessing import StandardScaler# 1、实例化一个转换器类transfer = StandardScaler()# 2、调用fit_transformdata_new = transfer.fit_transform(data)print(f'转换后的数据:{data_new}')
结果
低方差特征过滤
def varis_demo():"""过滤低方差特征:return:"""import pandas as pddata = pd.read_csv("./data.txt")data = data.iloc[:,1:-2]# 过滤低方差特征from sklearn.feature_selection import VarianceThreshold# 1、实例化一个转换器类transfer = VarianceThreshold(threshold=0.0) # threshold表示方差的阈值# 2、调用fit_transformdata_new = transfer.fit_transform(data)print(f'转换后的数据:{data_new}')
结果
相关系数法
def xiangguan_demo():"""相关系数法:return:"""import pandas as pddata = pd.read_csv("./data.txt")data = data.iloc[:,1:-2]# 相关系数法,皮尔逊相关系数from scipy.stats import pearsonr# 1、实例化一个转换器类r = pearsonr(data['pe_ratio'],data['pb_ratio'])# 2、求出相关系数print(f'皮尔逊相关系数:{r}')# 处理方法# 1、选取其中一个特征# 2、加权求和# 3、主成分分析
主成分分析
def pca_demo():"""主成分分析:return:"""data = [[2,8,4,5],[6,3,0,8],[5,4,9,1]]# 主成分分析from sklearn.decomposition import PCA# 1、实例化一个转换器类# transfer = PCA(n_components=0.9) # n_components表示保留多少特征信息transfer = PCA(n_components=2) # n_components表示保留的特征个数# 2、调用fit_transformdata_new = transfer.fit_transform(data)print(f'转换后的数据:{data_new}')print(f'保留的特征个数:{transfer.n_components_}')print(f'保留的特征百分比:{transfer.explained_variance_ratio_}')return None
结果
综合案例分析
def instacart_demo():"""instacart案例分析:return:"""# 1、读取数据import pandas as pdorder_products = pd.read_csv('./instacart/order_products__prior.csv')orders = pd.read_csv('./instacart/orders.csv')products = pd.read_csv('./instacart/products.csv')aisles = pd.read_csv('./instacart/aisles.csv')# 2、合并aisles和products表,目的:aisles_id和products在一张表中table1 = pd.merge(aisles,products,on=['aisles_id','aisles_id'])table2 = pd.merge(table1,order_products,on=['product_id','product_id'])table3 = pd.merge(table2,orders,on=['order_id','order_id'])# 3、交叉表处理table = pd.crosstab(table3['user_id'],table3['aisle'])# 4、主成分分析from sklearn.decomposition import PCA# 1、实例化一个转换器类transfer = PCA(n_components=0.95) # n_components表示保留多少特征信息# 2、调用fit_transformdata_new = transfer.fit_transform(table)print(f'转换后的数据:{data_new}')print(f'保留的特征个数:{transfer.n_components_}')print(f'保留的特征百分比:{transfer.explained_variance_ratio_}')return None
相关文章:

机器学习的特征工程
字典特征提取 def dict_demo():"""字典特征提取:return:"""data [{city: 北京, temperature: 100}, {city: 上海, temperature: 60}, {city: 深圳, temperature: 30}]# data [{city:[北京,上海,深圳]},{temperature:["100","6…...

python3 修改nacos的yaml配置
一、安装nacos库 pip install nacos-sdk-python 二、代码如下 import nacos import yaml# 连接地址 NACOS_SERVER_ADDRESSES "192.168.xx.xx" NACOS_SERVER_PORT 替换为你的端口号,如8848# 命名空间 NACOS_NAMESPACE "your_namespace"# 账…...

YOLOv8 : 数据组织
1. 数据源 首先YOLOv8是支持目标分类、检测和目标分割。当前以应用最为广泛的目标检测为例,简单说明数据相关的信息。 一般情况下,建议将数据划分成images和labels,其中images存储图像,labels存储标签文件(YOLO格式)。如果是VOC数…...
golang如何生成zip压缩文件
在Golang中,您可以使用标准库中的compress/zip包来生成ZIP压缩文件。下面是一个简单的示例代码,演示如何使用该包来创建一个ZIP文件并将文件添加到其中: package main import ( "archive/zip" "bytes" "fmt&qu…...
AntDesign技术指南:构建优雅的前端界面
引言 AntDesign是一款优秀的前端UI组件库,它提供了丰富的组件和功能,帮助我们快速构建漂亮、易用的前端界面。本篇博客将详细介绍AntDesign的使用方法和技巧,并展示完整的代码示例。无论你是初学者还是有经验的开发者,本篇博客都…...

机器人任务挖掘与智能超级自动化技术解析
本文为上海财经大学教授、安徽财经大学学术副校长何贤杰出席“会计科技Acctech应对不确定性挑战”高峰论坛时的演讲内容整理。何贤杰详细介绍了机器人任务挖掘与智能超级自动化技术的发展背景、关键技术和应用场景。 从本质来说,会计是非常适合智能化、自动化的。会…...

C#通过ModbusTcp协议读写西门子PLC中的浮点数
一、Modbus TCP通信概述 MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的MODBUS系列通讯协议的派生产品,显而易见,它覆盖了使用TCP/IP协议的“Intranet”和“Internet”环境中MODBUS报文的用途。协议的最通用用途是为诸如PLC,I/…...

19-springcloud(中)
一 服务注册发现 1 什么是服务治理 为什么需要服务治理 在没有进行服务治理前,服务之间的通信是通过服务间直接相互调用来实现的。 过程: 武当派直接调用峨眉派和华山派,同样,华山派直接调用武当派和峨眉派。如果系统不复杂,这样…...

Leetcode1090. 受标签影响的最大值
思路:根据值从大到小排序,然后在加的时候判断是否达到标签上限即可,一开始想用字典做,但是题目说是集合却连续出现两个8,因此使用元组SortedList进行解决 class Solution:def largestValsFromLabels(self, values: li…...

第七章:敏捷开发工具方法-part2-CI/CD工具介绍
文章目录 前言一、CI-持续集成1.1 安装部署gitlab 二、gitlab CI配置三、jenkins实现CI / CD3.1 安装jenkins3.2 配置CI3.3 配置CD3.4 其他构建方式1、定时构建2、指定参数构建3、webhook自动根据git事件进行构建 前言 什么是CI/Cd? CI-Continuous integration&…...

【自学开发之旅】Flask-回顾--对象拆分-蓝图(二)
url-统一资源定位符-不同的url对应不同的资源 作为服务端,url和视图函数的映射关系就是路由。 定义传递参数的方式: 1.创建动态url app.route("/login2/<username>/<passwd>") def login2(username, passwd):if username "…...

自动驾驶中间件
自动驾驶中间件 1. 什么是中间件2. 中间件的分类3. 自动驾驶为什么需要中间件4. 通信中间件 Reference: 自动驾驶中间件:量产落地的关键技术通俗易懂的告诉你什么是中间件 对于初入自动驾驶行业的人来说,各色各样的新型传感器、线控系统、芯…...
鲲鹏920(ARM64)移植javacpp
JavaCPP JavaCPP 使得Java 应用可以在高效的访问本地C++方法,JavaCPP底层使用了JNI技术,可以广泛的用在Java SE应用中(也包括安卓),以下两个特性是JavaCPP的关键,稍后咱们会用到: 提供一些注解,将Java代码映射为C++代码提供一个jar,用java -jar命令可以将C++代码转为…...
python打包exe实用版
pyinstaller模块用于将python项目打包成exe文件,以方便地在没有安装python环境的机器上运行。该模块使用 pip install pyinstaller 安装即可。 参数命令含义-Dpyinstaller -D demo.py默认选项。除了主程序demo.exe外,还会在在dist文件夹中生成很多依赖文…...
什么是反向代理(Reverse Proxy)?解释反向代理的作用和常见应用。
1、什么是反向代理(Reverse Proxy)?解释反向代理的作用和常见应用。 反向代理是一种代理服务器模型,它位于客户端和后端服务器之间。它允许将请求转发到后端服务器,并将响应返回给客户端。反向代理的主要作用如下&…...

算法通关村第十二关——不简单的字符串转换问题
前言 字符串是我们在日常开发中最常处理的数据,虽然它本身不是一种数据结构,但是由于其可以包含所有信息,所以通常作为数据的一种形式出现,由于不同语言创建和管理字符串的方式也各有差异,因此针对不同语言特征又产生…...

PROSOFT PTQ-PDPMV1网络接口模块
通信接口:PROSOFT PTQ-PDPMV1 网络接口模块通常配备了多种通信接口,以便与不同类型的设备和网络进行通信。常见的接口包括以太网、串行端口(如RS-232和RS-485)、Profibus、DeviceNet 等。 协议支持:该模块通常支持多种…...

力扣(LeetCode)算法_C++——稀疏矩阵的乘法
给定两个 稀疏矩阵 :大小为 m x k 的稀疏矩阵 mat1 和大小为 k x n 的稀疏矩阵 mat2 ,返回 mat1 x mat2 的结果。你可以假设乘法总是可能的。 示例 1: 输入:mat1 [[1,0,0],[-1,0,3]], mat2 [[7,0,0],[0,0,0],[0,0,1]] 输出&am…...

华为云API人脸识别服务FRS的感知力—偷偷藏不住的你
云服务、API、SDK,调试,查看,我都行 阅读短文您可以学习到:人工智能AI人脸的识别、检测、搜索、比对 1、IntelliJ IDEA 之API插件介绍 API插件支持 VS Code IDE、IntelliJ IDEA等平台、以及华为云自研 CodeArts IDE,…...
产品技术体系
产品,是一个企业或公司针对市场客户推出的一系列相关的功能或者服务,为对应的客户解决实际问题,进而产生对应的商业、社会价值。有了这些实际的价值,企业就会获得相应的利益或者利润回报。正常来讲,这应该是一个良性的…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...