网页数据的抓取-爬虫 实验环境 OS: windows 11 Python 3.6 Chrome (我的版本是 98.0.4758.102) 使用的python工具是 selenium. 从https://chromedriver.chromium.org/home下载对应版本的chromedriver。我的chrome版本是98,所以chromedriver也是98。把解压出来的chromedriver.exe 放到工程目录下。 参考文章: https://selenium-python-zh.readthedocs.io/en/latest/getting-started.html 测试样例 from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('headless') driver = webdriver.Chrome(executable_path="./chromedriver.exe", chrome_options=options) driver.get("https://www.baidu.com/") print(driver.title) driver.close() 流程: 首先打开一个chrome浏览器。指定chromedriver的地址 "./chromedriver.exe"。打开百度网页,输出题目。 通过百度获取天气 xpath 可以通过chrome里右键单击所需元素“检查”,后右键单击元素选择“复制”==》“复制xpath” from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait…
李沐老师实用机器学习笔记: Data III 2.2 数据清理 数据往往不是完美的,经常存在很多错误,包括 丢失某些特征,异常值等, 好的机器学习模型应该容忍这些错误。 使用存在错误的数据训练模型,模型可能会收敛,但会影响精度和训练速度,而且,对于新收集的数据,也可能带来不利的影响。 因此,应当数据应该尽可能的干净。 ?️ 授课视频: 2.2 数据清理【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili ? 课件: 讲义下载地址 数据错误的类型 Outliers 离群值: 某一些值与其他的观测值显著不同 违背规则:例如,价值应当大于0 违背模式:例如,singlefamily 写成了 singlefamily, 中间多了 找出数据中存在的错误的方法 异常值检测 对于异常值的检测,我们可以使用boxplot。首先我们找出中值,并计算出25~75%的区间。在图上,这个区间是蓝色或棕色的矩形。我们找出上下1.5倍矩形框之外的值,这些值通常情况下是有问题(错误)的值。 基于规则的检测 我们可以制定规则来找出错误, 依赖性约束:基于邮编,我们可以验证城市名称。基于纳税号,我们可以验证公司名称 拒绝性(Denial)约束:例如,如果有纳税号,电话号码通常不为空 基于模式的检测 句法模式:例如检测到eng(简写),我们就知道此项应该为English 字符。 语义模式:国家应该有首都,如果国家检测到斯坦福,斯坦福没有首都,因此无效 我们通常情况下可以使用图形化界面帮助我们指定规则,这里可以使用数据工程师常用的软件,例如Trifacta(如果需要使用的话,需要进一步学习)。 2.2 数据变换 机器学习算法需要固定长度,条件固定,理想分布的输入数据。这要求了我们需要提前预处理数据。 ?️ 授课视频: 2.3 数据变换【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili ? 课件: 讲义下载地址 实数值 归一化0到1…
李沐老师实用机器学习笔记: Data II 1.3 网页数据的抓取 网页数据的抓取是获取训练数据的一个重要的方式。与爬虫不同,数据抓取是为了获取特定的信息,而非爬取整个网页的内容。 ?️ 授课视频: 1.3 网页数据抓取【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili ? 课件: 讲义 工具 通常情况下,网站都会有防护措施,防止机器爬取数据。因此我们一般要使用 headless browser 像selenium。 而且,我们还需要大量的IP,一旦ip被禁止,我们可以换IP继续抓取数据。 案例学习 房屋价格的抓取 (省略),使用云平台,可以方便的更换ip,而且机器要求不高,价格不贵。 法律问题 数据抓取本身并不违法 但是,我们要避免抓取敏感数据:(1)需要登陆才能访问的数据,一般比较敏感。(2)不要爬取有版权的信息,(3)网站声明不允许爬取。 如果用做商业用途请咨询律师 1.4 数据标注 ?️ 授课视频: 1.4 数据标注【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili ? 课件: 讲义 流程图 只有部分标签,没钱,不想人工标注数据:半监督学习 如果仅有一小部分的数据,可以使用半监督学习进行数据标注。这里我们的假设是: 数据有连续性:拥有相似特征的样本有相同的标签 聚类性:数据有聚类的特性,同一类有相同的标签 流体假设:数据的复杂度比输入的维度要小 自学习 首先,我们先用有限的标签训练一个模型。然后,我们用模型去预测未标记的数据,对于高置信的预测样本,我们把他们融合到标记的数据中,再继续训练我们的模型。 这里我们可以使用更深的模型,或者多个模型做集合预测。因为这里的深度学习模型只是用来打标签,并不会用来实际部署。 只有部分标签,不差钱,可以标注数据:众包标注 可以使用类似于Amazon Mechanical Turk的众包平台,人工标记大量数据。需要注意的是: 用户标注页面要尽可能地简单:越简单,对标记人员的要求越低,就可以找到更多的标记人员,就可以拿到更低的价格。比如,对于一个365类的分类问题,可以简化为365个二分类问题,标注人员只需要回答是或者否。 花费…
李沐老师实用机器学习学习笔记,数据I 1.1 课程介绍 工业界有很多机器学习的应用, 例如传统的制造业中,可以利用传感器,自动找出出现问题的设备 ?️ 授课视频: 跟李沐学AI的个人空间_哔哩哔哩_Bilibili ? 课件: Syllabus - Practical Machine Learning 机器学习工作流: 定义问题: 找出最关键的问题,在一个项目中,最能产生效果的问题 数据:收集高质量的数据,需要考虑隐私问题 训练模型:模型现在越来越复杂,成本越来越高 部署模型:为了实时化 监控:要不断的监控,可能存在偏向性问题 机器学习的角色: 软件设计工程师: 开发维护数据流,模型训练和服务流 领域专家:有商业眼光,发现问题 数据科学家:全栈能力,数据挖掘,模型训练和部署 机器学习专家:模型定制化,模型调优 1.2 数据获取 外部数据集 数据集的三种类型: 学术数据集:干净,简单,但是选择不多,通常是小规模的 比赛数据集:接近于真实的机器学习应用。缺点是简单,数量少 原始数据:有更大的灵活性,但需要更多的预处理 生成数据集 使用GAN 仿真 数据增广
Revisiting Global Statistics Aggregation for Improving Image Restoration (消除图像复原中的“misalignment”,性能大幅提升) Paper: Revisiting Global Statistics Aggregation for Improving Image Restoration (AAAI 2022) arXiv:https://arxiv.org/pdf/2112.04491.pdf Code: https://github.com/megvii-research/tlsc Reference: [1] 消除图像复原中的“misalignment”,性能大幅提升 https://mp.weixin.qq.com/s/HRm6wPDBeopsmLtilF5K-A [2] https://xiaoqiangzhou.cn/post/chu_revisiting/ 问题的提出: Specifically, with the increasing size of patches for testing, the performance increases in the case of UNet while it increases…
BoTNet (2021-01): 将 Self-Attention 嵌入 ResNet 文章:Bottleneck Transformers for Visual Recognition 论文: https://arxiv.org/abs/2101.11605 摘要: We present BoTNet, a conceptually simple yet powerful backbone architecture that incorporates self-attention for multiple computer vision tasks including image classification, object detection and instance segmentation. By just replacing the spatial convolutions with global self-attention in…
项目地址:https://pypi.org/project/autopep8/ 参考文章:https://www.cnblogs.com/wuyongcong/p/9066531.html Autopep8 autopep8 自动格式化 Python 代码以符合 PEP 8 风格指南。它使用 pycodestyle 工具来确定代码的哪些部分需要被格式化。autopep8 能够修复大多数由 pycodestyle 报告的格式化问题。 安装 pip install autopep8 在命令行使用 autopep8 --in-place --aggressive --aggressive YOUR_PYTHON_FILE.py 在PyCharm 配置使用 配置 打开菜单:File ---> Settings ---> Tools ---> External Tools 窗体左上角有一个 + 号 Name: autopep8 # 或者其他名字 Program: autopep8 # 前提必须先安装 Arguments: --in-place --aggressive…
Unzip a set of "*.tar.gz" file for f in *.tar.gz; do tar -xvf "$f"; done List folders under a path import os list_dirs = [name for name in os.listdir("path") if os.path.isdir(name)]
HDF5 Hierarchical Data Format (HDF) is a set of file formats (HDF4, HDF5) designed to store and organize large amounts of data. Document for HDF5 Python API: https://docs.h5py.org/en/stable/build.html Installation Installation with conda: conda install h5py Installation with pre-built wheels pip install h5py Usage import h5py h5_file_name = "my_data.h5" h5_writer =…
Source Paper: [ICCV'2017] https://arxiv.org/abs/1703.06868 Authors: Xun Huang, Serge Belongie Code: https://github.com/xunhuang1995/AdaIN-style Contributions In this paper, the authors present a simple yet effective approach that for the first time enables arbitrary style transfer in real-time. Arbitrary style transfer: takes a content image $C$ and an arbitrary style image $S$ as inputs,…