
python常用工具库
文章平均质量分 89
TFATS
NLP大模型从业者,AGI忠实信奉者。
展开
-
python判断字符串中是否只有中文字符
import redef find_char_kind(strs): """查找字符串中的英文字符.中文字符.数字""" s = strs char = re.findall(r'[a-z]',s) bigchar= re.findall(r'[A-Z]',s) num = re.findall(r'[0-9]',s) blank = re.findall(r' ',s) #\u4E00-\u9FFF是中文的范围 chi = re.find原创 2020-10-19 13:56:00 · 1210 阅读 · 1 评论 -
基于python中jieba包的详细使用介绍
一,jieba的介绍jieba 是目前表现较为不错的 Python 中文分词组件,它主要有以下特性:支持四种分词模式:精确模式全模式搜索引擎模式paddle模式支持繁体分词支持自定义词典MIT 授权协议二,安装和使用1,安装pip3 install jieba2,使用import jieba三,主要分词功能1,jieba.cut 和jieba.lcutlcut 将返回的对象转化为list对象返回传入参数解析: def cut(sel原创 2020-09-27 18:31:38 · 43935 阅读 · 1 评论 -
关于nlp-pyltp的基本介绍和使用
一,下载 ltp 模型 ltp_data_v3.4.0下载地址如下:https://download.youkuaiyun.com/download/TFATS/12758993二,分句子# # 1,分句子# from pyltp import SentenceSplitter# sents = SentenceSplitter.split('元芳你怎么看?我就趴窗口上看呗!') # 分句# print ('\n'.join(sents))# 2,分词import osfrom pyltp i原创 2020-09-10 14:38:12 · 2750 阅读 · 1 评论 -
python之sklearn-分类算法-3.5 模型的保存与加载
一,sklearn模型的保存和加载APIfrom sklearn.externals import joblib保存:joblib.dump(rf,“test.pkl”)加载:estimator = joblib.load(‘test.pkl’)二,线性回归模型的保存加载案例1,保存模型import pandas as pdimport numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn原创 2020-08-27 14:48:13 · 704 阅读 · 0 评论 -
python之sklearn-分类算法-3.4 逻辑回归与二分类
一,逻辑回归的应用场景广告点击率是否为垃圾邮件是否患病金融诈骗虚假账号二,逻辑回归的原理1,输入逻辑回归的输入是线性回归的结果:2,激活函数1)sigmoid函数回归的结果输入到sigmod函数当中输出结果:[0,1]区间中的一个概率值,默认为0.5的门限值2)注意:逻辑回归的最终分类是通过某个类别的概率来判断是否属于某个类别,并且这个类别默认标记为1(正例),另一个标记为0(反例)。默认目标值少的为正例。3,损失函数1)对数似然损失公式逻辑回归的损失,称之为原创 2020-08-27 14:26:18 · 6684 阅读 · 0 评论 -
python之sklearn-分类算法-3.3 线性回归的改进-岭回归
一,带有L2正则化的线性回归-岭回归岭回归,其实也是一种线性回归。只不过在算法建立回归方程时候,加上正则化的限制,从而达到解决过拟合的效果。二,APIsklearn.linear_model.Ridge(alpha=1.0)具有l2正则化的线性回归alpha:正则化力度,也叫 λλ取值:0~1 1~10coef_:回归系数sklearn.linear_model.RidgeCV(_BaseRidgeCV, RegressorMixin)具有l2正则化的线性回归,可以进行交叉原创 2020-08-27 13:55:37 · 417 阅读 · 0 评论 -
python之sklearn-分类算法-3.2 欠拟合与过拟合
一,什么是过拟合与欠拟合训练数据训练的很好啊,误差也不大,为什么在测试集上面有问题呢?当算法在某个数据集当中出现这种情况,可能就出现了过拟合现象。1,图示例子欠拟合过拟合分析第一种情况:因为机器学习到的天鹅特征太少了,导致区分标准太粗糙,不能准确识别出天鹅。第二种情况:机器已经基本能区别天鹅和其他动物了。然后,很不巧已有的天鹅图片全是白天鹅的,于是机器经过学习后,会认为天鹅的羽毛都是白的,以后看到羽毛是黑的天鹅就会认为那不是天鹅。2,定义过拟合:一个假设在训练数据上能够获原创 2020-08-27 13:04:00 · 911 阅读 · 0 评论 -
python之sklearn-分类算法-3.1 线性回归
一,线性回归的原理1,线性回归应用场景房价预测销售额度预测金融:贷款额度预测、利用线性回归以及系数分析因子和选股2,什么是线性回归1)定义与公式线性回归(Linear regression)是利用 回归方程(函数) 对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。只有一个自变量的情况称为单变量回归,大于一个自变量情况的叫做多元回归w为权重、b称为偏置项、x为特征2) 举例说明期末成绩:0.7×考试成绩+0.3×平时成绩房子价格 = 0.0原创 2020-08-26 17:01:18 · 1688 阅读 · 1 评论 -
python之sklearn-分类算法-2.7 随机森林
一,什么是集成学习方法集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成组合预测,因此优于任何一个单分类的做出预测。二,什么是随机森林在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。例如, 如果你训练了5个树, 其中有4个树的结果是True, 1个数的结果是False, 那么最终投票结果就是True。三,随机森林原理过程学习算法根据下列算法而建造每棵树:用N原创 2020-08-25 15:31:05 · 532 阅读 · 0 评论 -
python之sklearn-分类算法-2.6 决策树
一,认识决策树1,什么是决策树决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法2,理解决策树例子二,决策树分类原理详解1,原理信息熵、信息增益等2,信息熵1),理解信息熵例子那来玩个猜测游戏,猜猜这32支球队那个是冠军。并且猜测错误付出代价。为了使代价最小,可以使用二分法猜测:我可以把球编上号,从1到32,然后提问:冠 军在1-16号吗?依次询问,只需要五次,就可以知道结果。我们来看这个式子:原创 2020-08-25 14:37:11 · 1083 阅读 · 0 评论 -
python之sklearn-分类算法-2.5 朴素贝叶斯算法
一、 朴素贝叶斯简介1,什么是朴素贝叶斯分类方法(特征相互之间独立时使用;不需要调参)二, 概率基础1,概率(Probability)定义概率定义为一件事情发生的可能性扔出一个硬币,结果头像朝上某天是晴天P(X) : 取值在[0, 1]2,概率案例3,条件概率与联合概率联合概率:包含多个条件,且所有条件同时成立的概率记作:P(A,B)特性:P(A, B) = P(A)P(B)条件概率:就是事件A在另外一个事件B已经发生条件下的发生概率记作:P(A|B原创 2020-08-25 13:07:11 · 1058 阅读 · 0 评论 -
python之sklearn-分类算法-2.4 网格搜索、交叉验证(模型选择与调优)
一,为什么需要交叉验证交叉验证目的:为了让被评估的模型更加准确可信二,什么是交叉验证(cross validation)交叉验证:将拿到的训练数据,分为训练和验证集。以下图为例:将训练集数据分成5份,其中一份作为验证集。然后经过5次(组)的测试,每次都更换不同的验证集。即得到5组模型的结果,取平均值作为最终结果。又称5折交叉验证。1,分析我们之前知道数据分为训练集和测试集,但是为了让从训练得到模型结果更加准确。做以下处理:训练集:训练集+验证集测试集:测试集问题:那么这个只是对于参数得原创 2020-08-25 11:51:15 · 1303 阅读 · 1 评论 -
python之sklearn-分类算法-2.3 K-近邻算法
一,什么是K-近邻算法(KNN)1,定义如果一个样本在特征空间中的 k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别, 则该样本也属于这个类别。2,距离公式两个样本的距离可以通过如下公式计算,又叫欧式距离二,举例说明(电影类型分析)三,K-近邻算法APIsklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm=‘auto’)n_neighbors:int,可选(默认= 5),k_neighbors查询默原创 2020-08-25 11:00:32 · 847 阅读 · 0 评论 -
python之sklearn- 分类算法-2.2 sklearn转换器和估计器
一,转换器1,转换器的几种形式我们把特征工程的接口称之为转换器,其中转换器调用有这么几种形式fit_transformfittransform2,转换器几种形式的区别In [1]: from sklearn.preprocessing import StandardScalerIn [2]: std1 = StandardScaler()In [3]: a = [[1,2,3], [4,5,6]]In [4]: std1.fit_transform(a)Out[4]:arr原创 2020-08-25 10:52:51 · 345 阅读 · 0 评论 -
python之sklearn- 分类算法-2.1 数据集介绍与划分
一,sklearn数据集介绍1,apisklearn.datasets加载获取流行数据集datasets.load_*()获取小规模数据集,数据包含在datasets里datasets.fetch_*(data_home=None)获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/2,返回类型load 和 fetch 返回的数据类型datasets.base.Bunch(字原创 2020-08-25 10:31:55 · 1173 阅读 · 0 评论 -
python之sklearn-特征工程-1.6 机器学习算法简介
一,机器学习算法类别1,按照学习方式分类监督学习(supervised learning)(预测)定义:输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值(称为回归),或是输出是有限个离散值(称作分类)。分类 k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络回归 线性回归、岭回归标注 隐马尔可夫模型 (不做要求)无监督学习(unsupervised learning)定义:输入数据是由输入特征值所组成。聚类 k-means半监督和强化学习2原创 2020-08-24 18:01:43 · 231 阅读 · 0 评论 -
python之sklearn-特征工程-1.5 特征降维
一,什么是主成分分析(PCA)定义:高维数据转化为低维数据的过程, 在此过程中可能会舍弃原有数据、创造新的变量作用:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。应用:回归分析或者聚类分析当中二,主成分分析(PCA)的理解将这个二维的数据简化成一维,并且损失少量的信息。三,APIsklearn.decomposition.PCA(n_components=None)将数据分解为较低维数空间n_components:小数:表示保留百分之多少的信息整数:减少原创 2020-08-24 17:38:32 · 519 阅读 · 0 评论 -
python之sklearn-特征工程-1.4 特征选择
一,降维处理介绍1,什么是降维降维是指在某些限定条件下 ,降低随机变量(特征)个数, 得到一组“不相关”主变量的过程。降低随机变量的个数相关特征(correlated feature)的相对湿度与降雨量之间的相关等等2、降维的两种方式特征选择Filter(过滤式):主要探究特征本身特点、特征与特征之间关联低方差特征过滤相关系数Embedded (嵌入式):算法自动选择特征(特征与目标值之间的关联)决策树:信息熵、信息增益正则化:L1、L2深度学习:原创 2020-08-24 17:27:07 · 731 阅读 · 0 评论 -
python之sklearn-特征工程-1.3 特征预处理
一,特征预处理介绍1,什么是特征预处理通过一些转换函数将特征转换成更加适合算法模型的过程2,处理方式种类(缺失值用pandas处理)数值型数据进行无量纲化,使不同规格的数据转换到同一规格归一化标准化3, 特征预处理APIsklearn.preprocessing4,为什么我们要进行归一化/标准化?特征的 单位或者大小相差较大,或者某特征的方差相比其他的特征要大出几个数量级,容易影响(支配)目标结果, 使得一些算法无法学习到其它的特征.二,归一化1,定义通过对原始数据进行变换原创 2020-08-24 16:36:04 · 374 阅读 · 0 评论 -
python之sklearn-特征工程-1.2 特征抽取
一,特征提取目的:对特征当中有类别的信息做处理—>one-hot 编码1,目的:包括将任意数据(如文本或图像)转换为可用于机器学习的数字特征。注:特征值化是为了计算机更好的去理解数据2,特征提取类别:字典特征提取(特征离散化)文本特征提取图像特征提取(深度学习将介绍)3,特征提取APIsklearn.feature_extraction二,字典特征提取1,字典特征提取api介绍作用:对字典数据进行特征值化sklearn.feature_extractio原创 2020-08-21 13:56:54 · 590 阅读 · 0 评论 -
python之sklearn-特征工程-1.1特征工程
什么是机器学习定义机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测。背景什么是sklearnScikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法。当我们面临机器学习问题时,便可根据下图来选择相应的方法。Sklearn具有以下特点:简单高效的数据挖掘和数据分析原创 2020-08-20 16:53:32 · 423 阅读 · 0 评论 -
python之迭代器(Iterator)、生成器(yield)、协程(gevent)
一,迭代器迭代器最大的好处是:储存生成数据的方式,较储存生成数据的结果占用较少的内存。若一个对象是可迭代对象,此对象不一定可以进行迭代;若一个对象是迭代器,则此对象一定可以进行迭代。迭代对象也可以同时为迭代器。1,可迭代对象如何判断对象是否为可迭代对象呢?在python中万物皆对象,只要在对象内部实现__iter__方法,则对象是可迭代对象,即可以使用for循环。代码中判断:from collections import Iterableisinstance(对象名,Iterable)原创 2020-08-17 17:47:13 · 1211 阅读 · 0 评论 -
python 变量作用域、闭包、装饰器
一.python的作用域1,什么是“LEGB”Python与大多数编程语言一样,搜索变量值的时候,即命名空间的规则,会采用’就近原则’:由近及远依次为: 本地作用域(Local) --> 外部嵌套函数作用域(Enclosing Local) --> 全局/模块作用域(Global) --> 内置作用域(Built-in).a = str(1) # str:Built-inb = 3 # b:Globaldef f1(): print(b) # b:Globa原创 2020-08-13 19:09:29 · 286 阅读 · 1 评论 -
python中的四个BIF:filter()、map()、zip()、enumerate()
一,filter()过滤器先来看下Phelp(filter)class filter(object)| filter(function or None, iterable) --> filter object|| Return an iterator yielding those items of iterable for which function(item)| is true. If function is None, return the items that are原创 2020-08-06 16:22:23 · 289 阅读 · 1 评论 -
python中pickle的应用
从一个文件中读取字符串很简单,但是如果想要读取出数值,那就需要多费些周折。因为无论是read()方法还是readline()方法,都是返回一个字符串,再使用int()或者float()方法强制把字符串转换为具体的数值。那么如果要储存的数据像列表或者字典甚至是类的实例这些复杂的数据类型时,那么从文本文件恢复数据对象,就变得异常麻烦了。 此时则需要 python 提供的一个标准模块 — pickle模原创 2020-08-06 15:17:33 · 326 阅读 · 0 评论 -
python计算模块运行时间
在python中,计算模块的运行时间是我们开发中经常遇到的问题。那么应该如何更加精准的计算时间呢?我在这里引入了timeit时间模块。timer.timeit函数参数中的number含义的是,运行对应的次数后取其平均值。import timeitdef T1(): '''表内置属性''' li = [] for i in range(1000): li.append(i)def T2(): '''列表拼接''' li = [] .原创 2020-08-05 16:42:40 · 724 阅读 · 0 评论 -
python图片处理工具pillow
一,pillow的安装pip install pillow 二,pillow的基本概念PIL中所涉及的基本概念有如下几个:通道(bands)、模式(mode)、尺寸(size)、坐标系统(coordinatesystem)、调色板(palette)、信息(info)和滤波器(filters)。PIL最重要的类是Image, 你可以通过多种方法创建这个类的实例,比如从文件加载图像,或者处理其他图像, 或者从或从头开始创建图像。1、 通道每张图片都是由一个或者多个数据通道构成。PIL允许原创 2020-07-23 16:07:45 · 646 阅读 · 0 评论 -
数据挖掘工具pandas(十三)对csv、excel、mysql读取和存储
一,pd对于csv文件的读取和存储1,pd读取csv文件df_xml = pd.read_csv("./outputs/"+table+".csv", engine='python', encoding='utf_8_sig')2,pd存储csv文件df.to_csv("./outputs/df_xml.csv", index=False, mode='w', header=True, encoding='utf_8_sig')二,pd对于excel文件的读取和存储1,pd读取excel原创 2020-05-27 18:48:10 · 521 阅读 · 0 评论 -
数据挖掘工具pandas(十二)交叉表和透视表
一,交叉表交叉表用于计算一列数据对于另外一列数据的分组个数(寻找两个列之间的关系) pandas.crosstab(value1,value2)import numpy as npimport pandas as pdnp.random.seed(2)day_data = np.random.normal(0,1,(500,507))# 构造行索引列表stock_list = ["股票"+ str(i) for i in range(day_data.shape[0])]# 构造列索引列原创 2020-05-27 17:56:24 · 320 阅读 · 0 评论 -
数据挖掘工具pandas(十一)数据合并
一,concat / join合并数据import pandas as pdimport numpy as npfrom matplotlib import pyplot as plt# 构造数据temp = pd.DataFrame(np.random.normal(0,100,(500,505)))stock_list = ["股票"+ str(i) for i in range(temp.shape[0])]date = ["第"+ str(i)+"天" for i in range(原创 2020-05-26 15:14:12 · 433 阅读 · 0 评论 -
数据挖掘工具pandas(十)离散化处理
一,什么是数据的离散化连续属性的离散化就是将连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数 值代表落在每个子区间中的属性值。二,qcut()import pandas as pdimport numpy as npfrom matplotlib import pyplot as plt# 构造数据temp = pd.DataFrame(np.random.normal(0,100,(500,505)))stock_list = ["股票"+ str(i) for i原创 2020-05-26 11:52:11 · 609 阅读 · 0 评论 -
数据挖掘工具pandas(九)Pandas缺失数据的处理
缺失数据处理的处理方式有两种:1)删除缺失值所在的行列2)填充数据,t.fillna(t.mean()),t.fiallna(t.median()),t.fillna(0)一,删除缺失值所在的行列1,存在缺失值nan,并且是np.nanimport pandas as pdimport numpy as nptemp =pd.DataFrame(np.arange(12).reshape(3,4),index=list('abc'),columns=list("wxyz"))temp..原创 2020-05-25 18:20:03 · 313 阅读 · 0 评论 -
数据挖掘工具pandas(八)Pandas保存、读取外部数据
pandas保存、读取外部数据1,pandas保存、读取csv文件import numpy as npimport pandas as pdimport numpy as npnp.random.seed(4)day_data = np.random.normal(0,1,(500,507))day_data = np.round(day_data,1)stock_list = ["股票"+ str(i) for i in range(day_data.shape[0])]date = [原创 2020-05-25 18:12:09 · 496 阅读 · 0 评论 -
数据挖掘工具pandas(七)逻辑运算
1,使用逻辑运算符进行筛选(pandas的布尔索引)import pandas as pdfrom sqlalchemy import create_engineengine = create_engine('mysql+pymysql://root:root@localhost:3306/yoyo')sql = """select * from book_management_signin;"""df = pd.read_sql(sql,engine)print(df.describe()原创 2020-05-25 18:04:19 · 879 阅读 · 0 评论 -
数据挖掘工具pandas(六)Series
1.Series 一维,带标签数组2.DataFrame 二维,Series容器series和dataframe的区别: series只有行索引没有列索引。一,创建series类型的两种方式1,第一种创建series方式1)不指定索引import pandas as pdprint(pd.Series([1,2,3,4]))0 11 22 33 4dtype: int642)指定索引import pandas as pdimport numpy .原创 2020-05-25 16:22:39 · 288 阅读 · 0 评论 -
数据挖掘工具pandas(五)DataFrame的常用统计方法
一,单个函数max、min、idxmin、idxmax、mean、stdimport pandas as pdimport numpy as npday_data = np.random.normal(0,1,(500,507))stock_list = ["股票"+ str(i) for i in range(day_data.shape[0])]date = ["第"+ str(i)+"天" for i in range(day_data.shape[1])]df = pd.Data原创 2020-05-22 18:25:24 · 2036 阅读 · 0 评论 -
数据挖掘工具pandas(四)DataFrame的属性
一,DataFrame的基本属性:shape、dtypes、ndim、index、columns、values、Timport pandas as pdimport numpy as np# from sqlalchemy import create_engine# engine = create_engine('mysql+pymysql://root:root@localhost:3306/yoyo')# sql = """select * from role_info;"""# df原创 2020-05-22 18:10:26 · 1383 阅读 · 0 评论 -
数据挖掘工具pandas(三)DataFrame查看、修改数据
一,dataframe按索引查看数据1,使用行、列索引直接查看 (注意:先列后行!)import numpy as npimport pandas as pdnp.random.seed(2)day_data = np.random.normal(0,1,(500,507))# 构造行索引列表stock_list = ["股票"+ str(i) for i in range(day_data.shape[0])]# 构造列索引列表date = pd.date_range("2018-01-原创 2020-05-22 18:07:41 · 781 阅读 · 0 评论 -
数据挖掘工具pandas(二)DataFrame的索引
一,设置DataFrame索引值 以及 时间索引如何构造1,设置DataFrame索引值import numpy as npimport pandas as pdday_data = np.random.normal(0,1,(500,507))# 将数据变成dataframe格式day_data1 = pd.DataFrame(day_data)# 构造行索引列表stock_list = ["股票"+ str(i) for i in range(day_data.shape[0])]原创 2020-05-22 17:50:06 · 505 阅读 · 0 评论 -
数据挖掘工具pandas(一)Pandas的数据结构、dataFrame的三种创建方法
一,为什么使用pandaspandas的行、列索引更加灵活pandas处理缺失值优于numpy二,pandas的数据结构Series(一维数据)DataFrame(二维数据)panel(三维结构数据/面板数据)三,创建dataFrame第一种方法import pandas as pdimport numpy as npa = pd.DataFrame(np.arange(10).reshape(2,5))# index是行索引,columns是列索引b = pd.DataF原创 2020-05-22 15:32:58 · 434 阅读 · 0 评论