自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 用 python 实现五种常见的排序算法

五种常见的排序算法选择排序 selection sort插入排序 insertion sort希尔排序 Shellsort归并排序 Mergesort快速排序 Quicksort总结(这里默认排序是从小到大)关于每种排序的视频讲解,参见普林斯顿的算法课选择排序 selection sort每次选择最小的放到左边# 选择排序 selection sortdef Selection_sort(a): n = len(a) for i in range(n): Min

2020-11-18 20:15:36 13

原创 普林斯顿算法课作业的python实现(二)Randomized Queues and Deques

这一讲主要介绍了两种数据结构:stack 堆设想放了一堆书,放的时候是从下往上放,拿的时候是从上往下拿,先拿最上面的,也就是最后放上的去的。所以是后进先出。quene 队列设想在排队,先到先得(First come, first served)。也就是说,先进来排队的人,先离开队伍。所以是先进先出。这一周题目在此:题目使用 python 来写数据结构的话非常方便。第一个部分是写RandomizedQueue,它和 stack、quene类似,不同之处在于移除元素是随机的。代码

2020-11-12 17:10:55 25 4

原创 普林斯顿算法课作业的python实现(一)Percolation

由于自己想补一下数据结构和算法,所以我最近开始在刷coursera上普林斯顿的算法课。coursera上视频播放不流畅,建议可以在B站上看,地址在此。这门课,专门有个课程网站,里面有配套的教科书和作业题。本次第一个作业Percolation作业网站代码如下:...

2020-11-10 23:28:44 28

原创 python 爬虫实战五:用 selenium 爬取知乎某一问题下的图片

爬取图片主要是用到了 urlretrieve 这个函数:话不多说,直接上代码:# -*- coding: utf-8 -*-"""Created on Sat Oct 31 14:41:46 2020@author: zxw"""# 引入必要的库from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriv

2020-11-02 23:45:32 72

原创 python 爬虫实战四:用 selenium 爬取知乎某一问题下所有回答

用 selenium 爬取知乎某一问题下所有回答前言模拟登录动态爬取完整代码效果展示前言最近我又重新拾起了爬虫,想实现一下前几次爬虫所没有涉及到的两个点:模拟登录和动态网页爬取,所采用的方法是利用 selenium 这个库,例子是爬取知乎某一问题下所有回答。模拟登录很多网站,比如知乎、微博、豆瓣,都需要登录之后,才能浏览某些内容。所以想要爬取这类网站,必须先模拟登录。比较简单的方式是利用这个网站的 cookie。cookie 相当于是一个密码箱,里面储存了用户在该网站的基本信息。在一次登录之后,网站

2020-10-31 15:32:03 299

原创 ISLR读书笔记终

花了一个月左右的时间,统计学习暂告一段落。接下来准备去Kaggle上找点项目练练手,有时间的话再看一下NLP。

2020-10-25 15:52:27 18

原创 ISLR读书笔记二十:聚类分析(Clustering)

123

2020-10-25 15:22:42 104

原创 ISLR读书笔记十九:主成分分析(PCA)

前面写的一些统计学习方法都是属于监督学习(supervised learning),这篇主成分分析(principal components analysis,简称 PCA )和下一篇聚类分析(clustering)都是属于非监督学习(unsupervised learning)。之前 ISLR读书笔记十二 中已经提到过主成分这一概念。其主要目的是利用一小部分数据组合,尽可能多地体现 全部数据的特征,从而实现降维的作用。这里的 尽可能多地体现 可以有两种解读:数据方差最大最近似。...

2020-10-23 16:28:33 32

原创 ISLR读书笔记十八:支持向量机(Support Vector Machines)

上一篇讲到的支持向量分类器适用于两类的边界是线性的情况,如果边界是非线性的,用支持向量分类器得到的结果并不好。所以,对于一般的非线性边界的问题,需要采用新的方法:支持向量机。其基本思想是用核的方法来扩大特征空间。出发点如下:可以证明,支持向量分类器的解maximize⁡β0,β1,…,βp,ϵ1,…,ϵnM subject to ∑j=1pβj2=1yi(β0+β1xi1+β2xi2+…+βpxip)≥M(1−ϵi)ϵi≥0,∑i=1nϵi≤C\begin{arra

2020-10-21 10:41:10 17

原创 ISLR读书笔记十七:支持向量分类器(Support Vector Classifier)

上一篇讲到的最大边际分类器存在两个问题:无法解决线性不可分的情况,即如果不存在分离平面,那么最大边际分类器就失效了。鲁棒性较差。如果添加一个观测数据,可能会导致最大边际超平面产生较大变化。针对这两个问题,引入支持向量分类器(Support Vector Classifier)。其大致思想是:以小范围的错误,换取更大范围的正确。即边际未必完美地将数据分离成两类,允许犯错,允许一些数据错误地划分到边际的一边,甚至允许一些数据错误地划分到超平面的一边,以牺牲小部分分类错误为代价,建立一个更加

2020-10-20 12:05:59 17

原创 ISLR读书笔记十六:最大边际分类器(maximal margin classifier)

最大边际分类器前言超平面分离超平面最大边际超平面前言本篇和接下来的两篇将介绍一种重要的分类方法:支持向量机(support vector machines)。本篇主要讲的是最大边际分类器(maximal margin classifier),是支持向量机的基础。接下来两篇将分别介绍支持向量分类器(support vector classifier)、支持向量机(support vector machines)。超平面超平面(hyperplane)指的是 ppp 维空间的 p−1p-1p−1 维线性子

2020-10-17 11:22:49 27

原创 ISLR读书笔记十五:Bagging, Random Forests, Boosting

Bagging, Random Forests, BoostingBaggingRandom ForestsBoostingBagging前一篇的决策树模型,有一个问题:预测结果的方差会很大,可以通过 bagging的方法来降低方差。其主要思想如下:用自助法(bootstrap)的方式得到 BBB 个不同的训练数据集,设第 bbb 个数据集上的得到的预测结果为 f^∗b(x)\hat{f}^{*b}(x)f^​∗b(x),对于回归问题,最终的预测结果可表示为f^bag(x)=1B∑b=1Bf^∗b

2020-10-16 21:00:41 24

原创 ISLR读书笔记十四:决策树(decision tree)

决策树回归树分类树优缺点回归树基本思想:将自变量 X1,X2,⋯ ,XpX_1,X_2,\cdots,X_pX1​,X2​,⋯,Xp​ 构成的空间,划分成 JJJ 个不同的区域 R1,R2⋯ ,RJR_1,R_2\cdots,R_JR1​,R2​⋯,RJ​对于落入 RjR_jRj​ 中的每一个数据,用该区域内因变量的均值,作为预测值。例子:假设棒球运动员的薪水与球龄和击打数有关,可以用如下简单的决策树方法,根据球龄和击打数来预测薪水。术语:这里 R1,R2,⋯ ,RJR_1,R_2,\

2020-10-15 19:08:39 26

原创 ISLR读书笔记十三:非线性回归

非线性回归前言多项式回归(polynomial regression)阶梯函数(step function)回归样条函数 (regression splines)光滑样条函数(smoothing splines)局部回归(local regression)广义加性模型(generalized additive model)前言之前介绍的主要是线性回归的方法,本篇主要讲述一些非线性回归的方法,主要基于的方法是基函数(basic functions),即拟合模型:yi=β0+β1b1(xi)+β2b2(x

2020-10-14 19:24:31 17

原创 ISLR读书笔记十二:模型选择——降维法(dimension reduction methods)

模型选择——降维法前言PCRPLS前言前面介绍的两类模型选择的方法,都保留了原始的自变量,而降维法则对原始自变量进行了转化,其大致思想是将原来的 ppp 个自变量,整合成 MMM 个自变量(M<pM<pM<p)。若令 Z1,Z2,⋯,ZMZ_1,Z_2,\cdots,Z_MZ1​,Z2​,⋯,ZM​ 表示 ppp 个 原始自变量的 MMM 个线性组合,即Zm=∑j=1pϕjmXjZ_m=\sum_{j=1}^p\phi_{jm}X_jZm​=j=1∑p​ϕjm​Xj​然后对这

2020-10-13 11:25:19 46

原创 ISLR读书笔记十一:模型选择——收缩法(shrinkage methods)

模型选择——收缩法岭回归(ridge regression)Lasso调参收缩法是另外一类模型选择的方法。收缩法将所有 ppp 个自变量进行拟合,但是将某些自变量的系数收缩到 0。主要有 ridge regression 和 lasso 两种方法。岭回归(ridge regression)线性回归模型中,最小化RSS:RSS=∑i=1n(yi−β0−∑j=1pβjxij)2RSS=\sum_{i=1}^n(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij})^2RSS=i=1

2020-10-11 20:11:48 49

原创 ISLR读书笔记十:模型选择——子集选择法(subsect selection)

模型选择——子集选择法前言最优子集法逐步选择法向前逐步选择向后逐步选择混合逐步选择如何评价最优前言这篇文章主要讲的是模型选择(model selection)中的一类方法:子集选择法(subsect selection),接下来两篇文章将介绍模型选择的其他两类方法:收缩法(shrinkage)和降维法(dimension reduction)。首先为什么要进行模型选择呢?以线性回归模型为例,主要出于预测准确性(prediction accuracy)和模型解释度(model interpretabil

2020-10-11 14:45:51 66

原创 ISLR读书笔记九:自助法(bootstrap)

自助法是一类应用很广的统计方法,可以用来定量化参数估计或者统计学习方法的不确定性。自助法重复地从原数据集中采样,这里采样是可放回的(replacement),可以允许有同样的样本出现,然后用得到的样本进行参数估计。举一个例子来说明自助法的应用。假设有 XXX 和 YYY 两种不同的金融资产,现要对 XXX 和 YYY 进行投资,使得总风险最小。假设有 α\alphaα 投给了 XXX, 1−α1-\alpha1−α 投给了 YYY,那么总风险就是 Var(αX+(1−α)Y)Var(\alpha X+(1

2020-10-10 11:30:57 19

原创 python数据分析实战一:IMDB Top 250

Top 250 Movies in IMDBData preparationData cleaningMissing valueData wranglingData analysis and visualizationNumber of top250 movies every yearThe distribution of RatePercent of each levelTop 10 directorsTop 10 WritersTop 10 StarsThe distribution of runtim

2020-10-09 21:28:32 45

原创 ISLR读书笔记八:交叉验证法(Cross-Validation)

交叉验证法(Cross-Validation)前言校验集方法留一法k折交叉验证前言校验集方法留一法k折交叉验证

2020-10-06 15:05:21 30

原创 ISLR读书笔记七:线性判别分析(LDA)

线性判别分析(LDA)前言单变量的LDA多变量的LDA二次判别分析(QDA)前言线性判别分析(linear discriminant analysis,简称LDA)是一种解决分类问题的方法。上一篇文章中讲到的逻辑斯蒂回归是处理分类问题的一个很好的模型,那么为什么还需要LDA呢?主要有以下三个原因:当类分离得很好的时候,逻辑斯蒂回归的参数估计很不稳定,而LDA不会存在这个问题。当 nnn 很小,而自变量 XXX 的分布大致服从正态分布时,LDA比逻辑斯蒂回归更稳定LDA比逻辑斯蒂回归更适合处理多分

2020-10-01 09:06:03 1273

原创 ISLR读书笔记六:逻辑斯蒂回归(logistic regression)

逻辑斯蒂回归前言逻辑斯蒂模型估计回归系数预测多元逻辑斯蒂回归前言之前几篇讲的线性回归处理的是回归问题,这一篇逻辑斯蒂回归(logistic regression)和下一篇线性判别分析(linear discriminant analysis)处理的是分类问题。那么为什么不能用线性回归模型来解决分类问题呢?主要有以下三个原因:假设因变量有三个类:狗、猪、人。将狗赋值为1,猪赋值为2,人赋值为3。这种赋值方式默认了狗、猪、人是有顺序的。而且狗与猪之间的差距=猪与人之间的差距=1,这显然是有问题的。没

2020-09-29 14:37:06 30

原创 python爬虫实战三:近十年中国电影票房数据爬取与分析

近十年中国电影票房数据爬取与分析前言爬取分析十年top10年度top5每年电影数每年总票房二八原则代码与数据前言这篇文章主要讲述的是近十年(2010-2019)中国电影票房数据的爬取与简单分析。之所以想到做这个,是因为我最近在一本书上读到这么一段话2013年受市场热捧的电影行业其实是个现金流状况很差的行业。中国每年会拍七百多部电影,只有两百多部能够上映,其中票房能够超过五亿的屈指可数。即使赚了五亿的票房“大获成功”的电影,扣除分给院线的一半,再扣除发行费,宣传费,制片方能够拿到手的大概只有2亿多一

2020-09-27 20:13:10 253

原创 ISLR 读书笔记五:线性回归的其他考虑

线性回归的其他考虑定性自变量只有两个类有多个类线性模型的延伸加性假设的移除非线性关系潜在的问题非线性关系误差项的相关性误差项方差非常数离群值高杠杆数据点共线性这一篇文章主要讲了前两讲线性回归中没有涉及到的问题。定性自变量之前的线性回归自变量都是定量数据,如果变量是定性数据,可以引入哑变量(dummy variable)只有两个类如果某个自变量只有两个类,比如性别,分为男、女,那么可以引入哑变量 xix_ixi​,xi={1性别为女0性别为男x_i=\left\{\begin{aligned}

2020-09-25 20:58:03 23

原创 ISLR 读书笔记四:多元线性回归

多元线性回归参数估计四个问题因变量与自变量是否相关?多元线性回归是简单线性回归的拓展。简单线性回归中,自变量只有一个,而多元线性回归中,自变量有多个,可以用如下形式表示:Y=β0+β1X1+β2X2+⋯+βpXp+ϵY = \beta_0+\beta_1X_1+\beta_2X_2+\cdots+\beta_pX_p+\epsilonY=β0​+β1​X1​+β2​X2​+⋯+βp​Xp​+ϵ参数估计上式中的 β0,β1,...,βp\beta_0,\beta_1,...,\beta_pβ0​,β1

2020-09-24 14:41:59 20

原创 ISLR 读书笔记三:简单线性回归

简单线性回归参数估计参数准确性评价模型准确性评价RSER2R^2R2统计量线性回归是一类最简单常见的监督学习方法,它假设 fff 是线性形式。线性回归可以回答以下7个问题:自变量 XXX 与 因变量 YYY 之间是否有关系?自变量 XXX 与 因变量 YYY 之间的关系有多强 ?哪些 XiX_iXi​ 对因变量 YYY 有影响?如何准确评估每一个 XiX_iXi​ 对因变量 YYY 的影响?如何准确预测因变量 YYY ?自变量 XXX 与 YYY 之间是线性的吗?自变量 XiX_iXi​

2020-09-23 14:06:24 15

原创 ISLR 读书笔记二:评估模型的准确性

评估模型的准确性MSE偏差 VS 方差分类问题贝叶斯分类器KNN统计学习中,有一条天下没有免费的午餐定理:没有哪一个方法可以对任何数据集,都胜过其他任何方法。所以,在具体实践中,选择最好的方法,成为了一个具有挑战性的问题。但是要如何比较模型的好坏呢?以下就介绍了一些评估模型好坏的概念。MSEMSE是均方误差(mean squared error)的缩写,用来刻画模型拟合程度的好坏,多用于线性回归模型。MSE=1n∑i=1n(yi−f^(xi))2MSE=\frac{1}{n}\sum_{i=1}^n

2020-09-22 23:22:42 23

原创 ISLR 读书笔记一:什么是统计学习?

什么是统计学习?引入统计学习的定义为什么要估计fff预测推断如何估计fff权衡监督 VS 非监督回归 VS 分类引入作者是数学本科出身。本科学习数学,教会我的最大一点就是,学习任何一门课程,最重要也是最基本的一点,就是掌握每一个基本概念的定义。因为任何性质,定理,都是建立在这些定义之上的,这些定义正是这门课程的基石。我觉得学习其他学科,同样也是如此。所以,我想先从统计学习的定义写起。可能需要一点多元微积分的背景知识。统计学习的定义Y=f(X)+ϵY=f(X)+\epsilonY=f(X)+ϵ这里X

2020-09-22 07:21:42 26

原创 纠错码的构造

纠错码的构造综述构造方法Hamming界的应用Singleton界的应用扩充法抽屉原理总结综述纠错码,是指在传输过程中发生错误后能在收端自行发现或纠正的码。而寻找性能良好的纠错码本质上是一个组合学的问题。如果用nnn表示码长,KKK表示码字个数,ddd表示码字个数,那么往往就有如下两个问题:1.对于固定的nnn和KKK,ddd最大可以是多少?2.对于固定的nnn和ddd,KKK最大可以是多少?这两个问题都属于组合极值问题,无外乎两个步骤:1.确定范围,2.给出一个构造。而本篇文章,基于《纠错码的

2020-09-21 16:16:03 35

原创 ISLR 读书笔记零:统计学习和ISLR简介

统计学习和ISLR简介前言统计学习简介概述历史ISLR简介后记前言本篇文章是我学习 An introduction to Statistical Learning with Application in R (以下简称 ISLR)的第一篇文章,主要介绍了统计学习和ISLR,后续会不定期更新。统计学习简介概述统计学习(statistical learning)是一系列用来理解数据的方法。这些方法主要可以分为两类:监督学习 (supervised learning )非监督学习 (unsuper

2020-09-20 11:28:18 65

原创 python爬虫实战二:豆瓣读书top250爬取

豆瓣读书top250爬虫实战前言爬虫定义下载链接函数爬取内容的选择定位方式的选择数据预处理后记前言本文主要介绍了对豆瓣读书top250的数据爬取与数据预处理,主要运用的库是re,request,Beautifulsoup,lxml。本文侧重于总结我在爬虫时遇到的一些坑,以及我对待这些坑的方法。文末附上了爬取的代码与数据。这是我的第一个爬虫实战:豆瓣电影top250的姊妹版。爬虫定义下载链接函数爬取内容的选择定位方式的选择数据预处理后记...

2020-09-19 19:20:47 466

原创 python爬虫实战一:豆瓣电影top250爬虫+分析

豆瓣电影top250爬虫+分析前言爬取思路代码分析代码后记一点想法参考资料前言本文主要介绍了对豆瓣电影top250的爬取与分析。爬虫时主要运用的库是re,request,Beautifulsoup,lxml,分析时主要运用的是pandas,matplotlib。最后介绍了爬虫相关的一些参考资料,有兴趣的读者可以自行参阅。爬取爬虫,我觉得就是用计算机来代替人力,让其模拟人搜索,进行大量重复枯燥的工作。关于爬虫,现在网上都有比较全面的爬虫教程,这里不多做赘述。我学习的教材主要是 Web Scrapin

2020-09-17 13:58:55 296

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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