【爬虫中的代理IP分类与应用】

文章目录 一、代理IP的分类1. 根据匿名度分类2. 根据代理协议分类3. 根据地理位置分类 二、代理IP的应用1. 数据采集与隐私保护2. 网站反爬虫绕过3. 地理位置限制绕过 三、如何获取代理IP 一、代理IP的分类 1. 根据匿名度分类 透明代理IP: 这种代理IP会将你的真实IP地址暴露给目标网站,目标网站可以轻松识别你的真实身份。透明代理主要用于缓存和记录网络请求,而不是保护用户的隐私。 匿名代理IP: 匿名代理IP会隐藏你的真实IP地址,但仍然会传递一些HTTP头信息,使得目标网站知道你在使用代理。这种代理适用于一些需要隐藏身份但不需要高度隐私的场合。 高匿代理IP: 高匿代理是最隐私的代理类型,它会完全隐藏你的真实IP地址和HTTP头信息,使得目标网站无法追踪你的身份。这种代理常用于需要高度隐私和安全性的任务。 2. 根据代理协议分类 HTTP代理IP: 这种代理IP只支持HTTP协议,适用于需要访问HTTP网站的任务。 HTTPS代理IP: 与HTTP代理类似,但支持HTTPS协议,更安全,适用于需要访问加密网站的任务。 SOCKS代理IP: SOCKS代理是一个通用的代理协议,支持多种应用程序和协议,包括HTTP和HTTPS。它在爬虫中常用于需要更高级别的代理功能的任务。 3. 根据地理位置分类 国内代理IP: 这些代理IP位于国内,访问国内网站速度更快,适用于需要抓取国内数据的任务。 国际代理IP: 这些代理IP位于国际,适用于需要抓取国际数据或绕过国内限制的任务。 二、代理IP的应用 1. 数据采集与隐私保护 如果需要采集一些敏感数据或频繁访问目标网站,可以选择使用高匿代理IP,以保护你的隐私和稳定性。这种代理在隐私要求高的情况下非常有用。 2. 网站反爬虫绕过 有些网站会采取反爬虫措施,封禁频繁请求的IP地址。使用多个透明代理IP可以绕过这些限制,让爬虫能够持续工作。 3. 地理位置限制绕过 如果需要访问国际网站或绕过地理位置限制,可以选择使用国际代理IP,以模拟在其他地区的访问。 三、如何获取代理IP 获取代理IP的方式多种多样,包括购买、免费获取、搭建自己的代理服务器等。在选择代理IP提供商时,需要注意其稳定性、匿名度和速度等因素。

2.MySQL中的数据类型

整数类型: tinyint(m): 1个字节 范围(-128~127) 常用:性别 0和1表示性别;状态 0和1表示 int(m): 4个字节 范围(-2147483648~2147483647) 常用:数值 数值类型中的长度m是值显示长度,只有字段指定zerofill时有用 例如:int(3),如果实际值是2,如果列指定了zerofill,查询结果就是002,左边用0来填充 代码实例: -- 创建表 CREATE TABLE my_table ( my_column INT(3) ZEROFILL ); ​ -- 插入数据 INSERT INTO my_table (my_column) VALUES (2); ​ -- 查询数据 SELECT my_column FROM my_table; 浮点类型: float(m,d): 单精度浮点型 8位精度(4字节)m总个数,d小数位 double(m,d): 双精度浮点型 16位精度(8字节)m总个数,d小数位 例如: 5.20 m为3,d为2 字符类型: char(n): 固定长度,最多255个字节;适用:身份证号码、手机号等; 例如:char(5),存入了5,则数据库存储为: 5(用空格补); tinytext: 可变长度,最多255个字符; varchar(n): 可变长度,最多65535个字符;适用在长度可变的属性; text: 可变长度,最多65535个字符;适用与当不知道属性的最大长度时; medlumtext: 可变长度,最多2的24次方-1个字符; longtext:可变长度,最多2的32次方-1个字符; 日期类型: date: 日期 YYYY-MM-DD(年月日) time: 时间 HH:MM:SS(时分秒)

探索性数据分析(EDA)的数据可视化 | 附代码

数据可视化是探索性数据分析的重要组成部分,因为它有助于分析和可视化数据,以获得对数据分布、变量之间的关系和潜在异常值的启示性见解。Python具有丰富的库,可以快速高效地创建可视化。在Python中,通常使用以下几种类型的可视化进行探索性数据分析: 柱状图:用于显示不同类别之间的比较。 折线图:用于显示随时间或不同类别的趋势。 饼图:用于显示不同类别的比例或百分比。 直方图:用于显示单个变量的分布。 热图:用于显示不同变量之间的相关性。 散点图:用于显示两个连续变量之间的关系。 箱线图:用于显示变量的分布并识别异常值。 使用Python创建数据可视化的步骤: 理解业务问题:这是第一步,非常重要,因为我们将能够专注于获取正确的可视化。 导入必要的库:导入必要的库,例如Pandas、Seaborn、Matplotlib、Plotly等。 加载数据集:加载要可视化的数据集。 数据清理和预处理:清理和预处理数据,删除缺失值、重复值和异常值。此外,将分类数据转换为数值数据。 统计摘要:计算描述性统计量,例如均值、中位数、众数、标准差和相关系数,以了解变量之间的关系。 数据可视化与解释:创建可视化图表以了解数据的分布、关系和模式。之后解释可视化结果,从中获得关于数据的启示性见解和结论。 1. 理解业务问题 心血管疾病是全球死亡的主要原因。根据世界卫生组织的数据,每年约有1,790万人死于心脏病。其中85%的死亡是由心脏病发作和中风引起的。在本文中,我们将探索来自Kaggle的心脏病数据集,并使用Python创建用于探索性数据分析的数据可视化。 该数据集包含有关患者的数据,包括年龄、性别、血压、胆固醇水平以及是否患有心脏病发作等各种变量。该数据集的目标是根据患者的医疗属性预测其是否有心脏病发作的风险。 2.导入必要的库 # import libraries import pandas as pd import numpy as np # data visualization import matplotlib.pyplot as plt import seaborn as sns import plotly.express as px import plotly.graph_objects as go from plotly.subplots import make_subplots 3. 加载数据集 让我们将数据加载到一个Pandas DataFrame中,并开始探索它。 heart = pd.read_csv('heart.csv') 现在我们已经加载了数据,让我们看一下DataFrame的前几行,以了解数据的大致情况。 heart.head() 我们可以看到数据集包含14列,包括目标列(输出),该列指示患者是否患有心脏病发作。现在让我们开始创建可视化图表。 4. 数据清理和预处理 数据清理的目的是准备好我们的数据进行分析和可视化。 # 检查是否存在任何空值 heart.

Verovio简介及在Windows10和Ubuntu 22.04上编译过程

Verovio是一个快速、便携、轻量级的开源库,用于将音乐编码倡议(Music Encoding Initiative(MEI))数字乐谱雕刻到SVG图像中。Verovio还包含即时转换器(on-the-fly converters)用于渲染Plaine & Easie Code、Humdrum、Musedata、MusicXML、EsAC和ABC数字乐谱。源代码地址:https://github.com/rism-digital/verovio,最新发布版本为Version 4.1.0,采用C++17标准编写,而最新的开发分支采用C++20标准编写。它的license为LGPLv3。Verovio已被多个项目或机构采用。 Verovio是以荷兰音乐雕刻家西蒙娜·维罗维奥(Simone Verovio)的名字命名的。Verovio由RISM(Répertoire International des Sources Musicales)数字中心在瑞士国家科学基金会(Swiss National Science Foundation)的支持下开发。该项目得到了数字莫扎特版(Digital Mozart Edition)的专门财政支持,这是萨尔茨堡莫扎特基金会和加利福尼亚州洛斯阿尔托斯帕卡德人文学院的联合项目。 Verovio适用于台式电脑,也适用于平板电脑和移动设备。Verovio还为其他乐谱格式提供基本支持,例如MusicXML导入和MIDI输出。 Verovio设计为可在广泛的技术环境(C++、JavaScript、Python)中使用。Verovio可以编译为独立的命令行工具、也可以用作应用程序(Qt、Python)的已编译音乐渲染库、或也可以使用Emscripten LLVM-to-JavaScript编译器将Verovio编译为Javascript。 Verovio使用标准音乐字体布局(Standard Music Font Layout(SMuFL))规范,并且可以更改字体以个性化输出。 Verovio和libmei版本: (1).从Verovio 2.x.x开始,计划为使用MEI稳定版本的Verovio版本提供偶数版本号,为使用MEI开发版本的版本提供奇数版本号。这意味着一旦 MEI 5.0发布,Verovio将转向版本4.x.x。较新版本的Verovio仍支持较旧版本的MEI。 (2).Verovio 4.0已发布,这是基于MEI 5.0的第一个版本,是该项目的一个重要里程碑。MEI 5.0仍将是Verovio 4.x其他版本的基础。与往常一样,此版本包含各种改进。 (3).Verovio 4.0的发布遵循自Verovio 2.0以来采用的发布方案,即偶数版本号表示Verovio版本仅实现MEI稳定版本中提供的功能,奇数版本号表示基于MEI开发版本的版本。当MEI社区将转向MEI 6.0的开发,并且一些新的MEI功能将在仍处于MEI开发阶段的情况下实现到Verovio中时,Verovio将转向5.0。 libmei源码地址:https://github.com/music-encoding/music-encoding Verovio在Windows10上的编译: 1.从clone源码,并切换到4.1.0版本,执行如下命令: git clone https://github.com/rism-digital/verovio git checkout version-4.1.0 2.为了可以正常编译过,在Windows上需要临时修改些文件,如src/harm.cpp; 3.用管理员权限打开x64 Native Tools Command Prompt for VS2022,编译64位release可执行文件,并将其定位到Verovio源码的tools目录下,依次执行如下命令: cmake -DCMAKE_INSTALL_PREFIX=../install ../cmake -G "NMake Makefiles" nmake nmake install 4.将cmd定位到生成的install/bin目录下,打印verovio可执行文件的使用说明,执行结果如下图所示: Verovio在Ubuntu 22.04上的编译:

UE5.2 SmartObject使用实践

SmartObject是UE5新出的一项针对AI的功能,可为开发者提供如公园长椅、货摊等交互对象的统一外观封装,如UE的CitySample(黑客帝国Demo)中就运用到了SmartObject。 但SmartObject实践起来较为繁琐,主要依赖于AI及行为树,并且在UE5.3中这个模块更换了Claim接口,使其无法在纯蓝图配置中跑起来,因此本文将用一个简化的案例并配合UE5.2版本演示该模块使用。 1.SmartObject配置 (1)首先打开插件SmartObject、GameplayBehaviorSmartObjects: (2)右键可创建SmartObjects的定义: (3)添加一个Slot并设置Behavior Definitions: 这个设置类似于给公园长椅设定座位位置,该位置可以是大概位置,因为具体逻辑可以在触发时进行处理。 Behavior Definitions的参数必须填写,目前是强绑定关系。 (4)新建空Actor蓝图,添加SmartObject组件并设置刚刚配置的资产。 (5)将该Actor放置于场景任意位置。 2.AI配置 接下来需要配置一个简单的AI角色,以触发SmartObject。 AI角色以及行为树的创建请看这篇文章: https://blog.csdn.net/grayrail/article/details/130389966 (1)配置好后,创建如下3个对象,其中行为树可以先不急着创建具体节点: (2)打开行为树,创建一个AI Task用于处理SmartObject的查找和触发: (3)重写节点Receive Execute AI,编写AI Task执行逻辑: 上述逻辑通过节点Find Smart Objects查找场景中2000左右范围的SmartObjects对象,并返回为数组。 (4)继续编写Branch右侧逻辑: 这里通过关键节点Claim预定该SmartObject的使用,防止别的使用者也查找到该SmartObject。通过Claim Handle可以拿到该Slot进行下一步处理,例如这里就将AI位置设置给了Slot。 网上教程用节点Use Claimed Gameplay Behavior Smart Object比较多,该节点可以调用AI移动至目标点,然后触发Behavior,但需要布置寻路网格比较麻烦,因此这里直接设置位置表示触发完成。 (5)最后,使用完Claim Handle后,调用Release接口,释放占用:

Excel 一列数据转换为多行数据

目录 一. 需求二. 填充 + 替换 进行转换 一. 需求 ⏹有如下图所示的数据,现在要求按每5行为一组,转换为一行 二. 填充 + 替换 进行转换 先手动将一列中的1到5行的单元格号转换为一行再手动将一列中的6到10行的单元格号转换为一行然后填充最后使用替换功能,将单元格号,替换为=单元格号,完成转换

360开机广告弹框右下角弹框仅允许临时关闭永久关闭

因为安装了360 安全卫士,导致右下角总是有很多应用程序在弹出广告,烦死人。 在 任务管理器 --进程 --打开文件所在位置 试图删除这些应用程序,竟然被保护了,不让删除! 气人! 怎么办? 进入安全模式进行删除: Win+R 输入 msconfig --引导选项卡 --勾选 安全引导–重启电脑 重启过程中,按F8,进入 安全模式,对 此前的弹窗应用程序进行删除。 Tips1: 文件被定位到了比如: c:\users\***\AppData\Roaming\360safe\SoftMgr 目录下,但是你从任务管理器进去时,却发现没有这个文件夹,神奇了。 这是因为文件夹对系统文件进行了隐藏 找到文件夹查看相关的菜单,对隐藏文件进行解隐藏即可。 Tips2: 360的比如 360Newsld(新闻)、360DayPop(每日要闻)、360speedld(开机小助手) 不仅需要在 c:\users\***\AppData\Roaming\360safe\SoftMgr 下进行删除,在: c:\Program Files\360\360Safe\SoftMgr 目录下也需要同步删除 我试过只删除某一个目录下的,看上去,开机后,程序还是能起来。不是太明白为什么360 这么厉害。 当然,这段话,我还需要再花时间再实践再验证。 Tips3: 进入安全模式后,想要重启后退出安全模式 用进入安全模式的逆操作: win+r --msconfig–引导–去掉 安全引导 复选框 再次开机后,就没有那么多弹窗啦~~ 开心极了~ ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文为:Partner2016博主所写,本人只是转载使用,谢谢! 原文链接:https://blog.csdn.net/Partner2016/article/details/109603712

华为OD机考-C卷

文章目录 攀登者问题停车场最短路径 攀登者问题 24/03/09 20:50~23:10 攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素0代表地面。一个山脉可能有多座山峰(高度大于相邻位置的高度,或在地图边界且高度大于相邻的高度)。登山者想要知道一张地图中有多少座山峰。 例如[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0], 代表如下图所示的地图,地图中有两个山脉位置分别为 1,2,3,4,5和8,9,10,11,12,13,最高峰高度分别为 4,3。最高峰位置分别为3,10。 一个山脉可能有多座山峰(高度大于相邻位置的高度,或在地图边界且高度大于相邻的高度)。 /** * 返回地图中山峰的数量 * * @param hill_map int整型一维数组 地图数组(长度大于1) * @return int整型 */ public int count_peaks(int[] hill_map) { // write code here 双指针 int result = 0; if (hill_map.length == 0) { return result; } else if (hill_map.length == 1) { return 1; } for (int i = 0; i < hill_map.length; i++) { if (i > 0 && i < hill_map.

如何在Windows系统使用固定tcp公网地址ssh远程Kali系统

文章目录 1. 启动kali ssh 服务2. kali 安装cpolar 内网穿透3. 配置kali ssh公网地址4. 远程连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 简单几步通过[cpolar 内网穿透](cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站)软件实现ssh 远程连接kali! 1. 启动kali ssh 服务 默认新安装的kali系统会关闭ssh 连接服务,我们通过命令打开: #启动ssh服务 sudo systemctl start ssh #查看ssh 服务状态 sudo systemctl status ssh #加入开机启动 sudo systemctl enable ssh 启动后我们查看ssh 状态,active 表示ssh 正常运行 通常ssh 是使用账号或者密码进行登录连接,所以还需要开启密码验证,编辑ssh配置文件: sudo vim /etc/ssh/sshd_config 把如下两个参数解除注释,值改为yes 修改完成后保存文件,重启ssh 服务即可 sudo systemctl restart ssh 2. kali 安装cpolar 内网穿透 kali 是基于Linux 的系统,可以使用cpolar Linux 安装方式一键快捷安装,在kali的命令界面,我们输入下面指令,如首次使用,可以在下方官网链接中注册账号!

retrofit2中,响应参数的int类型会被转为double小数点的解决办法。

背景 retrofit2版本:2.3.0 我使用retrofit2作为接口请求框架。 但是我发现在响应时,解析的响应内容总会有问题。 例如: {"msg":"","code":0.0,"data":"123"} 其中的"code"应该是0,而不应该是0.0 原因 经过百度,发现是retrofit2将gson(2.8.6版本)作为类型转换器导致的。 而如果使用 Gson 作为进行数据序列化和反序列化的转化器, Gson 在解析 JSON 数据时,对于整型数据,Gson 默认将其转换为浮点数(小数点形式)。 解决 我一开始尝试了修改gson的类型转换规则,但是发现网上给出的方案并不适用。 于是直接修改了retrofit2的转换器,这里我选择的是retrofit2自带的转换器Retrofit2ConverterFactory。 代码如下: public Retrofit retrofit() { Retrofit.Builder builder = new Retrofit.Builder(); builder.client(this.client); builder.addConverterFactory(ScalarsConverterFactory.create()); // 不使用GsonConverterFactory,改为使用Retrofit2ConverterFactory //builder.addConverterFactory(GsonConverterFactory.create()); builder.addConverterFactory(Retrofit2ConverterFactory.create()); builder.addCallAdapterFactory(RxJavaCallAdapterFactory.create()); builder.baseUrl(this.config.getDomain()); return builder.build(); 完后再请求,发现响应内容正常: {"code":0,"msg":"","data":"123"}

Spring MVC | Spring MVC 的“核心类” 和 “注解”

目录: Spring MVC 的“核心类” 和 “注解” :1.DispatcherServlet (前端控制器)2.@Controller 注解3.RequestMapping 注解3.1 @RequestMapping 注解的 “使用”标注在 “方法” 上标注在 “类” 上 3.2 @RequestMapping 注解的 “属性” 4.组合注解4.1 请求处理方法的 “参数类型” 和 “返回值类型”请求处理方法中的 “参数类型”请求处理方法的 “返回值类型”通过返回值“String类型”进行 “重定向”通过返回值“String类型”进行 “请求forward转发” 5.ViewResolver(视图解析器) Spring MVC 的“核心类” 和 “注解” : 在 Spring 2.5之前,只能使用实现Controller接口的方式来开发一个控制器,“SpringMVC的入门” 中例子的就是使用的此种方式。在 Spring 2.5之后,新增加了基于注解的控制器以及其他一些 常用注解 (即Spring2.5之后,可以通过注解来操作Spring),这些注解的使用极大地减少了程序员的开发工作。 1.DispatcherServlet (前端控制器) DispatcherServlet 的全名是 org.springframework.web.servlet.DispatcherServlet,它在程序中充当着 前端控制器 的角色。 在使用时,只需将其配置在项目的web.xml 文件 中。(在web.xml中配置 “前端控制器”) 在 web.xml 中 配置 DispatcherServlet (前端控制器) 的配置代码如下 : <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="

HTML 学习笔记(九)颜色值和长度单位

一、颜色 1.通过RGB值来设置颜色 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>table</title> </head> <body> <-- 内联CSS --> <table width="300"> <tr style="background-color:rgb(255, 0, 0);"> <th>红色</th> </tr> <tr style="background-color:rgb(0, 255, 0);"> <th>绿色</th> </tr> <tr style="background-color:rgb(0, 0, 255);"> <th>蓝色</th> </tr> </table> </html> 2.通过颜色名称来设置颜色 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>table</title> </head> <body> <h2>2.颜色名称</h2> <table width="300"> <tr bgcolor="red"> <th>红色</th> </tr> <tr bgcolor="green"> <th>绿色</th> </tr> <tr bgcolor="blue"> <th>蓝色</th> </tr> </table> </html> 3.

【决策树】预测用户用电量

决策树预测用户用电量 文章目录 决策树预测用户用电量 👉引言💎一、 数据预处理数据预处理初步数据分析 二、 机器学习算法决策树回归预测用电量决策树模型介绍:回归预测 三、 可视化结果四、 数据分析与结论代码如下 👉引言💎 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。 热爱写作,愿意让自己成为更好的人… … 铭记于心🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉 一、 数据预处理 数据预处理 通过pandas的read_csv()方法将表格数据读入到内存中,同时对原始数据进行统计分析,发现有许多缺失数据,首先进行数据预处理。 对原始数据使用pandas库DataFrame类的groupby()以及apply()方法进行分组聚合,以用户为关键点进行分组,可以得到每个用户的各方面用电数据,随后对缺失数据以及对应的用电属性进行统计并可视化,舍弃有效数据少的属性,保留剩余的属性进行进一步分析。 部分属性图分布趋势如下 x轴表示用电属性,y轴表示具备该数据的用户数量,将中点线绘制到图中进行对比分析,从中取出有效用户数据超过用户量一半的属性进行下一步分析 通过数据处理得到不同属性情况下用户用电数据的有效数量(即多少位用户在具备该属性下的时段数据),同时进行倒序排序,。由此可得前五项(由于leg1v与leg2v的属性意义对用电量预测关系不大,故舍去) 故选取kitchenapp1,grid, drye1,以及clotheswasher1 对数据较全的用户进行相关分析 初步数据分析 由于数据量比较大,取出一个用户的数据进行相关性分析,首先取出第一个用户,也就是编号为25的用户的用电数据进行回归预测,其用电数据主要是grid以及kitchenapp1,drye1,clotheswasher1 。 数据意义解释: grid:每个时间段仪表数据目前测量从电网或馈电到电网的功率 。 kitchenapp1:第一厨房小家电电路仪表数据呈现。这种类型的电路只包括厨房里的壁式插座,因此可能包括烤面包机、咖啡机、搅拌机等。 drye1:电动干衣机(240V电路)仪表数据呈现 clotheswasher1:单机洗衣机仪表数据呈现 分别数据可视化为折线图与热力图如下: 由上图相关性分析可得,drye1 的影响比其他因素更大 二、 机器学习算法 决策树回归预测用电量 决策树模型介绍: 决策树(Decision Tree)及其变种是另一类将输入空间分成不同的区域,每个区域有独立参数的算法。决策树分类算法是一种基于实例的归纳学习方法,它能从给定的无序的训练样本中,提炼出树型的分类模型。树中的每个非叶子节点记录了使用哪个特征来进行类别的判断,每个叶子节点则代表了最后判断的类别。根节点到每个叶子节点均形成一条分类的路径规则。而对新的样本进行测试时,只需要从根节点开始,在每个分支节点进行测试,沿着相应的分支递归地进入子树再测试,一直到达叶子节点,该叶子节点所代表的类别即是当前测试样本的预测类别。 机器学习中,决策树是一个预测模型。它代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分支叉路径则代表某个可能的属性值,而每个叶节点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。从数据产生决策树的机器学习技术叫做决策树学习,通俗说就是决策树。 回归预测 接下里通过构建决策树回归模型预测用户的时段用电量,这里使用python的sklearn机器学习库进行相关的分析 sklearn是机器学习中一个常用的python第三方模块,里面对一些常用的机器学习方法进行了封装,比如SVM、KNN、贝叶斯、线性回归、逻辑回归、决策树、随机森林、xgboost、GBDT、boosting、神经网络NN;statsmodels 用于拟合多种统计模型,比如方差分析、ARIMA、线性回归等,执行统计测试以及数据探索和可视化。 在本次模型构建过程中主要使用的相关的库版本为: python版本为3.9 numpy版本为 1.23.4 matplotlib版本为3.5.3 pandas版本为 1.5.1 sklearn版本为:0.0 运用sklearn.model_selection的train_test_split进行数据集划分,也可以用k折交叉验证(KFold) 在使用sklearn对数据集进行划分后,得到训练集与测试集,自变量即grid列的数据,表示用户在不同时间段的用电量,同时将其他三个变量设置为自变量,得到训练集与测试集的统计描述 进行初步的训练与评估后得到特征重要性,并可视化如下所示 三、 可视化结果 可视化结果及相关分析在上文 四、 数据分析与结论 通过决策树回归得到, 电动干衣机(240V电路)的使用对Y时段用户用电量影响最大,其重要性系数为0.6396,远高于其他因素,与相关系数分析结果一致 随后分别以训练集以及验证集展开对决策树模型的评估 发现评估效果良好

spring boot 2.4.x 之前版本(对应spring-cloud-openfeign 3.0.0之前版本)feign请求异常逻辑

目录 feign SynchronousMethodHandler 第一部分 第二部分 第三部分 spring-cloud-openfeign LoadBalancerFeignClient ribbon AbstractLoadBalancerAwareClient 在之前写的文章配置基础上 https://blog.csdn.net/zlpzlpzyd/article/details/136060312 因为从 spring boot 2.4.x 版本开始,匹配的 spring cloud 版本中去除了负载均衡组件 ribbon,可以看本人写的如下链接 https://blog.csdn.net/zlpzlpzyd/article/details/135696320 如果一定要使用 ribbon 相关功能,需要单独指定版本引入,spring 官方为了 ribbon 被移除的问题,自己开发了 spring-cloud-starter-loadbalancer。 feign设置参数如下 feign: client: config: default: connectTimeout: 1000 readTimeout: 1000 服务提供者逻辑 @RestController @RequestMapping(value = "user") public class UserController implements Serializable { @GetMapping(value = "{id}") public User getUser(@PathVariable(value = "id") String id) { // int no = 1/0; try { TimeUnit.SECONDS.sleep(5); } catch (InterruptedException e) { throw new RuntimeException(e); } User user = new User(); user.

用Java Socket手撸了一个HTTP服务器

作为一个 Java 后端,提供 HTTP 服务可以说是基本技能之一了,但是你真的了解 HTTP 协议么?你知道知道如何手撸一个 HTTP 服务器么?Tomcat 的底层是怎么支持 HTTP 服务的呢?大名鼎鼎的 Servlet 又是什么东西呢,该怎么使用呢? 在初学 Java 时,Socket 编程是逃不掉的一章;虽然在实际业务项目中,使用这个的可能性基本为 0, 但并不意味着不用学。本篇将主要介绍如何使用 Socket 来实现一个简单的 HTTP 服务器,提供常见的 get/post 请求支持,并在此过程中了解下 HTTP 协议。 I. HTTP 服务器从 0 到 1 既然我们的目标是借助 Socket 来搭建 HTTP 服务器,那么我们首先需要确认两点,一是如何使用 Socket;另一个则是 HTTP 协议如何解析数据;下面分别进行说明。 1. Socket 编程基础 我们这里主要是利用 ServerSocket 来绑定端口,提供 TCP 服务,基本使用姿势也比较简单,一般套路如下 创建 ServerSocket 对象,绑定监听端口通过 accept() 方法监听客户端请求连接建立后,通过输入流读取客户端发送的请求信息通过输出流向客户端发送响应信息关闭相关资源 对应的伪代码如下: ServerSocket serverSocket = new ServerSocket(port, ip) serverSocket.accept(); // 接收请求数据 socket.getInputStream(); // 返回数据给请求方 out = socket.

Dutree:Linux 文件系统磁盘使用追踪工具

在 Linux 系统中,对文件系统的磁盘使用情况进行跟踪和管理是至关重要的。dutree 是一个功能强大的工具,它能够以可视化的方式展示文件系统中的目录和文件的大小,帮助用户更好地了解磁盘空间的使用情况。本文将介绍 dutree 工具的使用方法、功能特性以及示例代码,并给出示例代码对应的结果展示,帮助更好地利用这一工具来管理 Linux 系统中的文件系统。 Dutree 简介 dutree 是一个基于命令行的工具,用于以树状图形式显示目录结构和文件大小。它将文件系统中的目录和文件按照大小进行排序,并以直观的方式展示给用户,帮助用户快速定位磁盘空间占用较大的目录和文件,从而更好地进行磁盘空间管理。 安装 Dutree 在大多数 Linux 发行版中,可以使用包管理器来安装 dutree。 例如,在 Ubuntu 和 Debian 系统中,可以使用以下命令安装: sudo apt-get update sudo apt-get install dutree 如果使用的是其他发行版,可以根据其包管理器进行安装。 使用示例 基本用法 要使用 dutree,只需在终端中键入 dutree 命令,然后按 Enter 键即可。dutree 将会扫描当前目录及其子目录,并以树状图形式展示目录和文件的大小。 dutree 结果展示: /home/user ├── Documents 15.5 GB │ ├── Work 8.2 GB │ ├── Projects 5.3 GB │ └── Reports 2.0 GB ├── Downloads 20.1 GB ├── Pictures 10.2 GB └── Videos 30.

Linux Shell:local关键字

Linux Shell:local关键字 在 Bash 中,local 是一个用于声明局部变量的关键字。当在函数内部使用 local 声明变量时,该变量只能在函数内部使用,并且不会对函数外部的同名变量产生影响。这样可以确保在函数内部定义的变量不会意外地覆盖全局变量或其他函数中的变量。 使用示例 以下是一个简单的示例,演示了如何在函数中使用 local 关键字: #!/bin/bash # 定义一个全局变量 global_var="全局变量" # 定义一个函数 example_function() { # 声明一个局部变量 local local_var="局部变量" echo "在函数内部访问局部变量:$local_var" echo "在函数内部访问全局变量:$global_var" } # 调用函数 example_function # 尝试在函数外部访问局部变量(会报错) # echo "在函数外部访问局部变量:$local_var" 在上面的例子中,local_var 是一个局部变量,只能在 example_function 函数内部使用。而 global_var 是一个全局变量,可以在函数外部访问。

HTML 学习笔记(八)表格

一、表格 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <!-- 表格本体 --> <!-- 可以通过在table中加入多个tr和td实现多行多列 --> <!-- 一般来说每个table中的每个tr中所包含的td的个数应该是相等的 --> <table> <!-- 表格行 --> <!-- 不要在table和tr中包裹其他标签,需要的话可将其加入td标签中 --> <tr> <!-- 表格数据单元 --> <td></td> <td></td> </tr> </table> </body> </html> 1.创建一个表格实例: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>table</title> </head> <body> <!-- 实例 table>tr*4>td*5 --> <h2><i><strong>1.实例 table>tr*4>td*5:</strong></i></h2> <table> <tr> <td>数量</td> <td>位置</td> <td>试剂名称</td> <td>保存条件</td> <td>CAS号/货号</td> </tr> <tr> <td>1</td> <td>R1</td> <td>L-谷胱甘肽(还原型)</td> <td>2-8<sup>o</sup>C</td> <td>70-18-8</td> </tr> <tr> <td>2</td> <td>R3</td> <td>硼氢化钠</td> <td>不超过30℃,防光直射,与氧化剂、氟、氯酸等分开</td> <td>16940-66-2\452882-100G</td> </tr> <tr> <td>2</td> <td>C2</td> <td>硫辛酸</td> <td>密封冷藏</td> <td>1077-28-7 \T5625-25G</td> </tr> </table> </body> </html> 2.

pytorch升级打怪(三)

数据集合数据加载器 简介加载数据集迭代和可视化数据集为您的文件创建自定义数据集```__init__``````__len__``````__getitem__``` 准备您的数据以使用DataLoaders进行训练通过DataLoader进行遍载 简介 处理数据样本的代码可能会变得混乱且难以维护;理想情况下,我们希望我们的数据集代码与模型训练代码解耦,以提高可读性和模块化。PyTorch提供了两个数据原语:torch.utils.data.DataLoader和torch.utils.data.Dataset,允许您使用预加载的数据集以及您自己的数据。Dataset存储样本及其相应的标签,DataLoader在Dataset周围包装一个可以可以方便地访问样本。 PyTorch域库提供一些预加载的数据集(如FashionMNIST),该子类为torch.utils.data.Dataset,并实现特定于特定数据的功能。它们可用于原型和基准测试您的模型。您可以在这里找到它们:图像数据集、文本数据集和音频数据集 加载数据集 以下是如何从TorchVision加载Fashion-MNIST数据集的示例。Fashion-MNIST是Zalando文章图像的数据集,包括60,000个训练示例和10,000个测试示例。每个示例都包括一个28×28的灰度图像和来自10个班级之一的相关标签。 我们用以下参数加载FashionMNIST数据集: root是存储火车/测试数据的路径,train指定训练或测试数据集,download=True如果root上没有数据,则从互联网上下载数据。transform和target_transform指定功能和标签转换 import torch from torch.utils.data import Dataset from torchvision import datasets from torchvision.transforms import ToTensor import matplotlib.pyplot as plt training_data = datasets.FashionMNIST( root="data", train=True, download=True, transform=ToTensor() ) test_data = datasets.FashionMNIST( root="data", train=False, download=True, transform=ToTensor() ) Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz to data/FashionMNIST/raw/train-images-idx3-ubyte.gz 0%| | 0/26421880 [00:00<?, ?it/s] 0%| | 65536/26421880 [00:00<01:12, 363720.69it/s] 1%| | 229376/26421880 [00:00<00:38, 682917.83it/s] 3%|3 | 917504/26421880 [00:00<00:12, 2109774.

数字孪生10个技术栈:数据传输的四个问题

大家好,我是贝格前端工场,上期讲了数据采集的八个方式,数据采集之后就要进行数据的处理,本期继续分享,大家如有数字孪生或者数据可视化的需求,可以联络我们。 一、什么是数据处理 在数字孪生中,数据处理是指对采集到的实时或历史数据进行整理、清洗、分析和转化的过程。数据处理是数字孪生的基础,它将原始数据转化为有意义的信息,用于模型构建、仿真和决策支持。 数据处理是为了提高数据质量、整合数据、转换数据、分析数据、展示数据和支持决策等目的而进行的重要步骤。通过数据处理,可以使原始数据更具有可用性和可解释性,为后续的数据分析和应用提供可靠的基础。 二、数据处理的六步骤 数据处理在数字孪生中扮演着重要的角色,它包括以下几个方面: 数据清洗 对采集到的数据进行清洗和预处理,包括去除噪声、填补缺失值、处理异常值等。清洗后的数据更加准确和可靠,有利于后续的分析和建模。 数据集成 将来自不同数据源的数据进行整合和融合,以便于综合分析和建模。数据集成可以涉及数据的转换、映射、合并等操作,确保数据的一致性和完整性。 数据分析 对处理后的数据进行统计分析、机器学习、数据挖掘等方法,提取数据的特征、规律和模式。数据分析可以帮助发现数据背后的隐藏信息和洞察,为数字孪生的建模和仿真提供支持。 数据转化 将分析得到的数据转化为数字孪生模型所需的输入参数或状态变量。这可以包括将数据映射到模型的参数空间、转化为合适的数据格式、进行数据归一化等操作。 数据存储和管理 将处理后的数据进行存储和管理,以便于后续的访问、查询和使用。数据存储可以使用数据库、数据仓库、云存储等技术,确保数据的安全性和可靠性。 数据可视化 将分析得到的数据以可视化的方式呈现,如图表、图形、地图等。数据可视化可以帮助人们更好地理解和解释数据,从中获取洞察和决策支持。 三、数据处理的注意事项 在进行数据处理时,有一些注意事项可以帮助确保数据的准确性和一致性,以及提高数据处理的效率和质量。以下是一些常见的注意事项: 数据质量:在进行数据处理之前,需要对数据进行质量检查和清洗。这包括检查数据的完整性、准确性、一致性和合法性,并处理缺失值、重复值和异常值等问题。数据安全:在处理敏感数据时,需要确保数据的安全性和隐私保护。采取适当的安全措施,如数据加密、访问控制和身份验证,以防止未经授权的访问和数据泄露。数据集成:在数据集成过程中,需要确保不同数据源的数据能够正确地整合和融合。这可能涉及到数据转换、映射和合并等操作,需要仔细考虑数据的结构、格式和语义,以避免数据集成错误和不一致性。 数据处理流程:在进行数据处理时,需要建立清晰的数据处理流程和规范。这包括定义数据处理的步骤、方法和工具,以及记录和文档化数据处理的过程和结果。这有助于保持数据处理的一致性和可追溯性。数据备份和恢复:在进行数据处理之前,需要制定数据备份和恢复策略。这包括定期备份数据,以防止数据丢失或损坏,并确保能够快速恢复数据,以便在需要时进行回滚或恢复操作。数据保留和合规性:在进行数据处理时,需要遵守相关的法律法规和行业规定,如数据保护法、隐私法和数据安全标准等。确保数据的合规性和合法性,同时遵循数据保留和销毁的规定。 数据验证和验证:在完成数据处理之后,需要对处理后的数据进行验证和验证。这包括对数据进行统计分析、模型评估和可视化,以确保处理结果的准确性和可靠性。 综上所述,数据处理需要综合考虑数据质量、安全性、一致性、流程、备份、合规性等方面的注意事项。通过遵循这些注意事项,可以提高数据处理的效率和质量,并确保数据的可靠性和可用性。 四、数据处理常用工具软件 在数据处理的过程中,可以使用各种技术和软件来完成不同的任务。以下是一些常用的技术和软件: 数据清洗和预处理:在数据清洗和预处理阶段,可以使用Python编程语言中的库和工具,如Pandas、NumPy和Scikit-learn。这些库提供了各种功能,如数据清洗、缺失值处理、异常值检测和处理等。数据集成:数据集成涉及到将来自不同数据源的数据整合在一起。在这个过程中,可以使用ETL(Extract, Transform, Load)工具,如Talend、Informatica和Pentaho。这些工具提供了数据抽取、转换和加载的功能,使得数据集成更加高效和方便。 数据存储和管理:数据存储和管理可以使用各种数据库管理系统(DBMS),如MySQL、Oracle、SQL Server和MongoDB等。这些DBMS提供了数据的存储、查询和管理功能,可以根据数据的特点和需求选择合适的数据库。数据分析和挖掘:在数据分析和挖掘阶段,可以使用各种统计分析和机器学习的工具和库。例如,Python中的SciPy、StatsModels、Scikit-learn和TensorFlow等库提供了各种统计分析、机器学习和深度学习的功能。 数据可视化:数据可视化可以使用各种工具和软件来实现。常用的可视化工具包括Python中的Matplotlib、Seaborn和Plotly库,以及商业化软件如Tableau和Power BI等。这些工具可以生成各种图表、图形和地图,以便更好地展示和解释数据。 除了上述技术和软件,还有许多其他的工具和平台可以用于数据处理,具体选择取决于数据的特点、需求和预算。同时,随着技术的不断发展,新的工具和软件也在不断涌现,为数据处理提供更多的选择和可能性。 往期阅读 数字孪生10个技术栈(总括):概念扫盲和总体介绍 数字孪生10个技术栈:数据采集的八种方式