自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 随机森林的原理和用随机森林的方式进行特征选择

Bagging的策略:假定给定了N个样本,现在让我们去做决策树,分类器使用ID3,那么现在样本确定了,分类器确定了,这个决策树就是已经确定的。那么如果我们保证每次的数据不一样,就可以生成不同的决策树。那我们如何保证每次的样本数据不一样呢?最直接最有效的方法:首先我们有N个样本,我们给定一个从1-N的随机数,每次随机有放回的随机取一个随机数(也就是说可以重复)并且取N次,我们就得到了一个N个样本的随机数,标位DT1。我们重复前面随机取样的步骤,得到M颗决策树,这样就形成了一个森林。问题:那么如果给定N个样

2020-09-09 01:11:26 2570

原创 决策树,条件熵,相对熵,互信息

决策树:决策树最大的好处就是训练速度快从n个特征中选择一个来分成若干份。如果是离散的,就分成若干份,如果是连续的,就取某一个值作为阈值分类,那么现在的问题转化成为我们要选取哪一个特征来分类。因为有不同的标准,所以有了ID3,C4.5,CART这三种决策树。假如现在有一个数据集,分别是红色的圆点和绿色的圆点,红色有70个,绿色有65个,把他们放到一起,随机抓取一个,它的颜色是红色还是绿色?我们可以算它的概率。红色概率有70/135,绿色概率为65/135。那我们可以预测是红色的,即使概率很接近百分之50

2020-07-31 13:57:56 742

原创 多元线性回归

比如有一个住房价格的数据集,可能会有多个不同的模型用于拟合,选择之一像是这种二次模型:θ0+θ1x+θ2x2,因为直线并不能很好的拟合这些数据。但是现在如果用二次函数去考虑,可能会想到二次函数在最高点之后会下降,但是价格并不会下降,并不合理,那我们可以用θ0+θ1x+θ2x2+θ3x3这样的三次模型。如果像这样选择模型,那么特征缩放就变得更重要了。我们有很大的余地来选择要使用哪些特征,比如正规方程:对于某些线性回归问题, 正规方程会给我们更好的方法让我们求得θ的最优值。梯度下降算法:为了最小化代

2020-07-29 14:58:48 232

原创 特征缩放

特征缩放:如果你有一个机器学习问题。这个问题有很多特征,如果你能确保这些特征都处在一个相近的范围,这样梯度下降法就能很快地收敛。假设你有2个特征,第一个是房屋面积,他的取值在0-2000之间。第二个是房屋数量,他的取值在0-5之间,如果你画出代价函数J(θ)的等值线, 会非常细高如果在这种代价函数上运行梯度下降的话,你的梯度最终可能需要花很长时间,并且来回波动怎么处理这种问题呢。一种有效的方法就是进行特征缩放,如果把x1房子面积大小除以2000,把X2除以5,图像就会看起来很圆,这时候的使用梯度下

2020-07-28 09:54:02 155

原创 Logistic模型,混淆矩阵AUC

R2:R2并不是R的平方,而实1-RSS/TSS其中,RSS = 所有预测值和实际值的差的平方和,TSS是所有实际值和实际值的平均值的平方和,当R2等于1的时候是最好的,也就是说 RSS等于0最好,也就是说预测值和实际值相同的情况下最好。当预测值和实际值的平均值相同时,模型等于0,当然R2也可能为负。当然线性模型也可以做一些其他的事情有的时候我们根据已知的样本,比如上图的黑色样本点,可以来做一个线性模型,比如红色的线。但是有的时候我们可以给他加权。加权的线性回归。我们也可以用回归来解决分类问

2020-07-20 14:00:18 1165

原创 回归算法:线性回归,中心极限定理,似然函数,正则1正则2,梯度下降

中心极限定理的意义

2020-07-16 14:07:51 490

原创 逻辑回归,聚类

已经得到的模型该如何保存呢?sklearn有专门进行保存和加载的api保存加载逻辑回归(分类算法)线性回归的式子作为输入,并且是一个二分类问题sigmoid函数sigmoid可以将输入转化成一个0-1的值,sigmoid函数交Y轴于1/2。正无穷和负无穷无限接近于1-0,把这个0-1的值转化成概率逻辑回归也是一种自我学习的算法,逻辑回归也有损失函数其中h(x)是概率值。上图中纵坐标是损失值,当预测y=1的概率是百分之百,那么就没有损失。当预测y=1的概率越小,损失值就越大

2020-07-11 12:03:24 408

原创 线性回归,正规方程和梯度下降,如何解决过拟合现象

回归问题该如何判定?目标值是连续的分类问题是离散的,或0或1或2。。。预测分类问题和预测回归问题思想完全不一样回归算法:可以做些什么?比如房价预测,销售额预测,贷款额度的预测。。。。例子:房价的预测...

2020-07-10 15:05:16 269

原创 算法k近邻和朴素贝叶斯

K近邻算法通过“邻居”判断所述的类别如何求距离呢:为了防止某一个特征的数据数量太大,我们需要做标准化处理K的取值:会影响最后的结果。案例:pandas处理时间戳增加时间戳...

2020-07-07 20:58:56 241

原创 数据降维

数据降维:指的是降低特征的数量数据降维的2种方式:1.特征选择2.主成分分析1.特征选择特征选择的原因:冗余:部分特征相关度高,容易消耗计算性能。噪声:部分特征对预测结果有影响sklearnt二证选择API...

2020-07-02 14:50:37 393

原创 机器学习概述

1.什么是机器学习机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测。举例:数据集的构成:从历史数据中获得规律,这些历史数据是什么格式,保存在哪儿机器学习的数据:csv文件,因为有pandas。读取数据,处理数据速度快,基于numpy。为什么numpy快呢,因为numpy释放GIL锁,4个线程并行为什么不存在mysql中。mysql::性能瓶颈。读取速度慢,格式不符合机器学习要求的数据格式常用数据集数据的结构的组成特征工程:对特征进行处理特征工程

2020-06-30 22:54:08 142

原创 数据清洗,pca,one-hot编码,auc

鸢尾花有4个特征,不容易画图,我们可以使用PCA降维因为有 150个数据,每个数据有4个特征,所以是一个(150,4)的矩阵,使用PCA降维,XTX可以得到一个4行4列的矩阵,然后可以得到它的特征值和特征向量,得到特征值λ1,λ2,λ3,λ4和特征向量μ1,μ2,μ3,μ4.将λ从大到小排列,可以找到哪个特征向量μ的方向对结果影响最大,选择前两个μ建立坐标系。将样本投影到这个坐标系中考察降维后的样本方差:选择好特征该如何分类呢有的时候用直线没有很好的分类,这时候需要把特征升维,比如3个特...

2020-06-18 12:14:00 1202

原创 矩阵和线性代数

SDV提法范德蒙行列式正定阵:正定阵的判定:QR分解:向量的导数标量对方阵的导数:

2020-06-17 16:20:00 99

原创 概率与贝叶斯先验

给定某个正整数N,统计1-N!的所有数字中,首位数字出现1的概率进而可以计算出首位数字是2的概率,是3的概率,从而得到九点分布公路堵车概率模型:概率公式:贝叶斯公式常见的分布:两点分布:连续型beta分布指数族如果一个函数只有一个峰值,他很有可能是指数族分布,如果有多个峰值,那么一定不是指数族分布Logistic方程:Logistic函数/Sigmoid函数Gaussian分布也属于指数族分布事件的独立性:期望的性质:方差:

2020-06-17 12:29:03 97

原创 机器学习与数学分析

机器学习与本课程示例概述机器学习的角度看数学数学分析导数与梯度Taylor展式的应用概率论基础古典概率频率学派与贝叶斯学派常见概率分布Sigmoid/Logistic函数的引入假如有房价数据:这个函数越低越好。给定某一种学习方式,按照不断地迭代,到达最低点,这样有点,损失函数最小,认为是最优参数,需要解决的几个问题:1.模型是如何建立的(线性模型还是非线性模型)2.目标函数是如何得到的3.在迭代过程中,如何能让模型越来越好的学下去(梯度下降,牛顿法。。)4.有些超参数,需要调

2020-06-16 17:39:39 167

原创 球员能力图和股票K线图

观察图像,发现这张图由4个子图构成,每个都是极坐标,每个子图都是6个数据,分别是进攻,防守,盘带,速度,体力,射术。然后设置极坐标,并且使用随机数设置各项能力。到这里前期准备工作完毕设置单个球员:player[“M”] = np.append(player[“M”],player[“M”][0])ax1.plot(theta,player[“M”],“r”)ax1.fill(theta,player[“M”],“r”,alpha = 0.3)#把角度替换为leabelax1.set_x.

2020-06-15 18:26:54 140

原创 plt注释文字,美化及实战

注释如何给图片添加注释需要用到plt.annotate("",xy=() ,xytext =(),arrowprops = dict),分别是注释的内容,xy是箭头指向的坐标,xytext是文字起始的坐标,arrowprops(箭头)里面的参数:facecolor:颜色,frac是箭头的比例0-1,1是全部是箭头,0.5是一半都是箭头,0就是没有箭头,headwidth:箭头的宽度,width:键身的宽度如果在图中只画文字(没有箭头)使用plt.text()里面的参数第一个是横坐标,第一个是纵

2020-06-15 10:17:37 2756

原创 plt6种基本图形及基础

np的创建np的切片np调用函数6中基本图形的画法:散点图scatter(),4个参数,分别是c 点的形状,s点的大小,alpha透明度,marker点形状散点图显示2组数据的值,每个点坐标位置由变量的值决定由一组不连接的电玩城,用具观察两种变相的相关性例如:身高-体重,温度-纬度等散点图最大的作用就是研究两个变量的相关性相关性一般来说有三种:正相关,负相关和不相关这里两个变量,每个变量都是1000个随机数,看他们的相关性,可以看到,这个图形没有一个明显的趋势,所以可以判断x和.

2020-06-11 21:54:53 7031

原创 Pandas后续

pandas索引s = pd.Series(np.random.rand(5),index = list(“abcde”))我们也可以给索引命名:s.index.name = “alpha”df = pd.DataFrame(np.random.randn(4,3),columns = [“one”,“two”,“three”])df.indexdf.columns行索引和列索引都有名字这个属性,我们可以df.index.name方法进行命名df.index.name = “row”

2020-06-08 19:59:16 731

原创 pandas快速入门

用随机数创建dataframedata = pd.DataFrame(np.random.randn(6,4),index = dates,columes = list(ABCD))date.shape # 查看形状,返回(6,4)代表6行4列data.values #查看值字典创建dataframed = {“A”: 1,“B”:pd.Timestamp(“20130301”),“C”:range(4),"D"np.arange(4)}df = pd.DataFrame(d)查看数

2020-06-04 14:14:18 251

原创 Pandas

Pandas是python里分析结构数据化的工具集基础是numpy:高性能矩阵运算图形库matplotlib:提供数据可视化创建关键数据结构s = pd.Series([1,2,3,np.NaN,8,4])data = pd.DataFrame(np.random.randn(6,4),index = dates,cloums = list(“ABCD”))d = {“A”:1,“B”:2,“C”:rang(4),“D”:arange(4)}data.head() #默认查看前5行,括号中参数

2020-05-28 21:37:10 735

原创 数据科学包1

numpy:基于矩阵的运算。[1,2,3] [2,3,4]array = np.array([1,2,3], #list变成矩阵[2,3,4])输出结果[[1,2,3][2,3,4]]array.ndim #查看是几位数组array.shape #查看形状(几行几列)array.size #查看总共有多少元素np中的创建:1.np.array([[2,23,4],[3,22,12]],dtype = np.int) #这种方式用列表的方式去创建,array的type是dt

2020-05-23 17:30:29 74

原创 第八章

方法没有重载,在python中,后面定义的同名方法会覆盖前面的方法私有属性和私有方法(实现封装)python对于类的成员没有严格的访问限制。2个下划线开头的属性是私有的,类内部可以访问私有属性,外部不能直接访问,但是可以通过_类名_私有属性名访问@property装饰器@property可以将一个方法的调用方式变成“属性调用”,一般用来给属性增加get和set方法封装,多态,继承封装:隐藏对象的属性和细节,只对外提供必要的方法。相当于把细节封装起来,只对外暴露相关调用方法,就比如设计一款手机

2020-05-23 16:01:20 101

原创 第七章

嵌套函数(内部函数):在函数内部定义的函数定义在一个函数中,同时也在这个函数中调用,出了函数就无法使用def outer():print(“outer runing”)def inner01(): print("inner01 runing")inner01() #只能在outer内部使用outer()好处:1.封装-数据隐藏外部无法访问嵌套函数2.贯彻DRY(don‘t repeat yourself)原则嵌套函数可以让我们在函数内部避免重复的代码3.闭包关键字nonl

2020-05-19 23:22:20 93

原创 第六章

函数也是对象,测试一下:

2020-05-17 13:20:33 159

原创 第五章

for循环通常用于可迭代对象的遍历for 变量 in 可循环对象:循环体语句比如:for x in (1,2,3):

2020-05-12 23:25:26 115 1

原创 第四章

字典键值对;无序键:是任意不变数据(整数,浮点数,字符串或者元组。列表,字典,集合属于可变对象,不能作为键,并且键不能重复(后面的键会覆盖前面的键))值可以是任意数据,并且可以重复字典的创建:a = {1:10,2:20} #不用dict,就需要使用:a = dict{name = “zhangsan”,age = 10}a = dict([(“name”,“zhangsan”),(“age”,18)])#列表中添加元组a = {} #创建空对象字典d = dict{}需要了解的:zi

2020-05-11 14:59:12 154

原创 第三章

基本运算符:and, or, notis,is not<,<=,>,>= ,!= ==|,^,&<<.>>~a = 0b11001b = 0b01000a25b8bin(a|b)“0b11001”bin(a&b)“0b01000”bin(a^b)“0b10001”a = 3a<<2 #左移一位相当于乘以2,左移两位就是乘412b = 12b>>34序列:字符串,列表

2020-05-09 18:44:19 111

原创 第二章

int float str bool时间:时间的本质也可以当做是一条线。unix时间点:1970年1月1如00:00:00开始,毫秒(1/1000)为单位进行计算。通过导入时间模块:time.time()获得当前时刻。返回值是毫秒,带微秒的浮点值。保存当前的秒数(精确到秒)b=int(time.time())print b分钟totalMinutes = b/60totalMin...

2020-05-07 13:59:06 191

原创 python基础,python解释器,python开发环境,IDLE,pycharm,turtle模块绘制图像

5.51.python:解释型语言2.Python解释器:Cpython:使用c语言实现的解释器,最常见的解释器Jython: java实现的解释器IronPython: .net实现的解释器PyPy:python: 实现的解释器3.安装Python要注意:到Advanced Options步骤的时候。选择:Add Python to environment variables(...

2020-05-05 23:33:43 286

空空如也

空空如也

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

TA关注的人

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