[github-100天机器学习]day1 data preprocessing

news/2024/5/14 6:54:30/文章来源:https://blog.csdn.net/weixin_43769170/article/details/131517538

https://github.com/LiuChuang0059/100days-ML-code/blob/master/Day1_Data_preprocessing/README.md#step-6-feature-scaling—特征缩放

数据预处理

数据帧(Data Frame) 二维的表格形式,类似于电子表格或关系型数据库中的表。数据帧通常被用来存储和操作结构化数据。数据以行和列的形式组织。每一列代表一个变量,每一行代表一个观察或数据点。

例子:

data = {'Name': ['John', 'Emma', 'Mike', 'Lisa'],'Age': [28, 24, 32, 29],'City': ['New York', 'San Francisco', 'Chicago', 'Los Angeles']
}df = pd.DataFrame(data)# 打印数据帧
print(df)# 输出:
#    Name  Age           City
# 0  John   28       New York
# 1  Emma   24  San Francisco
# 2  Mike   32        Chicago
# 3  Lisa   29    Los Angeles

请添加图片描述

请添加图片描述

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Aug  6 02:15:40 2018@author: liuchuang
"""### Step 1: Importing the librariesimport numpy as np
import pandas as pd### Step 2: Importing datasetdataset = pd.read_csv('Data.csv')
# iloc 方法的索引是基于位置的,而不是基于标签的
X = dataset.iloc[ : , :-1].values
# 使用 Pandas 库中的 iloc 方法从数据集中提取特征(自变量)的部分
# 通过 iloc 方法可以按照索引位置来选择数据。
# 在这里,: 表示选择所有的行,-1 表示选择除了最后一列之外的所有列。
# .values 用于将结果转换为 NumPy 数组Y = dataset.iloc[ : , 3].values #选择索引为 3 的列### Step 3: Handling the missing data
### 使用整列的中位数或者平均值表示缺失值from sklearn.impute import SimpleImputer   #new
#from sklearn.preprocessing import Imputer   #old-教程里的# 从 Scikit-learn 0.22 版本开始,Imputer 类已被 SimpleImputer 类取代# 使用sklearn.preprocessing 中的 Imputer类
imputer = SimpleImputer(missing_values=np.nan, strategy='mean') #new
# 使用均值mean来填充缺失值,其他方法: median(中位数)、most_frequent(最频繁值)
# imputer = Imputer(missing_values = "NaN", strategy = "mean", axis = 0) #old
imputer = imputer.fit(X[ : , 1:3])
# 使用 fit 方法将 SimpleImputer 对象适应(fit)到数据集的指定列
# X[:, 1:3] 表示选取数据集 X 的所有行(:),以及列索引为 1 到 2(不包括索引 3)的列(1:3)
X[ : , 1:3] = imputer.transform(X[ : , 1:3])
# 使用 transform 方法将填充后的数据替换原始数据集中指定的列
# imputer 对象将使用之前计算得到的填充信息来填充 X 数据集中选定的列,将缺失值替换为填充值
### step4: Encoding categorical datafrom sklearn.compose import ColumnTransformer   #newfrom sklearn.preprocessing import LabelEncoder, OneHotEncoder# 对第一个特征列进行标签编码
labelencoder_X = LabelEncoder()     
# 使用 LabelEncoder 对第一个特征列进行标签编码,将类别值转换为数值
X[ : , 0] = labelencoder_X.fit_transform(X[ : , 0])# 使用 ColumnTransformer 类指定对第一个特征列进行独热编码,并将其与 OneHotEncoder 相关联。
ct = ColumnTransformer([('encoder', OneHotEncoder(), [0])], remainder='passthrough')#new
X = ct.fit_transform(X)#new
#onehotencoder = OneHotEncoder(categorical_features = [0])#old
#X = onehotencoder.fit_transform(X).toarray()    #old
# 使用 ColumnTransformer 来代替过时的 categorical_features 参数,以实现对指定列的独热编码#对目标变量进行标签编码
labelencoder_Y = LabelEncoder() #使用 LabelEncoder 对目标变量进行标签编码
Y =  labelencoder_Y.fit_transform(Y)### Step 5: Splitting the datasets into training sets and Test setsfrom sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split( X , Y , test_size = 0.2, random_state = 0)
# 数据集分成训练集和测试集
# 分的比例通常 8:2
# 使用sklearn.cross_validation 中 train_test_split 类### Step 6: Feature Scaling---特征缩放from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.fit_transform(X_test)# 使用欧几里得距离
# 特征与 标度有关,一个特征比其他的特征范围更大 该特征值成为主导

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

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

相关文章

科技项目验收测试报告有什么注意事项和疑惑?

科技项目验收测试报告是一份重要的文件,用于评估科技项目的质量和可靠性,对项目的成功交付具有关键作用。在项目完成的最后阶段,通过对项目进行全面测试和评估,以确保项目符合预期的目标和需求,并满足用户的期望。 一…

3D深度视觉与myCobot 320机械臂无序抓取

今天我记录使用myCobot320 M5跟FS820-E1深度相机进行一个无序抓取物体的分享。 为什么会选择深度相机和机械臂做一个案例呢? 2D相机(最常见使用的相机)可以捕捉二维图像,也就是在水平和垂直方向上的像素值。它们通常用于拍摄静态…

卷积神经网络--猫狗系列【VGG16】

数据集:【文末】 ​ 数据集预处理 定义读取数据辅助类(继承torch.utils.data.Dataset) import osimport PILimport torchimport torchvisionimport matplotlib.pyplot as pltimport torch.utils.dataimport PIL.Image # 数据集路径train_p…

nohup命令解决SpringBoot/java -jar命令启动项目运行一段时间自动停止问题

问题描述: 在centos7上部署多个springcloud项目。出现了服务莫名其妙会挂掉一两个的问题,重新启动挂掉的服务之后又会出现其他服务挂掉的情况,查看启动日志也并没有发现有异常抛出。令人费解的是所有的服务都是通过nohup java -jar xxx.jar …

强化学习路径优化:基于Q-learning算法的机器人路径优化(MATLAB)

一、强化学习之Q-learning算法 Q-learning算法是强化学习算法中的一种,该算法主要包含:Agent、状态、动作、环境、回报和惩罚。Q-learning算法通过机器人与环境不断地交换信息,来实现自我学习。Q-learning算法中的Q表是机器人与环境交互后的…

图像视频基础

图像视频基础 文章目录 图像视频基础图像颜色深度分辨率 视频帧率比特率帧类型 YUV模型色度子采样 图像 颜色深度 存储颜色的强度,需要占用一定大小的数据空间,这个大小被称为颜色深度。假如每个颜色的强度占用 8 bit(取值范围为 0 到 255&…

nginx+tomcat负载均衡和动静分离

目录 1.部署nginx 2.部署两台tomcat 3.配置nginx 1.部署nginx vim /vim/lib/systemd/system/nginx.service 2.部署两台tomcat 进入第一台装第一个tomcat vim /etc/profile vim /usr/local/tomcat/webapps/test/index.jsp 重启 进入第二台安装第二台tomcat vim /usr/local/tom…

(0021) H5-Vuejs配合 mint-ui 开发移动端web

mint-ui 初衷 element-ui主打pcweb,导致移动端上UI适配问题突出,趟了很多坑。这次更加理智些,选择了饿了么团队的主打移动端的mint-ui,目前来说体验很好。 认识Mint-ui 首先在手机上体验其demo,扫描链接:…

在 Jetpack Compose 中创建 Drawer

Jetpack Compose 是一个现代的构建 Android UI 的工具集,它使得构建 UI 变得更加简单快速。在本篇博客中,我们将讨论如何在 Jetpack Compose 中创建 Drawer,也就是我们常见的侧边抽屉。 什么是 Drawer? Drawer 是一个提供导航选项…

基于Transformer视觉分割综述

基于Transformer视觉分割综述 SAM (Segment Anything )作为一个视觉的分割基础模型,在短短的 3 个月时间吸引了很多研究者的关注和跟进。如果你想系统地了解 SAM 背后的技术,并跟上内卷的步伐,并能做出属于自己的 SAM…

GC回收器演进之路

目录 未来演进方向 历经之路 引用计数法 标记清除法 复制法 标记整理 分代式 三色标记法的诞生 三色标记法的基本概念 产生的问题 问题 1:浮动垃圾 问题 2:对象消失 遍历对象图不需要 STW 的解决方案 屏障机制 插入屏障(Dijks…

Autosar诊断系列介绍17 - 物理寻址及功能寻址详解

本文框架 前言1. 物理寻址及功能寻址基本概念1.1物理寻址及功能寻址-定义1.2两种寻址方式区别1.3不同诊断服务寻址方式配置 2.不同寻址方式的应用场景 前言 UDS(Unified Diagnostic Services)协议,即统一的诊断服务,是面向整车所…

基于SQLI的SQL字符型报错注入

基于SQLI的SQL字符型报错注入 一. 实验目的 理解数字型报错SQL注入漏洞点的定位方法,掌握利用手工方式完成一次完整SQL注入的过程,熟悉常见SQL注入命令的操作。 二. 实验环境 渗透主机:KALI平台 用户名: college 密码: 360College 目标网…

JAVA麻将胡牌算法深度解析

目录 麻将的基本概念 麻将牌的构成 麻将的碰,杠,吃,听,胡 麻将胡牌条件 胡牌算法简介 选将拆分法 算法数据结构 构建数据结构 数据结构使用 牌花色的获取 获取某一花色的牌值 获取某一张牌相邻牌 算法代码实现 基础代…

Web3.0 应用开发:选择合适的框架和工具至关重要

随着 Web3.0 时代的到来,区块链技术的普及和应用让去中心化的应用开发变得更加可行。然而,要开发出高效、稳定和安全的 Web3.0 应用,选择合适的框架和工具至关重要。本文将介绍 Web3.0 应用开发的关键因素,帮助开发者做出明智的选…

Hive Metastore 表结构

Hive MetaStore 的ER 图如下。 部分表结构和说明。 CTLGS(CATALOGS) catalogs 可以隔离元数据。默认只有1行。一个 CATALOG 可以有多个数据库。 mysql> DESC CTLGS; -------------------------------------------------------- | Field | Type | Null |…

海康明眸设备SDK二次开发NET_DVR_SetupAlarmChan_V41老是报109错误

请仔细阅读图2中的文件,这里详细介绍了怎么样 放置DLL,务必按照图3中的说明步骤进行放置。HCNetSDKCom文件夹一定也要拷贝到debug目录,否则就会出现类似于109的错误提示。

NR 吞吐量测试

前言 参考文档: 5G NR TBS (Transport Block size) Calculator | 5G-Tools.com 5G NR Transport Block Size (TBS) Calculation - Techplayon 5G MCS _ 搜索结果_哔哩哔哩_Bilibili 4/5G无线资源和数据调度流程:CQI上报、基站AMC调度、调度信息DCI下发、CQI到MCS的对…

网联V2X视频事件检测相机使用说明书

1 产品概览 网联 V2X视频事件检测相机 视频事件检测相机 ,内置 1/1.8″逐行扫描 800万像素传感器;视 万像素传感器;视 频编码协议支持 H.265、H.264、MJPEG;具有 1个 10M/100M/1000M自适应以 太网 RJ45接口、 1路 RS485接口&#…

Windows基于WSL搭建Python数据分析环境

最近配置了一台较为不错的台式机,记录下自己配置环境的过程。 安装WSL,提供Linux环境 如果你发现后续的命令无法运行或者说软件商城中找不到,这可能意味着你的操作系统不符合要求。WSL安装要求 Windows 10 version 2004(Build 19…