自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 机器学习算法——GBDT

1.简介GBDT全称梯度下降树,在传统机器学习算法里面是对真实分布拟合的最好的几种算法之一,在前几年深度学习还没有大行其道之前,gbdt在各种竞赛是大放异彩。原因大概有几个,一是效果确实挺不错。二是即可以用于分类也可以用于回归。三是可以筛选特征。这三点实在是太吸引人了,导致在面试的时候大家也非常喜欢问这个算法。 gbdt的面试考核点,大致有下面几个:GBDT的算法的流程?GBDT如何选择特征 ?GBDT 如何构建特征 ?GBDT如何用于分类?GBDT 通过什么方式减少误差 ?GBDT的效果相比

2020-12-10 22:08:15 1210 1

原创 机器学习--集成学习

一、基本概念1.1 定义在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。集成方法是将几种机器学习技术组合成一个预测模型的元算法,以达到减小方差(bagging)、偏差(boosting)或改进预测

2020-12-06 11:04:05 496

原创 机器学习--聚类

一、基本概念聚类的概念:一种无监督的学习,事先不知道类别,自动将相似的对象归到同一个簇中。应用场景:文档分类器、客户分类、保险欺诈检测、 乘车数据分析二、距离计算对于有序距离其中P=1为曼哈顿距离P=2为欧氏距离对于无序距离使用VDM距离:其中 m(u,a,i)表示在第i个样本簇中属性u上取值为a的样本数m(u,a)表示属性u上取值为a的样本数k为样本簇数混合距离使用闵科夫斯基距离和VDM的混合其中n©为有序属性个数加权距离根据不同属性的重要性,可使用“加权”距离二、

2020-12-06 10:55:33 240

原创 机器学习--人脸自动补齐

随机树ExtraTreeRegressor(): 分列点随机选取、不考虑信息增益,减少过拟合获取一个对象所属的类名称: model.class.nameimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns%matplotlib inline# 导入人脸数据集from sklearn.datasets import fetch_olivetti_faces,fetch

2020-12-06 10:50:46 247 1

原创 机器学习--决策树

一、基本概念1.1 是什么分类决策树模型是一种描述对实例进行分类的树形结构,相当于if-then结构。决策树由节点和有向边构成。节点有两种:一种是内部节点,表示一个特征或者属性;另一种是叶子节点,表示一个决策结果。1.2 优缺点优点:模型具有可读性、分类速度快缺点:容易产生过拟合1.3 决策过程从根节点开始,对实例的某一个属性进行分裂,根据分裂结果将实例分配到其子节点。这时,每一个子节点对应该特征的一个取值,如此递归的对实例进行测试分类,直至到达叶子节点。最后将实例分配到叶节点的类中。可以看

2020-12-06 10:49:27 385 1

原创 机器学习--文本分析(jieba)

一、jiebajieba分词有三种拆词模式:jieba.cut(cut_all=False) # 精确模式 适用于文本分析(建模)jieba.cut(cut_all=True) # 全模式 适合搜索引擎jieba.cut_for_search() # 搜索引擎模式cut方法拆完是一个生成器对象jieba.lcut(cut_all=False) # 精确模式 适用于文本分析(建模)jieba.lcut(cut_all=True) # 全模式 适合搜索引擎jieba.lcut_for_searc

2020-12-06 10:42:20 2499 1

原创 机器学习--模型评价和选择

一、基本概念误差(误差期望):学习器的实际预测输出与样本真实输出之间的差异经验误差(训练误差):学习器在训练集上的误差泛化误差:学习器在新样本上的误差过拟合(过配):学习器学习能力过强,将训练集中自身的特点当做所有潜在样本都会由的一般性质,这会导致泛化能力下降。 无法避免,只能缓解欠拟合(欠配):学习器对训练样本的一般性质没有学好二、训练流程2.1 获取测试集测试集应该尽量与训练集互斥当我们只有一个包含m条记录的训练集,需要对训练集进行拆分,拆分方法如下:留出法:① 原理: 即将训练集

2020-12-06 10:39:54 222 1

原创 机器学习--多分类任务

一、思想多分类问题还是以二分类为基础,即将多分类任务拆解为多个二分类任务。具体来说就是先对问题进行拆分,然后对每个二分类任务训练一个分类学习器;测试时对这些分类器的预测结果进行汇总,然后得出最终分类结果。二、拆解策略2.1 一对一(OVO)①、流程将N个类别进行两两配对,产生N(N-1)/2 个二分类任务,然后为每一个二分类任务训练一个分类器。测试阶段,分类器将新样本进行预测,得到N(N-1)/2个预测结果,最终结果通过”投票”产生。2.2 一对其余(OVR)①、流程对于由N个类别的样本,

2020-12-06 10:35:03 1172 1

原创 机器学习--贝叶斯模型

一、概念及公式1.1 条件概率公式①、 设A、B是两个事件,且P(A)>0,称 P(B|A)=P(AB)/P(A) 为在事件A发生的条件下事件B发生的条件概率。其中P(A|B) = P(B|A)P(A) / P(B) 为贝叶斯公式如果事件B1、B2、B3…Bn 构成一个完备事件组,即它们两两互不相容,其和为全集;并且P(Bi)大于0,则对任一事件A有P(A)=P(A|B1)*P(B1) + P(A|B2)*P(B2) + … + P(A|Bn)*P(Bn).为全概率公式1.2 变形得到乘

2020-12-06 10:33:12 954 1

原创 MSE 和 MAE

两种损失函数的性质异常值MSE对异常值敏感,因为它的惩罚是平方的,所以异常值的loss会非常大。MAE对异常之不敏感,不妨设拟合函数为常数,那么MSE就相当于所有数据的均值(列出loss对c求导即可),而MAE相当于所有数据的中位数,所以会对异常值不敏感。优化效率MAE不可导而且所有的导数的绝对值都相同,优化时无法确定更新速度,MSE可导,有closed-form解,只需要令偏导数为0即可。如何选择如果想要检测异常值则使用MSE,如果想学习一个预测模型则建议使用MAE,或者先进行异常值

2020-11-23 19:43:41 4051 1

原创 机器学习中的--超参

什么是超参?在看机器学习时,经常碰到一个叫超参数的参数(hyperparameter),所以到底什么是超参数?超参数的定义:在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。理解:超参数也是一个参数,是一个未知变量,但是它不同于在训练过程中的参数,它是可以对训练得到的参数有影响的参数,需要训练者人工输入,并作出调整,以便优化训练模型的效果。超参数:1. 定义关于模

2020-11-23 17:29:58 1525 1

原创 Python----二叉树

首先我们要知道什么是“树”一. 树的特征和定义树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示。树在计算机领域中也得到广泛应用,如在编译源程序时,可用树表示源程序的语法结构。又如在数据库系统中,树型结构也是信息的重要组织形式之一。一切具有层次关系的问题都可用树来描述。树(Tree)是元素的集合。我们先以比较直观的方式介绍树。下面的数据结构是一个树:树

2020-11-21 10:38:37 147 1

原创 将其化简:机器学习---logistic回归

一、广义线性模型①、广义线性模型:将线性回归的假设函数作为自变量映射到另一个函数上即:这样的模型为广义线性回归,其中函数g 为联系函数。②、作用:将分类任务的真实标记y 与线性回归模型的预测值联系起来二、逻辑斯蒂回归虽然逻辑回归能够用于分类,不过其本质还是线性回归。它仅在线性回归的基础上,在特征到结果的映射中加入了一层sigmoid函数(非线性)映射,即先把特征线性求和,然后使用sigmoid函数来预测。2.1 sigmoid函数①、首先我想到了阶跃函数:但是阶跃函数在0处不连续,且无

2020-11-21 10:16:23 265 1

原创 机器学习--岭回归和Lasso回归

任何数据都存在噪声和多重共线性如何解决多重共线性 ?1.算法角度(正则化)2.数据角度(最有效果)岭回归与Lasso回归的出现是为了解决线性回归出现的过拟合(数据间高度线性相关)以及在通过正规方程方法求解θ的过程中出现的x转置乘以x不可逆这两类问题的,这两种回归均通过在损失函数中引入正则化项来达到目的,具体三者的损失函数对比见下图:其中λ称为正则化参数,如果λ选取过大,会把所有参数θ均最小化,造成欠拟合,如果λ选取过小,会导致对过拟合问题解决不当,因此λ的选取是一个技术活。岭回归与Lasso回

2020-11-21 09:50:01 7117 1

原创 机器学习---普通线性回归模型

线性回归一般分为单变量线性回归和多变量线性回归。线性回归的预测效果很高一、单变量线性回归对于单变量线性回归,我们要做的就是怎么样通过学习得到一个假设函数(h),从而能给出房子的估值??①、假设函数的一般形式:②、参数③、代价函数:拟合参数的标准,这边为均方误差④、求解代价函数为最小值时的参数而解决最小化问题时,我们引入了 梯度下降算法。梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该

2020-11-21 09:46:42 1315 1

原创 机器学习--K近邻算法(KNN)

**一、简介**K-Nearest-Neighbor 算法是一种常用的监督学习算法,它没有显式的训练过程,是‘懒惰学习’的显著代表,此类学习算法仅在训练阶段将训练集保存起来,训练时间开销为0,待收到测试样本后在进行处理k近邻模型的三要素: K值选择、距离度量、分类评价规则二、工作机制给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个‘邻居’的信息来进行预测。在分类任务中,可使用“投票法”,即选择这k个样本中出现类别最多的标记作为预测结果;评价分类问题可以使用准确

2020-11-19 08:44:48 508 1

原创 机器学习基本概念

一、机器学习概念1.1 什么是机器学习机器学习是研究如何通过计算的手段,利用经验来改进系统的性能,而经验往往是指数据。机器学习本质上是一种复杂的算法,它通过在大量的数据中挖掘隐含的信息,从而达到预测输出和分类的目的。1.2 目标通过学习得到的模型,很好的适用于新的样本,这种能力也叫泛化能力。1.3 基本术语数据集:n条记录的集合示例(样本、特征向量):每条记录关于一个事件或者对象的描述 ,即一条记录属性(特征):反映事件或对象在某一方面的表现或者性质的事项,即一个字段属性值:属性的取值属

2020-11-14 08:59:49 319 1

原创 假设检验

import scipy一、卡方检验卡方验证可以解决两组离散变量的相关性, 常用于建模中,研究某个字段是否对离散型的预测目标有影响chi2, p, dof = stats.chi2_contingency(两组数据array)统计量 p值 自由度二、T检验t检验:–用于对各变量系数显著性检验–用于检查假设的期望和抽样的样本期望是否一致–用于小样本判断标准:一般用p值 0.05来衡量小于0.05 显著大于0.05不显著2.1 单样本T检验-ttest_1sampstats.ttes

2020-11-13 18:42:11 161

原创 参数估计

一、参数估计的一般问题1.1 估计量与估计值估计量:用于估计总体参数的随机变量估计值:估计参数时计算出来的统计量的具体值1.2 点估计和区间估计∙ 点估计:用样本的估计值的某个取值直接作为总体参数的估计值无法给出估计值接近总体参数程度的信息∙ 区间估计:在点估计的基础上,给出总体参数估计的一个区间范围,该区间由样本统计量加减估计误差得到根据样本统计量的抽样分布能够对样本统计量与总体参数的接近程度给出一个概率度量∙ 置信水平:将构造置信区间的步骤重复多次,置信区间包含总体参数真值的次数

2020-11-13 18:41:07 594

原创 统计量与抽样分布

一、统计量1.1 统计量统计量:由样本构造的一个函数,且不依赖于任何未知参数。统计量是统计推断的基础次序统计量:样本值有序中位数、分位数、四分位数都是次序统计量二、分布2.1 抽样分布样本统计量的概率分布,是一种理论分布重复选取样本容量为n的样本时,该统计量所有可能的取值形成的相对频数分布样本统计量是随机变量结果来自容量相同的所有可能样本2.2 正态分布∙ 分布函数的概念:函数F(X)= P(X<= x)为X的分布函数,表示随机变量X小于等于x的概率分布函数完整的描述

2020-11-13 18:30:15 420

原创 数据的描述性统计

一、集中趋势的度量集中趋势:1.一组数据向其中心值靠拢的倾向和程度2.测量集中趋势就是寻找数据水平的代表值和中心值3.不同数据类型用不同的集中趋势测量值4.低层次的测量值适用于高层次的测量数据;高层次的测量值不适用于低层次的测量数据1.1 分类数据:众数(M0)1.一组数据中出现次数最多的变量值2.适用于数据较多的情况3.不受极端值影响4.一组数据可能没有众数,也可以有多个众数5.主要用于分类数据,也可以用于数值数据和顺序数据1.2 顺序数据:中位数(Me)和分位数1.排序后位

2020-11-13 18:27:41 399

原创 Python进阶--Python操作excel

一、xlsxwirter三方库优点:写的快功能多缺点:只能写问题:内容并不是直接写入文件中只有在关闭的时候才会写入文件实例:# 创建excel文件wb = xlsxwriter.Workbook("cars.xlsx")# 在该文件下创建sheetws = self.wb.get_worksheet_by_name("Car") or self.wb.add_worksheet("Car")ws.write(row,col,*arg)wb.close()二、openpyxl

2020-11-13 08:28:37 185

原创 Python网络爬虫--爬虫性能分析

多线程,多进程,协程提升性能硬件级别:电脑组成的硬件网络加设备软件级别:操作系统:指定软件进行优化**具体软件:***软件版本***软件编程*****数据结构******算法******流程******时间 空间 转换******具体的小方案********XXX多设备协作集群:很多设备做完全一样的事情分布式:做的是不一样的事共同完成了一件事情还是有做相同事情的机器的...

2020-11-13 08:28:18 187

原创 Python网络爬虫--项目实战--scrapy爬取贝壳网

一、完整代码bk.pyimport jsonimport scrapyfrom ScrapyAdvanced.items import HouseItemclass BkSpider(scrapy.Spider): name = 'bk' allowed_domains = ['bj.ke.com'] start_urls = ['https://bj.ke.com/ershoufang/'] def parse(self, response):

2020-11-13 08:28:03 371

原创 Python网络爬虫--项目实战--scrapy嵌入selenium,芯片厂级联评论爬取

一、目标爬取芯片厂电影级联页面的评论二、分析2.1 网页分析经过研究发现,该网页的评论是动态加载的。故我们本次采用selenium来解决。本次只拿数据不进行存储。三、完整代码xpc.pyimport scrapyclass XpcSpider(scrapy.Spider): name = 'xpc' allowed_domains = ['www.xinpianchang.com'] start_urls = ['https://www.xinpianchang.

2020-11-13 08:27:31 145

原创 Python网络爬虫--项目实战--scrapy爬取人人车

一、目标爬取多页人人车的车辆信息二、分析2.1 网站分析在网页源代码中可以搜索到页面中的数据,所以可以判断该页面为静态加载的三、完整代码renrenche.pyimport scrapyfrom car.items import RrcItemclass RenrencheSpider(scrapy.Spider): name = 'renrenche' allowed_domains = ['www.renrenche.com'] start_urls =

2020-11-13 08:27:15 1096

原创 Python网络爬虫--项目实战--scrapy爬取前程无忧招聘信息

一、目标爬取该网站的招聘信息二、网站分析:首先用xpath规则匹配页面的元素匹配不到,由此初步得出该页面是动态加载的。然后在页面源码中发现要找的数据在一个js中,故最终得出该页面是动态加载的三、完整代码:a51job.pyimport jsonimport scrapyfrom LearnScrapy1.items import CompanyItem, JobDescItemclass A51jobSpider(scrapy.Spider): name = '51job'

2020-11-13 08:26:47 1002 1

原创 Python网络爬虫--项目实战--用scrapy框架爬取王者荣耀英雄信息

wzry.pyimport scrapyfrom LearnScrapy.items import HeroItemclass WzrySpider(scrapy.Spider): name = 'wzry' allowed_domains = ['pvp.qq.com'] start_urls = ['https://pvp.qq.com/web201605/herolist.shtml'] hero_detail_base_url = "https://pv

2020-11-12 17:44:49 1105

原创 Python网络爬虫--scrapy框架

一、简介它是使用了纯python打造的爬虫框架,包含了数据获取、数据提取、数据存储等。Scrapy 使用了 Twisted(其主要对手是Tornado)异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。1.1 框架框架:和其他三方库没什么本质的区别。框架的优点:1.可以简化开发,用少量的代码实现复杂的功能。2.架构设计3.代码的可维护性和可扩展性都比较强框架的缺点:1.入门门槛高1.2 知识点1.2.1

2020-11-12 17:43:53 1005

原创 Python网络爬虫--selenium使用

一、软件安装使用selenium前需要下载对应浏览器的驱动,我使用的是谷歌下载地址:http://npm.taobao.org/mirrors/chromedriver/将解压后的chromedriver.exe文件放到python的工作目录下最后 终端 pip install selenium 即可二、导航到链接from selenium.webdriver.chrome.webdriver import WebDriverurl = 'https://www.csdn.net/'dri

2020-11-12 17:32:27 1310

原创 Python网络爬虫--项目实战(2)--起点小说爬取

一、目标爬取起点小说一本免费小说,并将所有章节名称和内容都保存到本地我选择爬取“”我真的好想打球“”二、分析2.1 网页分析ctrl+U 进入网页的源代码,输入任意章节名称,可以在代码中找到,初步判定该网页为静态加载的2.2 反爬分析同样的IP爬取可能会被反爬,所有我选择 fake_useragent 三方库来生成随机的User-Agent三、注意点1.要将爬取的内容进行数据的清洗四、完整代码import requestsfrom fake_useragent import Us

2020-11-12 17:30:38 10336

原创 Python网络爬虫--项目实战(1)--500px图片爬取

一、目标爬取500px图片并保存目标网址:https://500px.com.cn/community/discover二、分析2.1 网站分析:经过研究发现该网站没有点击下一页的按钮,然后往下拖动下拉条直到最后,会自动刷新出新的内容,基本可以得出该网页是动态刷新的。或者ctrl+U 打开页面源码,复制粘贴一张图片的地址,在源码中找不到对应的地址,也可以判断该页面为动态加载的。2.2 反爬分析:相同的IP爬取大量的图片可能会被反爬(频率反爬),故需要采用UA池三、注意点:1.一定要选取正

2020-11-12 17:29:22 213

原创 Python网络爬虫--练习

一、爬取王者荣耀英雄信息(单页)import jsonimport pymysqlimport requestsfrom lxml import etreedef get_heros(url): response = requests.get(url) response.encoding = 'GBK' # 王者荣耀官网编码为gbk,pycharm默认utf-8,故中文乱码 html_etree = etree.HTML(response.text) ret

2020-11-12 17:28:25 167

原创 Python网络爬虫--反爬

服务器常见反爬虫策略验证用户身份:*User-Agent *应对方案:**爬虫在请求头中添加就可以了验证登陆身份:*Web浏览器中cookie*专用终端 token*其实就是名字不一样*应对方案:**获取登陆后的cookie来使用频率反爬:*30秒之内搜索一次*1分钟之内只能浏览10次*应对方案**降低频率,随机休眠**频率统计策略***ip:****切换ip****代理:*****代理池*****买***cookie****切换cookie****cooki

2020-11-12 17:26:35 92

原创 数据分析工具--matplotlib

一、简介Matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形。可以以 Pythonic 和面向对象的方式使用。matplotlib.pyplot是一组命令样式函数,使Matplotlib的工作方式类似于MATLAB。每个pylot函数对图形进行一些更改:例如,创建图形、在图形中创建绘图区域、在绘图区域中绘制一些线、使用标签装饰绘图等。pyplot主要用于交互式绘图和程序化绘图生成的简单情况。二、线型图的使用import matplotlib.

2020-11-12 17:18:30 380 1

原创 数据分析工具--pandas

一、简介1.1定义Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。1.2 优势∙ 处理浮点与非浮点数据里的缺失数据,表示为 NaN;∙ 大小可变:插入或删除 DataFrame 等多维对象的列;∙ 自动、显式数据对齐:显式地将对象与一组标签对齐,也可以忽略标签,在 Se

2020-11-12 17:08:27 375

原创 Python网络爬虫--selenium

一、打开网页获取页面源码from selenium.webdriver.chrome import webdriver# 初始化,需要加载浏览器驱动driver = webdriver.WebDriver(executable_path="chromedriver.exe")url='https://www.xinpianchang.com/channel/index/sort-like?from=navigator'driver.get(url) # 打开网页page_source = d

2020-11-12 16:53:13 59

原创 Python网络爬虫--数据持久化

一、数据转换算法—摘要,指纹算法,哈希算法,杂凑算法-----使用场景:1.验证数据完整性2.所有人都需要提防的场景-----常见摘要算法:1.md52.sha-----特性:单向不可逆不管输入多长,输出长度都是固定的输入如果一样,输出一定一样输入只要发生细微变化,输出会有非常明显的变化–编码:1.为了兼容性问题2.编码会对应解码3.编码是可逆的4.A->C C->A------常见:1.utf-82.base64–加密------密钥------对

2020-11-11 17:39:48 178

原创 Python网络爬虫--数据提取xpath

一、xpath简介XPath,即为XML路径语言(XMLPathLanguage),它是一种用来确定XML文档中某部分位置的语言。xml和html异同:都是玩标签,标签中都有属性xml必须为双标签,html单双都可xml标签为自定义,html标签都为内置XPath 使用路径表达式在 XML 文档中进行导航XPath 包含一个标准函数库XPath 是 XSLT 中的主要元素XPath 是一个 W3C 标准二、xpath使用xpath使用:1.导入lxml.etree:from lxm

2020-11-11 17:34:44 1760

原创 Python网络爬虫--Requests库

一、 requests.get(url, params=None, **kwargs)import requestsurl = "https://movie.douban.com/subject/26754233/reviews?start=%d"headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.418

2020-11-11 17:32:04 109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除