机器学习的特征工程
字典特征提取
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,…...
产品技术体系
产品,是一个企业或公司针对市场客户推出的一系列相关的功能或者服务,为对应的客户解决实际问题,进而产生对应的商业、社会价值。有了这些实际的价值,企业就会获得相应的利益或者利润回报。正常来讲,这应该是一个良性的…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...