【机器学习】机器学习学习笔记 - 数据预处理 - 01

machine learning

  • 监督学习: 是指在有标记的样本(labeled samples)上建立机器学习的模型
  • 无监督学习: 是指在没有标记的样本上建立机器学习的模型
  • semi-supervised learning: 是指在部分标记样本上建立机器学习的模型
  • 强化学习: 是指在与环境交互的过程中,根据环境反馈来调整策略,以达到目标
  • 强化学习算法: 是指在与环境交互的过程中,根据环境反馈来调整策略,以达到目标的算法

pdf在线免费转word文档 https://orcc.online/pdf

数据预处理

  • 行: 样本; 列:特征

均值移除(标准化)

  • 均值移除(标准化): 平均值调整为 0, 标准差调整为 1
  • 由于一个样本的不同特征值差异较大,不利于使用现有机器学习算法进行样本处理
代码
# -*- coding: UTF-8 -*-

import numpy as np
from sklearn import preprocessing

# 导入数据
data = np.array([[3,-1.5,2,-5.4],[0,4,-0.3,2.1],[1,3.3,-1.9,-4.3]])
print("data:\n", data)

# 数据预处理
data_standardized = preprocessing.scale(data)
print("preprocessing.scale:\n", data_standardized)
# 特征值的平均值, 几乎为0
print("Mean =", data_standardized.mean(axis=0))
# 标准差,都为1
print("Std deviation =", data_standardized.std(axis=0))

算法
均值为 0
a=17
b=20
c=23
# 计算均值
mean=(a+b+c)/3
# 例如有一列特征值表示年龄:[17,20,23]
mean=(17+20+23)/3=20
a1=17-20=-3
b1=20-20=0
c1=23-20=3
# 均值为0
方差为 1
a1=-3
b1=0
c1=3
s=std(a1,b1,c1)
result = [a1/s,b1/s,c1/s]

范围缩放

  • 数据点中每个特征的数值范围可能变化很大,因此,有时将特征的数值范围缩放到合理的大小是非常重要的
  • 特征缩放: 特征值缩放到 0~1 之间
代码
data_scaler = preprocessing.MinMaxScaler(feature_range=(0, 1))
data_scaled = data_scaler.fit_transform(data)
print("Min max scaled data =", data_scaled)

归一化

  • 归一化: 特征值缩放到 0~1 之间
  • 数据归一化用于需要对特征向量的值进行调整时,以保证每个特征向量的值都缩放到相同的数值范围。机器学习中最常用的归一化形式就是将特征向量调整为 L1 范数,使特征向量的数值之和为 1
  • 这个方法经常用于确保数据点没有因为特征的基本性质而产生较大差异,即确保数据处于同一数量级,提高不同特征数据的可比性
代码
data_scaler = preprocessing.normalizer(norm='l1').fit(data)
data_normalized = data_scaler.transform(data)
print("Normalized data =", data_normalized)

二值化

  • 二值化用于将数值特征向量转换为布尔类型向量
代码
data_binarized = preprocessing.Binarizer(threshold=1.4).transform(data)
print("Binarized data:\n", data_binarized)

独热编码

  • 独热编码是一种将离散型特征转换为二值型特征的技术,它将每个离散型特征的值转换为一个二值特征,并将其值设为 1,其他值设为 0
代码
encoder = preprocessing.OneHotEncoder()
encoder.fit([[0, 2, 1, 12], [1, 3, 5, 3], [2, 3, 2, 12], [1, 2, 4, 3]])
encoded_vector = encoder.transform([[2, 3, 5, 3]]).toarray()
print("Encoded vector =", encoded_vector)

标记编码

  • 标记编码: 给定一个类别,将其转换为一个整数
  • 标记编码的优点: 编码后的数据更加易于理解和处理
  • 标记编码的缺点: 编码后的数据不易于理解和处理
from sklearn import preprocessing

# 标记编码器
print("#"*10,"标记编码器", "#"*10)
label_encoder = preprocessing.LabelEncoder()
# 创建标记
input_classes = ['audi', 'ford', 'audi', 'toyota', 'ford', 'bmw']
# 标记编码
label_encoder.fit(input_classes)

for i, item in enumerate(label_encoder.classes_):
    print(item, "\t=>\t", i)

print("#"*10,"标记转数字", "#"*10)
labels = ['toyota', 'ford', 'audi']
encoded_labels = label_encoder.transform(labels)
print("Labels =", labels)
print("Encoded labels =", list(encoded_labels))

划分训练集与测试集

# 方法一,直接用包划分
from 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=7)

# 方法二,手工划分
# 划分训练集与测试集
X_train, X_test, y_train, y_test = X[0:100], X[100:], y[0:100], y[100:]

# 取80%的样本作为训练数据
num_training = int(0.8 * len(X))
num_test = len(X) - num_training

# 训练数据 80% reshape:(行数,列数)
# 行数:样本数
# 列数:特征数
X_train = np.array(X[:num_training]).reshape((num_training,1))
y_train = np.array(y[:num_training])

# 测试数据 20%
X_test = np.array(X[num_training:]).reshape((num_test,1))
y_test = np.array(y[num_training:])

IT免费在线工具网 https://orcc.online

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

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

相关文章

FPGA中按键程序设计示例

本文中使用Zynq 7000系列中的xc7z035ffg676-2器件的100MHz PL侧的外部差分时钟来检测外部按键是否按下,当按键被按下时,对应的灯会被点亮。当松开按键时,对应的灯会熄灭。 1、编写代码 新建工程,选用xc7z035ffg676-2器件。 点击…

递归——汉诺塔

汉诺塔 法国数学家爱德华卢卡斯曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金…

通过拖拽动态调整div的大小

最近遇到一个需求,页面展示两块内容,需要通过拖拽可以动态改变大小,如下图: 实现思路:其实就是改变div样式的width,本质上就是Dom操作。 完整代码:(基于vue2项目实践) …

23年新算法,SAO-SVM,基于SAO雪消融算法优化SVM支持向量机回归预测(多输入单输出)-附代码

SAO-SVM是一种基于SAO雪消融算法优化的支持向量机(SVM)回归预测方法,适用于多输入单输出的情况。下面是一个简要的概述,包括如何使用SAO-SVM进行回归预测的步骤: 步骤: 1. 数据准备: 收集并准…

API 自动化测试的实践与技巧

在软件开发的快速迭代过程中,及时准确地进行测试变得越来越重要。Apifox 作为一款先进的 API 接口管理和自动化测试平台,为测试人员提供了强大的工具来适应这种变化。以下是使用 Apifox 进行 自动化测试 的实际指南。 1. 接口管理与自动化测试设置 在 …

增强现实(AR)开发框架

增强现实(AR)开发框架为开发者提供了构建AR应用程序所需的基本工具和功能。它们通常包括3D引擎、场景图、输入系统、音频系统和网络功能。以下是一些流行的AR开发框架。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流…

证照之星是免费的吗?证照之星怎么使用?证照之星XE v7.0 免费版 证照之星版本区别

证件照是每个人都必须用到的,并且机构不同,对于证件照的规格也不同。为了提升我们的效率,我们会使用证照之星这类证件照编辑软件对证件照进行编辑,那么这种类型的证件照编辑软件应该如何使用,收费标准又是怎么样的呢&a…

C++中的运算符

一、算数运算符 1.1 加减乘除取模 #include <iostream> using namespace std;int main() {//加减乘除int a1 10;int b1 5;cout << "a1 b1 " << a1 b1 << endl;cout << "a1 - b1 " << a1 - b1 << endl;co…

安装zlmediakit和wvp-pro

通过docker安装zlmediakit&#xff0c;并单独启动wvp-pro.jar - zlmediakit安装 zlmediakit安装比较依赖环境和系统配置&#xff0c;所以这里直接使用docker的方式来安装。 docke pull拉取镜像 docker pull zlmediakit/zlmediakit:master使用下边命令先运行起来 sudo docke…

【深度学习实战(12)】训练之模型参数初始化

在深度学习模型的训练中&#xff0c;权重的初始值极为重要。一个好的初始值&#xff0c;会使模型收敛速度提高&#xff0c;使模型准确率更精确。一般情况下&#xff0c;我们不使用全0初始值训练网络。为了利于训练和减少收敛时间&#xff0c;我们需要对模型进行合理的初始化。 …

图文教程 | 2024年最新Typora激活使用教程合集

前言 汇总一下网上的三种方法。 &#x1f4e2;博客主页&#xff1a;程序源⠀-CSDN博客 &#x1f4e2;欢迎点赞&#x1f44d;收藏⭐留言&#x1f4dd;如有错误敬请指正&#xff01; 关于安装教程&#xff1a;http://t.csdnimg.cn/SCIQ8http://t.csdnimg.cn/SCIQ8自行跳转安装 一…

Ugee手写板Ex08 S在不同软件中的设置

手写笔的结构 功能对应于鼠标的作用笔尖鼠标左键上面第一个键鼠标右键&#xff08;效果有时候也不完全等同&#xff09;上面第二个键鼠标中键 以下测试的软件版本 软件版本windows10WPS2024春季16729Office2007SimpleTex0.2.5Ex08 S驱动版本4.2.4.231109 WPS-word ①点击审…

Zabbix 监控软件(一)

通常我们服务搭建成功 但不清楚服务器的运行状况&#xff0c;这时候就需要会使用监控系统查看服务器状态以及网站流量指标&#xff0c;利用监控系统的数据去了解上线发布的结果&#xff0c;和网站的健康状态。 利用一个优秀的监控软件&#xff0c;我们可以: ●通过一个友好的界…

互联网技术知识点总览——操作系统知识点框架图

简介 本文对操作系统的知识点整体框架进行梳理和分享如下&#xff1a;

智能生活新体验:小米香薰加湿器技术解码

在现代家居生活中&#xff0c;科技与舒适性日益交织&#xff0c;智能家居产品成为提升生活品质的重要工具。小米香薰加湿器作为一款集科技与生活美学于一体的产品&#xff0c;其独特的设计和多功能性受到了广泛欢迎。今天&#xff0c;我们就来详细拆解这款融合了科技与香薰元素…

如何搭建线下陪玩系统(本地伴游、多玩圈子)APP小程序H5多端前后端源码交付,支持二开!

一、卡顿的优化方法 1、对陪玩系统源码中流媒体传输的上行进行优化&#xff0c;通过提升推流端的设备性能配置、推流边缘CDN节点就近选择等方式解决音视频数据源流的卡顿。 2、对陪玩系统源码中音视频数据的下载链路进行优化&#xff0c;通过选择更近更优质的CDN边缘节点来减少…

OpenHarmony实战开发-如何实现发布图片评论功能。

介绍 本示例将通过发布图片评论场景&#xff0c;介绍如何使用startAbilityForResult接口拉起相机拍照&#xff0c;并获取相机返回的数据。 效果图预览 使用说明 通过startAbilityForResult接口拉起相机&#xff0c;拍照后获取图片地址。 实现思路 1.创建CommentData类&…

Docker Desktop打开一直转圈的解决办法

安装Docker Desktop之前确保你的Hyper-V已经打开 开启后需要重新安装重新安装重新安装这是最关键的一步&#xff0c;博主自己看了很多教程&#xff0c;最后试着重装了一下解决了 安装DockerDesktop的时候我的电脑根本就没有Hyper-V这个功能选项&#xff0c;可能是这个问题 如…

RLHF强化学习对其算法:PPO、DPO、ORPO

参考&#xff1a; https://blog.csdn.net/baoyan2015/article/details/135287298 https://cloud.tencent.com/developer/article/2409553 最新的llama3是PPO、DPO两种方法使用 人类反馈强化学习 (RLHF)&#xff0c;它利用人类偏好和指导来训练和改进机器学习模型&#xff1a; …

ColBERT和ColBERTv2:兼具Bi-encoder和cross-encoder优势的多向量排序模型

文章目录 简介ColBERTColBert 原理ColBERT如何训练ColBERT 如何使用离线索引用ColBERT 实现top-k Re-ranking用ColBERT 实现top-k 端到端的检索 ColBERTv2ColBERTv2原理SupervisionRepresentation IndexingRetrieval 总结参考资料 简介 ColBERT是一种多向量排序模型&#xff0…