自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据风控建模的流程与步骤

1.业务理解业务的理解是做好模型的前提,才能更好的指标模型的方向,一般包括以下几个方面:1.建模的目的及目标2.好坏标签的确定3.时间窗口的确定4.建模的时间周期2.数据预处理1.时间格式、特殊格式的处理2.极值/异常值(箱线图和分位数)3.缺失值(完全随机缺失、随机缺失、完全非随机缺失),补缺或作为一种状态4.文本数据——主题提取NPL,优点准确详细,对风险评估非常有效,但缺...

2019-11-04 16:56:56 3161

原创 机器学习模型保存和导出pmml文件(python代码)

导出当前conda环境的所有包到一个environment.yml文件中,这个文件包含了conda环境中的所有依赖(包名和版本),包括Python包和非Python库,也可以用来完全恢复整个conda环境。训练好的模型通常需要在生产环境中部署和使用,一般导出为PMML(Predictive Model Markup Language)格式,以便在其他平台上使用,能够更加灵活地应用于各种场景。将当前环境中所有已安装的库及其版本信息输出到requirements.txt文件中。

2024-04-26 21:15:00 138 2

原创 机器学习之数据预处理python代码

比如:在两个样本中年龄大小分别为20和25,发现时间分别为180天和360天,那么在求距离时,时间差为180、大小差为5,那么其结果会被时间所主导,因为年龄大小的差距太小了。而特征工程就是使机器学习算法达到最佳性能的特征处理的过程,一般包含了Data数据清洗、数据预处理、特征提取、特征构造、特征选择等内容,本篇主要讨论数据预处理的方法及实现。现实中很多数据的分布是倾斜的,数据分布与均值关系密切,方差不稳定,通过统计变换使原本密集的区间的值尽可能的分散,原本分散的区间的值尽量的聚合,帮助稳定方差等。

2023-12-18 23:15:00 71

原创 Python按要求从多个txt文本中提取指定数据

遍历文件夹并从中找到文件名称符合我们需求的多个.txt格式文本文件,并从每一个文本文件中,找到我们需要的指定数据,最后得到所有文本文件中我们需要的数据的集合。如现有名为file一个文件夹,里面含有大量的.txt格式文本,需要从文件名中找到含有test字段的文件,并且取出name是李四、李五、王五的用户数据。

2023-12-01 23:00:00 610

原创 Python 批量修改文件名

【代码】Python 批量修改文件名。

2023-12-01 22:15:00 166

原创 模型优化调参方法介绍(Python代码)

模型算法在机器学习和深度学习中都发挥着自己的作用,但有的时候我们训练出来的模型并不能满足上线需求,那我们就需要对模型进行调优。一般来说,会从以下几个角度来优化模型。

2023-08-02 23:15:00 1278

原创 数据不平衡处理方式之过采样和欠采样(Python代码)

在进行数据分析建模的过程中,数据不均衡是非常常见的问题,一般可以用过采样,欠采样,过采样+欠采样等发放处理。如SMOTE算法,通过插值生成合成样本,非直接对少数类进行重采样,从而使得少数类样本的特征空间得到扩展,有助于模型更好地探索和学习少数类的特征,提高模型的性能。如随机欠采样,随机从多数类样本中抽取一部分数据进行删除,随机欠采样有一个很大的缺点是未考虑样本的分布情况,而采样过程又具有很大的随机性,可能会误删多数类样本中一些重要的信息。样本中冗余特征的数量,这些特征是从有用特征中随机组合而成的。

2023-06-26 23:15:00 3934 2

原创 Python从url中获取JSON数据并解析

1、对象:大括号 {} 保存的对象是一个无序的名称/值对集合。一个对象以左括号 { 开始, 右括号 } 结束。每个"键"后跟一个冒号 :,名称/值对使用逗号 , 分隔。2、数组:中括号 [] 保存的数组是值(value)的有序集合。一个数组以左中括号 [ 开始, 右中括号 ] 结束,值之间使用逗号 , 分隔。JSON 语法是 JavaScript 对象表示语法的子集。

2022-12-29 21:00:00 1542

原创 Python常用函数笔记汇总2

添加参数:–default-timeout=100,执行命令为:pip --default-timeout=100 install jieba。datetime可以查看:天数(day),小时数(hour),星期几(weekday())等。timedelta可以查看:天数(days),秒数 (seconds)等。原因分析:连接服务器,网速慢,文件大,导致下载连接超时,无法完成下载。每个类都有一些方法和属性可以查看具体的值.c.导入第三方包,利用包的内置方法。1.分组汇总groupby。

2022-12-29 21:00:00 546 1

原创 Python写入和读取到txt、csv、excel和json文件

【代码】Python写入和读取到txt、csv、excel和json文件。

2022-12-28 23:30:00 441

原创 机器学习-决策树算法原理及实现-附python代码

决策树学习算法的最大优点是自学习,在学习过程中只需要对训练实例进行较好的标注,就能够进行学习,是一种无监督的学习。决策树对于训练集属于有很好的分类能力,但对未知的测试数据未必有很好的分类能力,泛化能力若,可能产生过拟合现象,所以必须要剪枝处理。在机器学习中,决策树是最常用也是最强大的监督学习算法,决策树主要用于解决分类问题,决策树算法 DecisionTree 是一种树形结构,采用的是自上而下的递归方法。支持的策略是“最佳”选择最佳分割,“随机”选择最佳随机分割,默认是最佳分割。叶节点所需的最小样本数。

2022-12-27 22:00:00 1940 1

原创 网格搜索调参-基于LightGBM算法分类器

LightGBM,是基于树结构的分类器模型,其基本思想是对所有特征都按照特征的数值进行排序,找到一个特征上的最好分割点,将数据分裂成左右子节点。这种算法有很多的优点,比如更快的训练效率、更高的准确率、支持并行化学习、大规模数据的处理等。由于涉及参数众多,如何寻找一组合适的参数就显得尤为重要,本文以LightGBM分类器为例,利用网格搜索寻找最优的参数组合。

2022-11-14 23:45:00 2278 3

原创 数据预处理-格式-缺失值-异常值等-附py代码

数据预处理是进行数据分析、机器学习的必不可少的步骤,其中,格式往往也是多种多样的,需要具体情况具体分析,本文不做详细探讨,缺失值缺失的原因也有许多种,对应的也有很多种方法进行处理,本文仅仅用均值、中位数填补缺失值,用盖帽法处理异常值。代码示例class cleanDataset(): def __init__(self): pass def clean_format(self, x): x = str(x).strip().strip(' ') .

2022-10-15 21:15:00 390

原创 机器学习-LightGBM算法分类器-附python代码

LightGBM与XGBoost 算法类似,其基本思想都是对所有特征都按照特征的数值进行排序,找到一个特征上的最好分割点,将数据分裂成左右子节点。两种算法都有很多的优点,比如更快的训练效率、更高的准确率、支持并行化学习、大规模数据的处理等,但XGBOOST也有一些明显的缺点,如在选择树的分隔节点时,需要遍历所有的特征值,计算量大,内存占用量也大,还有易产生过拟合等。类似随机森林,它将在不进行重采样的情况下随机选择部分数据,可以用来加速训练,也可以用来处理过拟合。树的最大深度限制,防止过拟合。

2022-10-14 20:00:00 2984

原创 机器学习-最近邻算法KNN原理及实现-附python代码

KNN是通过测量不同特征值之间的距离进行分类。它的思路是:K个最近的邻居,每个样本都可以用它最接近的K个邻居来代表,如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特征, KNN算法的结果很大程度取决于K的选择,其中K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。在KNN中,通过计算对象间距离来作为各个对象之间

2022-09-09 18:01:37 971

原创 机器学习-贝叶斯分类器(附Python代码)

通过贝叶斯定理的理解,运用贝叶斯分类器处理分类问题

2022-08-24 12:51:15 23431 1

原创 mysql分组后占比、累计占比和排序计算方法

1.求group by之后和的占比先做group by分组汇总,再单独inner join连接到和,最后分组结果除以连接到的和select ifnull(hour_diff,'--合计--') hour_diff,count(1) cnt,count(1)/tot pctfrom (select timestampdiff(hour,createtime,activate_time) hour_diff from t_consumer) winner join (select coun.

2022-02-16 15:35:21 9074

原创 机器学习-聚类分析之DBSCAN

DBSCAN聚类算法DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种基于密度的空间聚类算法。 该算法将具有足够密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇,它将簇定义为密度相连的点的最大集合。*class sklearn.cluster.DBSCAN(eps=0.5, , min_samples=5, metric=‘euclidean’, metric_param

2020-11-22 21:59:24 1303 1

原创 机器学习-聚类分析之KMeans

基本思路聚类分析是根据在数据中发现的描述对象及其关系的信息,将数据对象分组。目的是,组内的对象相互之间是相似的(相关的),而不同组中的对象是不同的(不相关的)。组内相似性越大,组间差距越大,说明聚类效果越好。KMeans算法,对大量未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,是类别内数据相似度较大,而类别间相似度较小。*class sklearn.cluster.KMeans(n_clusters=8, , init=‘k-means++’, n_init=10, max_iter=3.

2020-11-18 19:16:35 2205

原创 Windows系统下通过Git上传项目到GitHub上的方法

在windows系统将项目代码文件上传到GitHub上去,如在Pycharm上写机器学习项目,需要将整个文件夹的代码和测试数据上传,具体可用git工具实现。1.在GitHub上创建仓库在GitHub注册账号,建立名为test的仓库2.安装git客户端在官网:https://git-scm.com/ 下载安装,完成后进入Git Bash窗口3.在windows上用Git Bash上传文件3.1建立本地仓库查看文件夹位置pwd文件夹变成Git可以管理的仓库:git init

2020-10-14 19:21:29 501

原创 数据筛选特征方法-递归特征消除

对特征含有权重的预测模型(例如,线性模型对应参数coefficients),RFE通过递归减少考察的特征集规模来选择特征。首先,预测模型在原始特征上训练,每个特征指定一个权重。之后,那些拥有最小绝对值权重的特征被踢出特征集。如此往复递归,直至剩余的特征数量达到所需的特征数量。RFECV 通过交叉验证的方式执行RFE,以此来选择最佳数量的特征:对于一个数量为d的feature的集合,他的所有的子集的个数是2的d次方减1(包含空集)。指定一个外部的学习算法,比如SVM之类的。通过该算法计算所有子集的valid

2020-09-05 11:58:26 5314 2

原创 MySQL利用groupby汇总与参数循环法的不同统计方法实现

1. 按天数统计的人数分布情况统计某段时间内活跃用户按天数统计的人数分布情况,分布没有方向,按月内最多天数统计分布SELECT SUM(IF(diffcdate=1,dd,0)) '[1,2)', SUM(IF(diffcdate=2,dd,0)) '[2,3)', SUM(IF(diffcdate=3,dd,0)) '[3,4)', SUM(IF(diffcdate=4,dd,0)) '[4,5)', SUM(IF(diffcdate=5,dd,0)) '[5,6)', SUM(IF(d

2020-09-05 11:56:50 481

原创 机器学习分类问题效果评价的三大类指标

在使用机器学习算法解决一些分类问题的过程中,往往需要不同的模型评估指标,主要有一下三类指标:1.混淆矩阵相关1.1混淆矩阵混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的真实信息。矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。1.2准确率(Accuracy)准确率是最常用的分类性能指标。Accuracy = (TP+TN)/(TP+FN+FP+TN)即正确预测的正反例数 /总数1.3精确率(Precision)精确率容易和准确率被混为一谈。其实,精确率只是

2020-08-15 21:47:17 2612

原创 python机器学习交叉验证实例

交叉验证(CrossValidation)是常用的机器学习训练手段,可以有效检验一个模型的泛化能力。交叉验证需要将原始数据集平等地划分为若干份,例如常用的10折交叉验证,10-folds CV 指的是将数据集分为10份,然后进行10次训练,每次取出一份数据作为测试集,剩下的作为训练集,得到10个模型,最终将10个模型的预测值做一个平均。具体python代码如下:def plot_cross_val(rf4, train_x, train_y,cv_num,path_out): impor.

2020-08-15 21:44:16 1741

原创 机器学习-随机森林的网格调参实例-附python代码

1. 随机森林RandomForestClassifier官方网址:https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html1.1 原理解释从给定的训练集通过多次随机的可重复的采样得到多个 bootstrap 数据集。接着,对每个 bootstrap 数据集构造一棵决策树,构造是通过迭代的将数据点分到左右两个子集中实现的,这个分割过程是一个搜索分割函数的参数空间以寻求最

2020-08-11 23:01:48 8021 2

原创 python常见的数据预处理的方法preprocessing模块

利用python进行常见的数据预处理,主要是通过sklearn的preprocessing模块以及自写的方法来介绍加载包及导入数据# -*- coding:utf-8 -*-import mathimport numpy as npfrom sklearn import datasetsfrom sklearn import preprocessingiris = datasets.load_iris()iris_X = iris.data[:4]iris_y = iris.target

2020-07-31 23:30:55 8431

原创 python利用wordcloud模块生成词云图

本文利用wordcloud模块生成词云图,以今年政府工作报告为例。# -*- coding: utf-8 -*-from wordcloud import WordCloudimport jiebaimport matplotlib.pyplot as pltclass drawWordcloud(): def __init__(self): pass def draw_wordcloud(self,comment_text): cut_text

2020-06-10 20:03:33 553

原创 python带格式保存两个表在一个sheet中,并用logging保存日志信息

1.利用Pandas的to_excel()函数保存数据到excel保存到excel中,并进行字体、对齐、加粗等处理sheet中存放两个表,上表标题居中,加粗,数据不变,下表,居中,并进行百分比的转化2.利用logging模块保存必要的日志信息,并存到指定的文件中# -*- coding:utf-8 -*-import loggingimport numpy as npimport pandas as pdclass SaveToExcel(): def __init__(sel

2020-06-04 18:19:46 311

原创 python连接MySQL数据库并对数据类型进行转换

本文利用pymysql模块连接MySQL数据库,并汇总查询所需数据,同时对数据进行类型转换。# -*- conding:utf-8 -*-import pymysqldef mysql_func(sql): db = pymysql.connect(host="110.109.200.***",port=3306, user="lilei",passwd= "lileicode",database="mydatabase") # 使用 cursor() 方法创建一个游标对象 cursor cu

2020-05-26 17:08:01 1403

原创 python用workbook类方法带格式保存excel

主要步骤:1.用add_worksheet添加一个新的工作表,sheetname为工作表名称2.用add_format在工作表中创建一个新的格式对象来格式化单元格3.用set_row和set_column方法设置sheet表单元格的行高和列宽4.用write方法将普通数据写入单元格中本例是直接将现有数据存到excel为例的def change_format(self,df, writer, Item): """ 修改dataframe的数据格式,如小数转为%,日期改成%Y-%m-%d

2020-05-25 11:38:41 8164

原创 随机变量-离散-连续-假设检验方法

一组随机样本数据需要进行分析处理时,往往需要用到假设检验,对于离散变量discrete多用卡方检验,连续变量continuous用t检验或wilcoxon秩序和检验,具体的的使用场景如下离散变量-卡方检验-适用条件四格表:所有的理论数T≥5并且总样本量n≥40,用卡方进行检验理论数T<5但T≥1并且n≥40,用连续性校正的卡方进行检验有理论数T<1或n<40,用Fisher’s检验...

2020-04-10 18:15:01 3587

原创 数据筛选特征方法-卡方检验法

卡方检验作为非参数的方法,主要是检验自变量对因变量的线性相关程度,常用于特征变量的筛选。一般sklearn包中的函数SelectKBest和SelectPercentile即可实现。本文以SelectPercentile为例# -*- coding:utf-8 -*-import numpy as npimport pandas as pdfrom sklearn.featu...

2020-04-03 20:58:54 2458 2

原创 数据筛选特征方法-决策树法

决策树类的算法一般都能用来计算特征重要性,通过决策树分类器的特征重要性进行评估。常用的决策树分类器有:DecisionTreeClassifier,RandomForestClassifier,ExtraTreesClassifier,GradientBoostingClassifier,XGBClassifier等。但每个分类器下的参数可能略有不同,为了有更好的效果,尽量优化下参数取值。本...

2020-03-27 19:19:25 3116

原创 数据筛选特征方法-方差法

在数理统计中,方差是测算随机变量离散趋势最重要、最常用的指标,方差是各变量值与其均值离差平方的平均数,它是测算数值型数据离散程度的最重要的方法。当数据分布比较集中时,各个数据与平均数的差的平方和较小,当数据分布比较分散(即数据在平均数附近波动较大)时,各个数据与平均数的差的平方和较大,方差就较大。因此方差越大,数据的波动越大;方差越小,数据的波动就越小。sklearn库中的用于特征选择的函数,...

2020-03-25 18:15:46 7775 1

原创 linux常用命令-查看及杀死进程-后台执行程序

查看及杀死进程1.退出编辑状态 shift+;退出用wq 或q!2. ps 命令用于查看当前正在运行的进程。  grep 是搜索,例如: ps -ef | grep java,表示查看所有进程里CMD是java的进程信息  ps -aux | grep java , -aux 显示所有状态3. kill 命令用于终止进程  例如: kill -9 [PID]  -9表示强迫进程立即...

2020-01-12 16:23:08 3602

原创 SQL常用技巧-查询-取数-转化-参数

数据类型转换CAST((SUBSTR(o.create_time FROM 12 FOR 2)) AS SIGNED) b

2019-12-19 12:09:27 1162

原创 常用机器学习算法模型简版代码

# -*- coding: utf-8 -*-"""Spyder EditorCreated on Wed Aug 23 10:18:27 2019@author: lenovo"""import osimport pandas as pdfrom sklearn import metricsfrom sklearn import preprocessingfrom sklea...

2019-12-18 12:09:27 599

原创 python窗口函数

窗函数(window function)转自:https://www.jianshu.com/p/f6e489de57f7用来截取的函数就叫窗函数,窗函数又分很多种,什么矩形窗、三角窗、高斯窗。移动窗口函数rollingDataFrame.rolling(window, min_periods=None, freq=None, center=False,...

2019-12-16 18:57:28 2952

原创 python索引-ix-loc-iloc

loc:对应的索引值(均是数值可连续并取范围)iloc:索引的位置号

2019-12-16 18:55:02 167

原创 np.random.normal()正态分布

np.random.normal()正态分布numpy中高斯分布的概率密度函数numpy.random.normal(loc=0.0, scale=1.0, size=None)参数的意义为:loc:float 概率分布的均值,对应着整个分布的中心centerscale:float 概率分布的标准差,对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高size:int or...

2019-12-15 22:07:56 1897

空空如也

空空如也

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

TA关注的人

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