
python
文章平均质量分 85
best啊李
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
nonzeros解析与实例
from numpy import *data = [[1,2,5,6], [4,8,5,9], [8,7,4,2], [6,8,4,9], [8,2,1,6], [1,2,5,6], [4,8,5,9]]index = [[1,55], [1,48], [2,5...原创 2018-06-29 11:53:43 · 619 阅读 · 0 评论 -
递归
string = 'adfdvsvvvvdffsb'length = len(string)def rev(i): if i == length - 1: print(string[i],end = '') else: rev(i+1) print(string[i],end = '')rev(0) #先自行最后一个,在往前执...原创 2018-07-03 21:39:05 · 152 阅读 · 0 评论 -
xgboost算法原理
1、xgboost是什么全称:eXtreme Gradient Boosting 作者:陈天奇(华盛顿大学博士) 基础:GBDT 所属:boosting迭代型、树类算法。 适用范围:分类、回归 优点:速度快、效果好、能处理大规模数据、支持多种语言、支 持自定义损失函数等等。 缺点:发布时间短(2014),工业领域应用较少,待检验2、基础知识,GBDTxgboost是在GBDT的基础上对boosti...转载 2018-06-28 15:02:57 · 3041 阅读 · 0 评论 -
python高阶函数
#判断是否为回数def is_panlindrome(data): return str(data) == data[::-1] #data[::-1]为reversed差不多print(is_panlindrome('上海自来水来自海上'))print(map(is_panlindrome,'上海自来水来自海上'))#True#<map object at 0x00000...原创 2018-06-28 17:05:52 · 150 阅读 · 0 评论 -
re.match search findall
import restring = 'dfkv ddjv dchsk fafchiruc jrjkv dchsk'print(re.match('fa',string))print(re.match('df',string))print('---------------')print(re.search('ch',string))print(re.search('df',string...原创 2018-06-28 17:20:25 · 158 阅读 · 0 评论 -
爬楼梯
楼梯有n阶,每次只能走1阶或两阶,编程实现#逆向递归num = 10def stairs_top_to_bottom(count): rand = np.random.choice([1,2]) if count ==num - 1 or count ==num: print(num - count,'last',end = ' ') else: ...原创 2018-07-11 11:12:53 · 120 阅读 · 0 评论 -
nonzeros和isnan的结合
import numpy as npfrom numpy import *data = mat([[1,2,5,6,NaN], [4,NaN,1,4,5], [1,5,NaN,5,9], [1,2,5,6,4], [NaN,4,5,6,2]])print(data[:,1].A) #求解的为所...原创 2018-07-04 16:54:58 · 263 阅读 · 0 评论 -
yield的使用
WeiboGoogle+用电子邮件发送本页面 22您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ?我们先抛开 generator,以一个常见的编程题目来展示 yield 的概念。如何生成斐波那契數列斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到。用计算机...转载 2018-07-05 09:28:40 · 132 阅读 · 0 评论 -
cov与corrcoef的区别
def loadData(): return [[1,1,1,0,0], [2,2,2,0,0], [1,1,1,0,0], [5,5,5,0,0], [1,1,0,2,2], [0,0,0,3,3], [0,0,0,1,1]]data = ma...原创 2018-07-05 10:59:27 · 4124 阅读 · 0 评论 -
逻辑与或非
#转载链接 https://blog.youkuaiyun.com/JNingWei/article/details/78651535np.logical_and (逻辑与)Syntaxnp.logical_and(x1, x2, *args, **kwargs)Test>>> np.logical_and(True, False)False>>> np.logical...转载 2018-07-05 11:13:36 · 1245 阅读 · 0 评论 -
sorted排序
import operator#几个输出是一样的 key 后面接的是函数 data 是要排的数据data = [(1,99),(2,77),(3,9),(4,46),(5,12),(6,8)]ss = sorted(data,key = lambda jj:jj[0],reverse = True)print(ss)#[(6, 8), (5, 12), (4, 46), (3, 9)...原创 2018-07-05 12:55:21 · 500 阅读 · 0 评论 -
map函数的双层for循环
data = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]C = [[1],[2],[4]]data = map(set,data)C1 = map(set,C)for d in data: for c in C1: print(c)#只会循环第一个for一次输出 应该是map函数的原因'''{1}{2}{4}...原创 2018-07-13 16:07:12 · 4047 阅读 · 0 评论 -
FP-growth算法 and python实现
1.概述 FP-growth算法是基于Apriori原理的,通过将数据集存储在FP(Frequent Pattern)树上发现频繁项集,但不能发现数据之间的关联规则。FP-growth算法只需要对数据库进行两次扫描,而Apriori算法在求每个潜在的频繁项集时都需要扫描一次数据集,所以说Apriori算法是高效的。其中算法发现频繁项集的过程是:(1)构建FP树;(2)从FP树中挖掘频繁项集。2....转载 2018-07-14 16:05:31 · 576 阅读 · 0 评论 -
DBSCAN算法
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。DBSCAN中的几个定义:Ε邻域:给定对象半径为Ε内的区域称为该对象的Ε邻域;核...转载 2018-07-15 08:35:29 · 9203 阅读 · 0 评论 -
set集合的& | ^
data1 = {(1,2),(1,3),(2,3)}data2 = {(1,2),(1,5),(2,3)}print(data1&data2) #数学中的交集print(data1|data2) #数学中额并集print(data1^data2) #取出各自独有的'''{(1, 2), (2, 3)}{(1, 2), (1, 5), (1, 3), (2, 3)}{(1,...转载 2018-07-15 09:28:24 · 514 阅读 · 0 评论 -
EM算法详解
另一篇感觉也挺好https://blog.youkuaiyun.com/baimafujinji/article/details/50626149转载 2018-08-12 11:28:03 · 293 阅读 · 0 评论 -
常见的排序python实现
#时间复杂度o(n**2) 空间复杂度o(1)#思路后面的元素插入前面已经排序好的序列里,稳定1.插入排序—直接插入排序(Straight Insertion Sort)基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。要点:设立哨兵,作为临时存...原创 2018-08-18 19:13:11 · 482 阅读 · 0 评论 -
几个常用机器学习算法 - 隐马尔可夫模型
1先引入一个知乎上看到的例子:假设你的手中有三个不同的骰子。 第一个是我们平常都能见到的骰子(称其为D6),6个面,每个面(1,2,3,4,5,6)出现的概率是1/6; 第二个有4个面(称其为D4),每个面(1,2,3,4)出现的概率是1/4; 第三个有8个面(称其为D8),每个面(1,2,3,4,5,6,7,8)出现的概率是1/8。现在你要开始掷骰子了。 先从三个骰子里挑一个,挑到每一个骰子的概...转载 2018-06-28 10:22:26 · 326 阅读 · 0 评论 -
机器学习十大算法---10. 马尔科夫
3.生成模式(Generating Patterns)3.1、确定性模式(Deterministic Patterns):确定性系统 考虑一套交通信号灯,灯的颜色变化序列依次是红色-红色/黄色-绿色-黄色-红色。这个序列可以作为一个状态机器,交通信号灯的不同状态都紧跟着上一个状态。 注意每一个状态都是唯一的依赖于前一个状态,所以,如果交通灯为绿色,那么下一个颜色状态将始终是黄色——也就...转载 2018-06-28 10:10:01 · 2506 阅读 · 0 评论 -
简单易学的机器学习算法——马尔可夫链蒙特卡罗方法MCMC
import randomfrom scipy.stats import normimport matplotlib.pyplot as pltdef cauchy(theta): y = 1.0/(1.0 + theta ** 2) return yT = 50 #循环的次数sigma = 1thetamin = -30thetamax = 30theta =...转载 2018-06-28 09:37:03 · 652 阅读 · 0 评论 -
logistic回归
转载 2018-06-30 09:09:15 · 148 阅读 · 0 评论 -
线性回归
转载 2018-06-30 10:56:06 · 128 阅读 · 0 评论 -
矩阵.A
y = mat([1,2,5,6])y1 = mat([4,8,7,5])def rssError(y_label,y_pred): return sqrt(sum(pow(y_label - y_pred,2)))#对于矩阵是无法直接运用上述的函数,必须加.Aprint(rssError(y.A,y1.A)) #7.0710678118654755print(rssError(...原创 2018-07-01 15:56:11 · 486 阅读 · 0 评论 -
去重
list_data = [1,5,4,8,5,4,5,2,1]drop_ducp = set(list_data)print(drop_ducp)def drop_ducp(data): new_data = [] for each in data: if each not in new_data: new_data.append(...原创 2018-06-21 15:05:39 · 154 阅读 · 0 评论 -
几种复制的区别
#1:赋值型 指向了同一个 存储的位置就是那一个data = [1,4,5,4,5,89,6,5,4,5,2,5,6]new_data = datadata.pop()print(data)print(new_data)print('--------------------')new_data.pop()print(data)print(new_data)# [1, 4, 5...原创 2018-07-02 14:49:26 · 559 阅读 · 0 评论 -
Python是如何进行内存管理的?
Python引入了一个机制:引用计数。python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收。总结一下对象会在一下情况下引用计数加1:1.对象被创建:x=42.另外的别人被创建:y=x3.被作为参数传递给函数:foo(x)4.作为容器对象的一个元素:a=[...转载 2018-07-02 15:41:49 · 145 阅读 · 0 评论 -
n种排序
1 算法复杂度算法复杂度分为时间复杂度和空间复杂度。其中, 时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间资源,因此复杂度分为时间和空间复杂度。用大O表示。常见的时间复杂度(按效率排序)回到顶部2 冒泡排序冒泡法:第一趟:相邻的两数相比,大的往下沉。最后一个元素是最大的。...转载 2018-07-02 16:21:25 · 134 阅读 · 0 评论 -
列表索引越界or空
data = [1,8,5,9,7,4,5]print(data[10:]) #返回空print(data[10]) #出错,越界原创 2018-07-02 16:27:55 · 1481 阅读 · 1 评论 -
GBDT算法详解
https://blog.youkuaiyun.com/u012684933/article/details/51088609https://www.cnblogs.com/ModifyRong/p/7744987.html算法介绍GBDT是希望组合一组弱的学习器的线性组合,即有: 上述公式中pmpm表示步长,我们可以...转载 2018-07-02 22:02:18 · 2224 阅读 · 0 评论 -
生成验证码
#生成length长度的验证码def gecode(length): result = '' strs = string.digits + string.ascii_letters #获取所有的字母与数字 for i in range(length): #要生成的验证码的长度 index = random.randint(0,len(strs) - 1)...转载 2018-06-27 19:29:50 · 125 阅读 · 0 评论 -
遍历路径
import osdir = 'E:\966'#读取文件里的内容def getData(path): if os.path.basename(path).endswith('.txt'):#if os.path.splitext(path)[1] == '.txt': 判断以.txt结尾 content = [] with open(path) as...转载 2018-06-27 20:14:02 · 1001 阅读 · 0 评论 -
统计高频词
#返回高频词def word(file): with open(file) as file: data = file.read() #一次性读取全部的内容 contents = re.findall('\w+',data) #匹配所有的字符 count = {} for content in contents: ...原创 2018-06-27 20:37:41 · 3167 阅读 · 0 评论 -
使用Apriori算法和FP-growth算法进行关联分析
系列文章:《机器学习实战》学习笔记最近看了《机器学习实战》中的第11章(使用Apriori算法进行关联分析)和第12章(使用FP-growth算法来高效发现频繁项集)。正如章节标题所示,这两章讲了无监督机器学习方法中的关联分析问题。关联分析可以用于回答"哪些商品经常被同时购买?"之类的问题。书中举了一些关联分析的例子:通过查看哪些商品经常在一起购买,可以帮助商店了解用户的购买行为。这种从数据海洋中...转载 2018-07-03 09:54:36 · 1201 阅读 · 0 评论 -
ICA的核心思想
ICA的核心思想:设X是观测到的数据,S(为未知)为信号源,则一定存在矩阵A(未知)使得X = AS那吗我们要预测信号源为Y,求解W使得Y = WX (y为我们要预测的信号员)则Y = WAS要想Y无限的靠近S真实的信号源,则A就必须等价于W的逆矩阵,而且W.T.dot(W) = 1,即W有正交单位向量组成的矩阵,即:我们找到W就可以了,找到W就能求出信号源了。下面求解W的思路:由Y = WX 因...原创 2018-07-16 11:29:51 · 764 阅读 · 0 评论 -
图片式验证码
import randomimport stringfrom PIL import Image,ImageDraw,ImageFilter,ImageFont#随机初始化每个像素的颜色def random_color(): return (random.randint(0,255),random.randint(0,255),random.randint(0,255))#随机初始...转载 2018-06-27 21:16:04 · 170 阅读 · 0 评论 -
特征选择
https://blog.youkuaiyun.com/u012328159/article/details/53954522特征选择(feature selection)特征选择 feature selection 终于有时间把好久之前就想写的关于特征选择的基本介绍补上来了,主要想从以下几个方面介绍: - 特征选择的动机–为什么要特征选择 - 常见的特征选择方法–如何特征选择 - 特征选...转载 2018-08-20 15:41:23 · 2876 阅读 · 0 评论