自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 李宏毅老师ML_HW1——PM2.5预测

0、处理数据之前的pre-process观察下载的数据文件train.csvtrain.csv只有每个月前20天的数据,另外每个月剩下10天数据用于作业结果评估,对学生不可见观察数据发现rainfall栏有很多NR表示没有降雨,但是我们只需要数字,因此可以使用excel的替换将NR替换为0,之后再进行处理作业要求:前9小时作为训练集,第10小时的PM2.5作为实际结果,实际一共有18个特...

2020-03-09 13:25:46 1106 4

原创 ML Backpropagation算法的计算过程举例

Backpropagation计算过程举例初始权重(initialize weights)是随机产生的(如-1~1之间)初始化可以选择均值为0,方差为1/n_in的正态分布,n_in为输入的实例个数,Python中可使用np.random.normal函数来初始化权重:np.random.normal(0, 1/3, size=(2, 3))初始化了均值为0,方差为1/3的2行3列矩阵,对应输入层3个结点、隐藏层2个结点的情况正向计算结点值X为实例向量,w为权重,θ为偏向(bias),对于inpu

2019-09-15 00:53:40 534

原创 非线性回归(Non-linear Regression)

非线性回归应用(Logistic Regression Application)import numpy as npimport random# 一个函数为梯度下降的算法def GradientDescent(x,y,theta,alpha,m,numInterations):# m denotes the number of examples here, not the number ...

2019-08-04 20:47:09 2118

原创 聚类(Clustering): K-means算法

聚类(Clustering): K-means算法1.归类:聚类(clustering)属于非监督学习(unsupervised learning)无类别标记( class label)3. K-means 算法:3.1 Clustering 中的经典算法,数据挖掘十大经典算法之一3.2 算法接受参数 k ;然后将事先输入的n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚...

2019-08-04 20:42:47 838

原创 聚类(Clustering):hierarchical clustering 层次聚类及其应用

聚类(Clustering):hierarchical clustering 层次聚类及其应用clustering实现:from numpy import *import math#基于matrix计算的pakage#定义树形结构图的结点,当再往上两则分为一类时则将其连接起来#用面向对象(class)的方法实现此次的代码:class cluster_node: def __...

2019-08-04 20:35:44 836

原创 简单线性回归(Simple Linear Regression)和多元线性回归(Multiple Regression)学习笔记

简单线性回归(Simple Linear Regression)上0.前提介绍:为什么需要统计量?统计量:描述数据特征0.1集中趋势衡量0.1.1均值(平均数,平均值) (mean):(求和除以个数,Ex也可以表示x求均值)0.1.2中位数(median) : 将数据中的各个数值按照大小顺序排列,居于中间位置的变量0.1.2.1.给数据排序: 1,2,2,6,90.1.2.2.找...

2019-08-01 00:52:47 8659

原创 回归中的相关度和R平方值 学习笔记

回归中的相关度和R平方值自变量x和因变量y的相关度1.皮尔逊相关系数(Pearson Correlation Coefficient):1.1衡量两个值线性相关强度的量1.2取值范围[-1,1]:正向相关: >0,负向相关: <0,无相关性: =0公式:correlation, correlationvariance(Cov):协方差(两个量相关方差) Var:方差变...

2019-08-01 00:07:44 7171

原创 非线性回归(Non-linear Regression)学习笔记

非线性回归(Non-linear Regression)1.概率:1.1定义概率§robability:对一件事情发生的可能性的衡量1.2范围 0<=P<=11.3计算方法:1.3.1根据个人置信1.3.2根据历史数据1.3.3根据模拟数据1.4条件概率:(A发生的条件下B发生的概率)逻辑回归(Logistic Regression)x∈(-∞,+∞),y∈(0...

2019-07-31 23:55:33 9869

原创 记录腾讯云重置密码之后ssh就连不上的踩坑

想起了以前ssh有时连不上时是自己手动在服务器开启防火墙端口放行的,于是使用lighthouse免密登录,查看防火墙放行端口,使用ufw命令查看,发现没有放行端口,最后手动添加放行端口,然后无论是xshell还是控制台的ssh连接立马就通了所以这应该可以理解是腾讯云控制台显示的防火墙有问题?(尽管最开始应该是有效的)放出我执行的过程截图和最后的状态:手动修改防火墙放行端口,最开始status不是active的sshd_config的修改ubuntu用户使用密钥能登录了root密码也能登录了。

2023-11-04 21:23:43 1615

原创 Python中的多线程和多进程应用模拟以及协程程序中使用多线程和多进程

总而言之,虽然说GIL的存在限制了同一个进程下同一时刻最多允许一个线程运行,但也有例外,这个例外就是使用线程池开启新的线程loop.run_in_executor后台执行,这个在新的线程中运行的任务,虽然仍然是当前进程下的线程在执行,但是它不会受到当前进程的GIL存在的影响,它可以和当前进程中的其他线程并行运行。从结果来看,一个1s左右的CPU密集运算函数(cpu_bound_task),和1个1s异步sleep的函数(coro_task),受到了GIL的限制,其运行时间是2s左右,很合理。

2023-08-21 18:58:38 374

原创 MySQL同样条件的SQL,多查询1个字段得到的记录却不一样?MySQL内部优化机制引起未预期的查询结果

如果没有默认优化,查询方式一样,那么结果也会是一样的,优化之后可能会导致上面这种查询结果不一样的情况,而且官方也宣称了优化也不一定保证是更快的,有时可以考虑自己加上force index不走扫表方式查询。再对limit 1000的两条语句使用explain查看说明会发现两者查询方式相同,都是走index,因为查询的是浅分页,数据比较靠前,MySQL优化机制认为走index回表查询效率更高,因此没有选择扫表的方式查询。很明显这两条SQL的条件一模一样,只是查询的列数不相同而已,为什么得到的结果却是不一样的?

2023-07-15 12:20:32 962

原创 使用pands.rolling方法实现移动窗口的聚合计算

rolling中还有一个center参数,可以指定移动窗口的中心位置作为基准对数据执行计算,center默认为False表示当前数据作为窗口的最后一个数作为基准选取计算的区域,为True的时候将以当前数据作为窗口的中心位置作为基准选取数据执行计算:窗口大小是奇数时,如上图一样上下各平分一般窗口计算区域,如果窗口大小是偶数,上半窗口会多多一个数,比如窗口是4,那么上半区域是2个数,下半区域是1个数,加上自身一共4个数支持指定时间窗口的条件:index必须是python的时间类型。

2023-04-30 23:53:35 1006

原创 I/O多路复用与python实现epoll过程逐步解释

I/O多路复用机制是指一个线程兼顾地同时处理多个IO流,详细来说就是在只有一个线程的i情况下,I/O多路复用允许内核中同时存在多个监听套接字(listening socket)和已连接套接字(connected socket),内核会持续监听这些套接字,一旦接收到某套接字的连接请求或数据等,就会将这个事件交给主线程去处理,不同于一个线程阻塞的监听等待一个套接字,I/O多路复用的方式实现了一个线程同时可以处理多个IO流的效果。前面说到了epoll改进了select的三个缺点,没有具体细说,这里继续解释。

2023-03-01 00:01:37 571

原创 使用异步ORM SQLAlchemy提升web服务性能

对于一个web服务,性能的瓶颈最终基本上都会出现在数据库读取的这一步上,如果能够在数据库读取数据的这一段时间自动切换去处理其他请求的话,服务的性能会得到非常显著的提升,因此需要选择一个合适的异步驱动和工具包,以最通用和常用为出发点,选择aiomysql + sqlalchemy介绍一些比较好的实践,SQLAlchemy的一些用法和最佳实践介绍一个使用SQLAlchemy连接实现pandas的异步read_sql_query方法的实现

2022-12-31 18:45:49 2401

原创 两种方式实现websocket获取数据库查询进度

本文实现了两种方式用websocket连接实现前端通过API获取数据库查询进度,作为websocket初步学习的参考。

2022-11-20 17:31:36 2403

原创 Sanic服务启动失败,报错Cannot finalize with no routes defined

Sanic服务启动失败报错Cannot finalize with no routes defined

2022-11-17 22:52:48 1378

原创 DataFrame高效处理行列数据/倒三角型数据/处理阶梯型数据/根据列的值确定行的值

在使用pandas处理数据时,遇到了一种要按照留存天数来处理的数据,当列所对应的日期超过了最晚的“今天”那么数据就要置为0

2022-10-31 23:39:20 523

原创 解决dataframe中放到web返回中包含nan和inf导致json序列化报错的问题

实际上,与其做一些各种操作把nan、inf等不合法的字符替换(顺便可能带回一些副作用,比如数值列的nan是无法替换为None的),使用df的。等值,要放到json结构体中然后json序列化之后返回给web前端处理。你有个df,里面的数据可能包含。会在传到前端后会序列化失败。

2022-09-11 10:37:43 925

原创 Python解决多个进程服务重复运行定时任务的问题

问题:web项目运行多个实例时,定时任务会被执行多次的问题举例来说我使用库APScheduler排定了一个定时任务在每天的晚上9点需要执行一次,我的web服务使用分布式运行了8个实例,于是在每天晚上的9点,我的8个服务都会接收到APScheduler发布的这个定时任务,然后每个服务都会执行一次这个定时任务,这与我预期的只执行1次是不符的,我想要解决这个问题,让定时任务只被执行一次设想的解决方式:使用redis分布式锁的方式(redis.setnx(key, value))让实例只能运行一次定时任务,从而

2022-09-03 17:14:41 2718

原创 Pyscript,创建一个能执行crud操作的网页应用

观察pyscript在github的源码,确定要如何编写继承的类"content" : item , "created_at" : datetime . now() } # labels是展示的名称 return super() . add(item , labels = [ "content" ])其中和是本次要使用的pyscript类,主要内容是对前端item和list的操作这里没有导入会IDE抛红,不过不需要理会,这些类方法只会在HTML中执行PyList。...

2022-08-06 17:28:57 547

原创 Pyscript,使用Python编写前端脚本

Pyscript的入门介绍

2022-07-31 12:52:31 3754 4

原创 基于sanic的服务使用celery完成动态修改定时任务

sanic,asyncio、celery动态修改定时任务

2022-06-25 12:09:28 1714 2

原创 Python trino执行hive insert overwrite不生效的问题

使用python的trino包执行insert overwrite,但是overwrite却没有生效的问题根据trino的官网介绍的insert overwrite的开启方式,开启hive的insert overwrite会话,使当前会话的insert into语句支持insert overwrite,也即支持插入数据根据分区覆盖更新的功能但是在使用Python代码执行时总是没有生效,在花了不少时间debug之后,终于找到了原因竟是因为开启insert overwrite session的语句没有执行fet

2022-06-25 11:49:31 1802

原创 Python套接字编程Socket Progaming——1

本篇文章是Network And Web Programing-Socket Programing分类中的第一篇文章,内容主要包含Socket概念理解Socket programing介绍一个简单的TCP协议的server-client连接程序理解socket概念一个socket确定了网络中两个应用的端口之间的唯一连接方式,一个socket包含三个部分:协议方式(TCP, UDP或IP)、IP地址和端口号PORT,端口号是一个整数代表着一个进程,为了唯一确定端口之间连接,还需要指定使用的协议类

2022-05-29 16:37:59 641

原创 面试题:N皇后问题,思路和python解题笔记

n皇后问题算法解析,python问题描述n皇后问题,在n×n的棋盘上,解出n个皇后所有不能互相攻击的摆法,皇后在数组中用“Q”表示,空地用“.”表示返回的数据结构格式要求:[[“.Q…”,“…Q”,“Q…”,“…Q.”],[“…Q.”,“Q…”,“…Q”,“.Q…”]]注:皇后在棋盘中的攻击范围是横、竖、左和右中位线的四个方向解题思路分析红色划线部分为皇后的攻击范围,不可以放另外一个皇后横竖方向的限制很容易:只要与当前Q的行和列相同的index的部分全部禁止即可关键的难点是如何处理左右斜

2022-04-30 22:16:39 1366

原创 Python缓存类实例

本篇文章的内容主要包含利用Python弱引用存储字典缓存类的实例,让参数相同的实例不用重复生成略过代码编写,利用Python自带库缓存实例或方法在Python的许多库中都有缓存实例的例子,比如logging模块的Logger类实例import logginga = logging.getLogger("abc")b = logging.getLogger("abc")print(a is b) # True弱引用(weakref)通常用于缓存或映射数据量较大的对象,当你使用p

2022-04-02 20:14:22 1837

原创 Python实现访问者模式

假设要实现一个存放多种类型数据结构的对象,比如一个存放算术操作数和操作符的树结点,需要存放包含一元操作符、二元操作符和数字类型的结点class Node: passclass UnaryOperator(Node): def __init__(self, operand): self.operand = operandclass BinaryOperator(Node): def __init__(self, left, right):

2022-03-29 23:13:10 1268

原创 Python 代理类实现和控制访问与修改属性的权限

代理类实现与实例展示将一个类实例的属性访问和控制代理到代码内部另外一个实例类,将想对外公布的属性的访问和控制权交给代理类来操作,保留不想对外公布的属性的访问或控制权,比如只读访问,代理类的方式也可以作为继承的一种替代方式,代理类可以做的一些事情代理类的一个简单的实现方式示例目标:实现类Product的实例属性让另一个类Proxy来代理访问和控制,想将对外公布的属性交给代理类让外部访问和控制,不想对外公布的属性无法通过代理来访问和控制,这里不想对外公布的属性约定用下划线命名开头# proxy_exa

2022-03-20 12:47:47 1439

原创 写一个包含多个事件四则运算的留存SQL ——impala hive

在实现一个业务留存需求时,我遇到了一个难题:我需要提供展示一个按照如下图格式的数据,

2022-02-26 16:16:12 1725

原创 Python写一个字符串的数字后缀部分递增的函数

需求:Python处理重名字符串,添加或递增数字字符串后缀对于2个重名的字符串,添加数字后缀,比如两个重复的字符串s1 = “name”, s2 = “name”,将s2的名称设置为name_1对应3个或多个重名的字符串,数字部分实现递增,初始时s1=s2=s3=“name”,重命名后得到s1=“name”, s2=“name_1”, s3=“name_2”要灵活处理字符串问题,使用re模块最为方便下面是一个对带有下划线+数字的后缀字符串递增的方法def increase_string_su

2022-01-29 21:26:25 2163

原创 将Win10包含中文的用户名改为英文的,同时解决Anaconda navigator无法运行jupyter的问题

Win10用户名中文字符导致无法在Anaconda navigator直接运行jupyter的问题本篇文章内容包含:WIN10如何修改"C:\Users\用户名"中的用户名执行1后将用户名修改为英文名后可以在Anaconda navigator启动jupyter等插件修改WIN10"C:\Users\用户名"中的用户名准备:1.需要修改名称的账号; 2.一个管理员账号,或者拥有管理员权限的账号.修改登录win10的账号使用全英文名的账号登录,可以选择微软账户登录也可以使用本地账户登录修

2022-01-17 16:56:33 4996 4

原创 动态规划思路和Python解决零钱兑换问题和最大乘积子序列的乘积的问题

动态规划是一种主要用来优化朴素递归的方法,每当输入不同值调用递归函数出现大量重复的(子)输入和调用(返回结果)时,就可以考虑使用动态递归的方式来优化复杂度。动态规划的主要思想是存储子问题的结果,以便于在接下来可能出现的的重复子问题中直接使用已有的结果,这样子便可以将时间复杂度从指数级别降低到多项式(nlogn…)或线性级别,是一种以空间换时间的算法。以一个简单的斐波那契数列的为示例:几个问题的示例不同路径问题,DP解法:零钱兑换问题,DP解法求最大乘积子序列(的乘积),DP解法...

2021-12-27 23:03:47 839

原创 python 嵌套型partials(nested partials)的使用

def _compose2(time_fmt):date_trunc = CstFunc().DateTruncfrom_timestamp = CstFunc().FromTimestampreturn lambda time_unit, field: from_timestamp(date_trunc(time_unit, field), time_fmt)def ts(f, tu):return partial(f, tu)class Te(Enum):week = ts(_compos

2021-12-27 22:30:38 660

原创 报错curl: (7) Failed to connect to 127.0.0.1 port xxxx: Connection refused

(pyenv install xxx) 报错curl: (7) Failed to connect to 127.0.0.1 port xxxx: Connection refused的解决方法问题重现截图:在查看下面的原因和使用解决方法之前,确保自己的pyenv已经安装好了最新的python-build,执行python-build命令看是否有效果如果没安装好,可以执行pyenv的python-build安装:cd ~/.pyenv/plugins/python-build &&amp

2021-12-19 13:16:28 25858

原创 pandas处理日期的几种常用方法

1.读取字符串日期写入csv 文件 csv_text = """date, value2022-01-01, 12022-01-05, 52022-11-05, 5"""with open("date_text.csv", "w") as f: f.write(csv_text)读取日期df = pd.read_csv("date_text.csv")print(df)print(df.dtypes)输出 date value0 2022-

2021-11-28 16:10:18 9897

原创 Python enum的使用总结

枚举(enumeration)在许多编程语言中常被表示为一种基础的数据结构使用,枚举帮助组织一系列密切相关的成员到同一个群组机制下,一般各种离散的属性都可以用枚举的数据结构定义,比如颜色、季节、国家、时间单位等在Python中没有内置的枚举方法,起初模仿实现枚举属性的方式是class Directions: NORTH = 1 EAST = 2 SOUTH = 3 WEST = 4使用成员Direction.EAST Direction.SOUTH 检查成员

2021-11-20 11:40:57 5876

原创 Python导包、模块报错的问题

import报错No module named "xxx"问题如何将指定目录作为项目根目录,让项目根目录下的包/模块都可以直接导入?(linux下)示例:目录层级Desktop/pytest/下: test/test.py # 这里面内容是print("test") path_test/path_test.py # 在这个文件里写入from test import test,因此需要将pytest/设置为项目根目录进入pytest/目录在终端输入pwd命令获取pytest/的绝对路径:/h

2021-06-04 14:39:17 2795

原创 Python多线程单例的几种实现方式

1. 单例模式;2.装饰器批量装饰实现单例,且不丢失类型提示;3.限制实例个数

2021-03-20 00:47:56 2602

原创 求4个数字组成的不重复三位数,Python简洁解法

求4个数字组成的不重复三位数,Python解法题目要求:求所有由5,6,7,8组成的数字不重复的三位数不重复的三位数,即不能出现555,566这种通过分析,可以使用画树的方法来确定要求的三位数的值与个数按照上图分析所示可以确定由5,6,7,8共可以组成24个不重复的三位数于是写出Python代码如下:class Solution: def noRepeatTriplets(self, strs='5678'): global n first, sub_

2021-03-11 22:52:04 4316 2

原创 Django开发中问题和报错集合

记录django项目开发过程中的遇到的问题,导致原因和已经奏效的解决方法常见报错UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xbc in position 852: invalid start byte这个问题在一些电脑上做django开发时经常出现要么是py文件运行是就报这个类似的无法解码的问题,要么就是运行服务器后台添加数据保存时报这个错误现总结了以下一些可能的原因和解决方法:可能的原因:1.GBK编码的文件(不一定是py文件)

2021-03-03 23:12:26 1089 2

空空如也

空空如也

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

TA关注的人

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