- 博客(52)
- 资源 (1)
- 收藏
- 关注
原创 Bayesian Rstan学习资料推荐
Bayesian Data Analysis”(第三版)by Andrew Gelman, John B. Carlin, Hal S. Stern, David B. Dunson, Aki Vehtari, and Donald B. Rubin(尽管这本书不是专门关于 Stan,但它是贝叶斯分析的经典教材,可以帮助您更好地理解使用 Stan 进行的建模背后的原理)。论坛和社区:Stan 社区和论坛是寻求帮助和分享经验的好地方。RStan 文档: https://mc-stan.org/rstan/
2023-04-14 21:36:52
558
1
原创 贝叶斯分层模型(Hierarchical Models)
许多统计应用涉及多个参数,这些参数可以通过问题的结构以某种方式被视为相关或连接,这意味着这些参数的联合概率模型应该反映它们的相关性。例如,在一项关于心脏治疗效果的研究中,由于j医院的患者具有生存概率θj,因此可以合理地预期θj的估计值(代表医院样本)应该相互关联。如果我们使用先验分布,其中θj的估计值被视为普通种群分布的样本,我们将看到这是以自然的方式实现的。这种应用的一个关键特征是,观测到的数据y ij,在以j为索引的组中以i为索引的单位,可以用来估计θj的种群分布,即使θj。
2023-03-21 20:41:30
5907
原创 RStan Tuturial
第15章向我们展示了哈密顿蒙特卡罗(HMC)与旧的随机行走大都会和吉布斯算法相比的威力。然而,这种能力是以额外的复杂性为代价的。此外,在HMC中,就像在Random Walk Metropolis中一样,需要调整算法以确保其有效地遍历后验空间。这两个方面可能会使实现HMC成为一种预兆,甚至对于更有经验的MCMCer来说也是如此。幸运的是,对于贝叶斯统计的许多应用,我们不需要:Stan[8]为我们做了艰苦的工作。
2023-03-21 09:26:06
418
2
原创 信息级联(Information cascade)
信息级联或信息级联是行为经济学和网络理论中描述的一种现象,在这种现象中,许多人以一种连续的方式做出相同的决策。它与从众行为相似,但又不同于从众行为。
2023-02-04 15:47:55
3396
1
原创 机器学习——算法进阶(一)
的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。而在实际的应用中,我们分解的大部分都不是方阵。的坐标轴,新的坐标轴的选择与数据本身是密切相关的。...
2022-07-25 14:11:59
341
原创 机器学习基础(七)——k-means聚类
1、随机设置K个特征空间内的点作为初始的聚类中心2、对于其他每个点计算到K个中心的距离,未知的点选择最近的一个聚类中心点作为标记类别3、接着对着标记的聚类中心之后,重新计算出每个聚类的新中心点(平均值)4、如果计算得出的新中心点与原中心点一样,那么结束,否则重新进行第二步过程k-means聚类:开始的聚类中心数量:初始化方法,默认为’k-means ++’:默认标记的类型,可以和真实值比较(不是值比较)一般应用场景的流程:1、降维之后的数据2、k-means聚类3、聚类结果显示轮廓系数...
2022-07-11 17:33:55
558
原创 机器学习基础(六)——逻辑回归Logistic Regression
逻辑回归是用来做二分类任务的,输出为:hθ(x)=g(θTx)=11+e−θTxh_\theta(x)=g(\theta^Tx)=\frac{1}{1+e{-\theta^Tx}}hθ(x)=g(θTx)=1+e−θTx1g(z)=11+e−zg(z)=\frac1{1+e^{-z}}g(z)=1+e−z1其中,zzz是线性回归的结果。cost(hθ(x),y)={−log(hθ(x))y=1−log(1−hθ(x))y=0cost(h_\theta(x),y)=\left\{
2022-07-11 17:28:24
1206
1
原创 机器学习基础(五)——线性回归/岭回归/lasso回归
线性回归的本质就是:y=wTx+by = w^Tx+by=wTx+b求解:wTw^TwT(wT,b)(w^T,b)(wT,b)是系数(coefficient),xxx是特征值,yyy是目标值(label)。目的是找到最小损失对应的W:通常有两种方法,一种是正规方程,一种是梯度下降。(1)正规方程:w=(XTX)−1XTyw = (X^TX)^{-1}X^Tyw=(XTX)−1XTy(2)梯度下降:α\alphaα为学习速率,需要手动指定,沿着函数下降的方向找到山谷的最低点,每一步更新www值。1、加州地区房
2022-07-05 20:08:38
1576
原创 机器学习基础(四)——决策树与随机森林
一、知识概要(一)决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法。信息熵:H=−(p1logp1+p2logp2+...p3logp3) H = -(p_1logp_1+p_2logp_2+...p_3logp_3)H=−(p1logp1+p2logp2+...p3logp3)H称之为信息熵,单位为比特。32支球队,log32=5比特;64支球队,log64=6比特当这32支球队夺冠的几率相同时,对应的信息熵等于
2022-07-04 17:11:14
1552
1
原创 机器学习基础(三)——KNN/朴素贝叶斯/交叉验证/网格搜索
(1)KNN概念:k个最近的邻居,即每个样本都可以用它最接近的k个邻居来代表。(K Near Neighbor)(2)算法思想:一个样本与数据集中的k个样本最相似, 如果这k个样本中的大多数属于某一个类别, 则该样本也属于这个类别。(3)距离度量:一般是用欧式距离,L2范数即可。(4)K值的选择:如果选择较小的K值,相当于在较小的邻域中进行预测,学习的近似误差会减小;缺点是学习的估计误差会增大。如果邻近点恰巧是噪声,预测就会出错。K值减小就意味着整体模型变复杂,容易发生过拟合。如果选择较大K值,就相当于用较
2022-07-02 14:52:37
1070
原创 机器学习基础(二)——训练集和测试集的划分
注意返回值:训练集 train x_train, y_train 测试集 test x_test, y_test以上展示了两种不同类型的数据集,一种target为离散型(类别),一种为连续型(价格)。fit( ): Method calculates the parameters μ and σ and saves them as internal objects.可以理解为在对数据集进行转换操作之前,对数据的一些基本属性如:均值,方差,最大值,最小值做个类似pd.in
2022-06-28 16:14:41
6685
1
原创 机器学习算法基础(一)
1.1 分类特征变量提取方法: cv.fit_transform() 里面传入data目的: 将数据转换成目标类型的列表1.2 文本特征提取1.2.1 文档中词的出现说明: 1表示出现,0表示这个词没有出现将文本文档的集合转换为计数矩阵(scipy.sparse matrices)方法: cv.fit_transform(raw_documents,y)目的: 学习词汇词典并返回词汇文档矩阵toarray() 的方法将输出的数据numpy的数组形式1.2.2 tf-idf词的重要性表示skl
2022-06-25 21:41:34
276
原创 数据科学库Python——时间序列数据的学习
目录 案例实操 问题描述一:统计出这些数据中不同类型的紧急情况的次数。方案一:set方法方案二:for遍历整个DataFrame方案三:添加一列,然后分类Groupby时间序列分析(一)生成一段时间范围(二)在DataFrame中使用时间序列(三)pandas重采样(一)数据初始化操作(二) 统计出911数据中不同月份电话次数(三)可视化分析——画图 拓展练习——911数据中不同月份不同类型的电话的次数的变化情况首先,导入一些基础的数据分析包,读取数据信息,查看数据head和info() 问题描述
2022-06-21 22:33:54
1339
原创 数据科学库Python——Pandas使用基础
Pandas使用基础注:numpy可以帮我们处理数值型数据,但是pandas除了处理数值之外(基于numpy),还能够帮助我们处理其他类型的数据。一、Series的使用基础(1)通过pd.Series来创建数组import pandas as pdt = pd.Serires([12,34,25,75,67,87,54])print(t)print(type(t))# 输出结果为:0 121 342 253 754 675 876 5
2022-05-25 16:07:25
863
原创 数据科学库Python版——Numpy的操作
numpy创建数组(矩阵)import numpy as np# 创建数组 # 三种不同的方式生成相同的内容a = np.array([1,2,3,4,5])b = np.array(range(1,6))c = np.arange(1,6)print(a)print(b)print(c)print(a==b)print(a==c)print(c==b)# 注意np.array(range())和np.arange()的写法区别print(type(a))[1 2 3 4 5
2022-05-17 00:37:36
1233
原创 数据科学库Python——matplotlib绘制散点图/条形图/直方图
matplotlib:最流行的Python底层会图库,主要做数据可视化图表,名字取材于matlab。axis:坐标轴的意思
2022-05-12 15:15:54
2191
原创 科学数据库Python——matplotlib画折线图
matplotlib绘制折线图基础操作matplotlib基础绘图设置图片大小保存到本地调整x或者y轴刻度的间距解决matplotlib的中文乱码问题标题、x轴和y轴的描述信息线条的样式为每条线添加图例设定颜色和线条宽度等给图片添加一个水印(防伪,防止盗用)matplotlib基础绘图from matplotlib import pyplot as plt # 导入画图工具包x = range(2,26,2)y = [15,13,14.5,17,20,25,26,26,24,22,18,15]#
2022-05-11 00:58:05
2228
原创 算法与数据结构Python——Lesson6
二叉树的基本概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二叉树的遍历树的遍历是树的一种重要的运算。所谓遍历是指对树中所有结点的信息的访问,即依次对树中每个结点访问一次且仅访问一次,我们把这种对所有节点的访问称为遍历(traversal)。那么树的两种重要的遍历模式是深度优先遍历和广度优先遍历,深度优先一般用递归,广度优先一般用队列。一般情况下能用递归实现的算法大部分也能用堆栈来实现。深度优先遍历
2022-05-07 18:18:27
139
原创 数据结构与算法Python——Lesson5
希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。基本步骤:将数组列在一个表中并对列分别进行插入排序,重复这过程,不过每次用更长的列(步长更长了,列数更少了)来进行。最后整个表就只有一列了。将数组转换至表是为了更好地理解这算法,算法本身还是使用数组进行排序。def shell_sort(alist): n =len(alist) # 初始步长 gap = n // 2
2022-05-03 17:41:23
170
原创 WS小世界网络构建实验(Matlab版)
WS小世界网络构建实验(Matlab版)一.构造原理思路1.小世界模型3个参数,N为点的数目,K表示每个点左边K/2个邻居,右边K/2个邻居,一共K个邻居,P代表每条边以多少概率重连2.首先给定这三个参数3.画出以圆为轮廓的N个点4.给出邻接矩阵A,将初始图像(每个点和邻居有边)的边存放在这里(先不画出来,就存在矩阵里,到时候边改过后再画)5.修改边(其实是修改邻接矩阵)6.按照邻接矩阵画出最后的图像二.代码解析首先设定模型的初始的三个参数N=100 // 给定一百个点K=4
2022-04-26 15:32:58
3126
4
原创 数据结构与算法(Python)——Lesson4
冒泡排序def bubble_sort(alist): for j in range(len(alist)-1,0,-1): # j表示每次遍历需要比较的次数,是逐渐减小的 for i in range(j): if alist[i] > alist[i+1]: alist[i], alist[i+1] = alist[i+1], alist[i]li = [54,26,93,17,77,31,4
2022-04-25 21:53:40
162
原创 数据结构与算法(Python)——Lesson3
双向链表一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。class Node(object): """双向链表节点""" def __init__(self, item): self.item = item self.next = None self.prev = Noneclass DL.
2022-04-25 16:28:05
109
原创 数据结构与算法Python- Lesson3
链表链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。通俗来讲,链表就是由节点组合起来的一条数据链,其中每个节点不仅包含了自己保存的数据,还记录下个节点指向的信息。模拟单向链表的内存管理向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。表元素域elem用来存放具体的数据。 链接域next用来存放下一个节点的位置(python中的标识) 变量p指.
2022-04-19 14:13:55
139
原创 数据结构与算法(Python)——Lesson2顺序表
内存存储的最小单位为字节(Byte),一个字节由8位组成,内存就是由无数个字节按照顺序排列起来的。在Python中,所有的值都与内存相关,例如正常的int类型或者在str类型,并且在32位机子中,一个int类型的值在内存中是由4个字节存储。如果存了一个int型1,那么在内存中为:00000000000000000000000000000001字符串是由一个或多个字符组成的,一个字符在内存中是由一位存储的。顺序表的概念在程序中,经常需要将一组(通常是同为某个类型的)
2022-04-14 12:44:55
154
原创 数据结构与算法(Python)——Lesson1
算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用。算法是独立存在的一种解决问题的方法和思想。对于算法而言,实现的语言并不重要,重要的是思想。算法可以有不同的语言描述实现版本(如C描述、C++描述、Python描述等),我们现在是在用Python语言进行描述实现。算法的五大特性输入: 算法具有0个或多个输入 输出: 算法至少有
2022-04-12 12:48:13
215
原创 Python基础正则表达式re模块
需求的描述:存在四个对象:我方飞机、敌方飞机、我方子弹、敌方子弹功能:背景音乐的添加我方飞机可以移动【根据按键来控制的】敌方飞机也可以移动【随机的自动移动】双方飞机都可以发送子弹步骤:1.创建一个窗口2.创建一个我方飞机 根据方向键左右的移动3.给我方飞机添加发射子弹的功能【按下空格键去发送】4.创建一个敌人飞机5.敌人飞机可以自由的移动6.敌人飞机可以自动的发射子弹安装pygame过程中,使用命令pip install pygame -i Simple Inde
2022-04-10 11:57:48
740
原创 Python命令行参数
import argparse# 创建一个解析器对象parse=argparse.ArgumentParser(prog='系统登录', usage='%(prog)s [options] usage', description='系统自定义命令行的文件',epilog = 'my - epilog')# 添加位置参数【必选参数】parse.add_argument('loginType',type=str, help='登录系统类型.
2022-04-02 21:34:29
250
原创 Python垃圾回收机制
Garbage Collection(GC)现在的高级语言如Java,C#等,都采用了垃圾收集机制,而不再是C,C++里用户自己管理维护内存的方式。自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄露,悬空指针等bug埋下隐患。对于一个字符串、列表、类甚至数值都是对象,且定位简单易用的语言,自然不会让用户去处理如何分配回收内存的问题。Python里也同Java一样采用了垃圾收集机制,不过不一样的是: Python采用的是引用计数机制为主,标记-清除和分代收集两种机制为辅的策略
2022-04-02 21:26:59
81
原创 Python基础——os模块
os模块提供了多数操作系统的功能接口函数1.os.name——name指操作系统的名字,主要作用是判断目前正在使用的平台,并给出操作系统的名字,如Windows 返回 'nt'; Linux/mac 返回'posix'。注意该命令不带括号。注意:os.name 该条命令不需要带括号( ),使用其余os模块的命令基本上都要带括号里面的参数。例如:mac操作系统2.os.getcwd()——全称是'get current work directory',获取当前工作的目录;..
2022-03-31 15:16:00
2910
1
原创 Python中文件定位的学习
tell()文件定位,指的是当前文件指针读取到的位置,光标位置。在读写文件的过程中,如果想知道当前的位置,可以使用tell( )来获取。tell( ):查看读取的位置在哪里. //返回指针当前所在的位置with open('Test.txt','r') as f: print(f.read(4)) print(f.tell()) print(f.read(5)) print(f.tell())#对于中文来讲,每次读取到的一个汉字实际上占用了三个字节.
2022-03-30 23:03:37
1007
原创 Python中的文件备份
在Python中实现简单的文件读取、备份,小型文件直接一次性读取到内存中,对于大型文件就通过循环的方式每次读取1024个字符,利用with语句的命令来实现功能。
2022-03-30 11:24:01
2761
原创 Python文件操作
1.打开文件在Python中打开文件使用open函数,可以打开一个存在的文件,或者创建一个文件。语法格式:open.('文件名称','打开模式') ##File,mode打开文件时,需要指定文件路径和以什么方式打开文件。w: 只能写,不能读,文件存在的时候回清空文件后再写入内容;文件不存在的时候会创建文件后写入内容。# 以字符串的形式来写数据fobj = open('./Test.txt','w',encoding='utf-8')## w:打开一个文件只用...
2022-03-28 22:42:46
1088
原创 Python飞机大战
需求的描述:存在四个对象:我方飞机、敌方飞机、我方子弹、敌方子弹功能:背景音乐的添加我方飞机可以移动【根据按键来控制的】敌方飞机也可以移动【随机的自动移动】双方飞机都可以发送子弹步骤:1.创建一个窗口2.创建一个我方飞机 根据方向键左右的移动3.给我方飞机添加发射子弹的功能【按下空格键去发送】4.创建一个敌人飞机5.敌人飞机可以自由的移动6.敌人飞机可以自动的发射子弹安装pygame过程中,使用命令pip install pygame -i Simple Inde
2022-03-24 12:43:41
4647
原创 Python私有属性和方法
# 私有属性和方法# 定义一个父类class Person(object): # 初始化方法 def __init__(self, name, age): # 实例属性 self.mingzi = name # 私有属性 self.__nianling = age # 私有方法 def __drink(self): print('哈啤酒') pass pass.
2021-12-21 14:38:48
699
原创 Python装饰器Demo
编写一个@time_it的装饰器(代码如下所示)。如果你想打印出某个函数或程序运行时间,只需在函数前面@一下import timedef compute_time(func): def inner(): start=time.time() func() end = time.time() print('用时:{}秒'.format(end-start)) pass return inner@comp.
2021-12-21 14:15:16
543
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人