零基础搞定Python数据分析与挖掘
文章平均质量分 63
零基础搞定Python数据分析与挖掘
浊酒南街
纵使疾风起,人生不言弃。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
xgboost模型预测信用卡欺诈
本文探究了在机器学习中,面对一个大型的人与人之间交易的数据集,如何尽快处理大量数据并区分某交易记录是正常的用户行为还是潜在的信用卡欺诈行为,最终通过构建分类模型来对欺诈交易进行分类区分,并通过恰当的方式对构建的模型进行评估,来解决上述问题。数据内容为2017年Kaggle网站上的案例Credit Card Fraud Detection这一部分的数据集,数据集文件名称为creditcard.csv。原创 2025-03-11 19:53:31 · 720 阅读 · 0 评论 -
AdaBoost模型预测之信用卡违约(下)
【代码】AdaBoost模型预测之信用卡违约(下)原创 2025-03-10 19:27:43 · 348 阅读 · 0 评论 -
AdaBoost模型预测之信用卡违约(上)
本文探讨了如何使用Python进行信用卡违约数据的预处理、类别不平衡处理、AdaBoost模型建立、参数调优及模型评估,包括准确率、ROC曲线和特征重要性分析。以信用卡违约数据为例,该数据集来源于UCI网站,一共包30000条记录和25个变量,其中自变量包含客户的性别、受教育水平、年龄、婚姻状况、信用额度、6个月的历史还款状态、账单金额以及还款金额,因变量y表示用户在下个月的信用卡还款中是否存在违约的情况(1表示违约,0表示不违约)。原创 2025-03-07 17:49:46 · 728 阅读 · 0 评论 -
GBDT的改进之XGBoost算法介绍
XGBoost是由传统的GBDT模型发展而来的,GBDT模型在求解最优化问题时应用了一阶导技术,而XGBoost则使用损失函数的一阶和二阶导,而且可以自定义损失函数,只要损失函数可一阶和二阶求导。XGBoost算法相比于GBDT算法还有其他优点,例如支持并行计算,大大提高算法的运行效率;XGBoost在损失函数中加入了正则项,用来控制模型的复杂度,进而可以防止模型的过拟合;XGBoost除了支持CART基础模型,还支持线性基础模型;原创 2025-03-07 11:46:17 · 826 阅读 · 0 评论 -
XGBClassifiler函数介绍
XGBClassifier 是 XGBoost 库中用于分类任务的类。XGBoost 是一种高效且灵活的梯度提升决策树(GBDT)实现,它在多种机器学习竞赛中表现出色,尤其擅长处理表格数据。max_depth;用于指定每个基础模型所包含的最大深度,默认为3层learning_rate:用于指定模型迭代的学习率或步长,默认为0.1;即对应的梯度提升模型FTxF_T(x)FTxFTxFT−1xυftxFTxFT−1xυftx。原创 2025-03-06 19:44:40 · 1464 阅读 · 0 评论 -
非平衡数据的处理
ratio:用于指定重抽样的比例,如果指定字符型的值,可以是’minority’(表示对少数类别的样本进行抽样)、‘majority’(表示对多数类别的样本进行抽样)、‘not minority’(表示采用欠采样方法)、‘all’(表示采用过采样方法),默认为’auto’,等同于’all’和’not minority’。的观测值为(2,3,10,7),从图中的5个近邻随机挑选两个样本点,它们的观测值分别为(1,1,5,8)和(2,1,7,6),3.对于每一个随机选中的样本点,构造新的样本点。原创 2025-03-04 20:07:25 · 960 阅读 · 0 评论 -
GBDT算法的介绍
梯度提升树算法实际上是提升算法的扩展版,在原始的提升算法中,如果损失函数为平方损失或指数损失,求解损失函数的最小值问题会非常简单,但如果损失函数为更一般的函数,目标值的求解就会相对复杂很多。GBDT就是用来解决这个问题,利用损失函数的负梯度值作为该轮基础模型损失值的近似,并利用这个近似值构建下一轮基础模型。原创 2025-03-04 16:05:09 · 390 阅读 · 0 评论 -
Adaboost算法介绍
提升树与线性回归模型的思想类似,所不同的是该算法实现了多颗基础决策树f(x)的加权运算,Fx∑m1MαmfmxFm−1xαmfmxFxm1∑MαmfmxFm−1xαmfmx其中,F(x)是由M棵基础决策树构成的最终提升树,Fm−1xF_{m-1}(x)Fm−1x表示经过m-1轮迭代后的提升树,αm\alpha_mαm为第m棵基础决策树所对应的权重,fmx。原创 2025-02-27 19:23:47 · 882 阅读 · 0 评论 -
GrandientBoostingClassifier函数介绍
GradientBoostingClassifier 是 Scikit-learn 库中的一个分类器,用于实现梯度提升决策树(Gradient Boosting Decision Trees,GBDT)算法。GBDT 是一种强大的集成学习方法,能够通过逐步构建一系列简单的决策树(通常是浅树)来提高模型的预测性能。它在多个机器学习竞赛中表现出色,是用于分类和回归任务的流行选择。原创 2025-02-26 17:14:46 · 926 阅读 · 0 评论 -
AdaBoostClassifier函数介绍
AdaBoostClassifier 是 Scikit-learn 库中的一个分类器,用于实现 AdaBoost 算法。AdaBoost,或称 “自适应增强”,是一种流行的用于提升分类算法性能的集成学习方法。它通过组合多个简单的弱分类器(通常是决策树桩,即深度为 1 的决策树)来构建一个强分类器。原创 2025-02-26 16:49:53 · 420 阅读 · 0 评论 -
DBscan算法实战
在密度聚类算法的实战部分,我们将使用国内31个省份的人口出生率和死亡率数据作为分析对象。原创 2025-02-20 20:17:18 · 641 阅读 · 0 评论 -
preprocessing.scale函数介绍
preprocessing.scale 是 scikit-learn 库中的一个函数,用于在数据预处理中对特征进行标准化(标准差缩放)。标准化是指将数据调整到均值为零,方差为一的分布。这个过程有助于提升某些机器学习算法的性能,特别是那些依赖距离计算的算法,如支持向量机、k-means 聚类等。参数介绍X:要进行标准化处理的数据数组或者矩阵。通常是一个二维数组,其中行代表样本,列代表特征。axis:指定沿哪个轴进行数据标准化。默认值为 0,即对每一列(特征)进行标准化。原创 2025-02-20 10:35:28 · 787 阅读 · 0 评论 -
make_moon函数介绍
make_moons 是 scikit-learn 中用于生成合成数据集的函数,专门用于创建两个交错的半月形(或新月形)数据集。这种数据集常用于演示聚类算法(如 DBSCAN)或分类算法(如 SVM)在处理非线性可分数据时的性能。noise=0.1,原创 2025-02-19 15:42:42 · 1030 阅读 · 0 评论 -
cluster.DBSCAN函数介绍
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,能够发现任意形状的簇,并有效识别噪声点。在 scikit-learn 库中,cluster.DBSCAN 是该算法的实现。p=None,原创 2025-02-19 14:36:57 · 698 阅读 · 0 评论 -
DBscan算法实战1
【代码】DBscan算法实战1。原创 2025-02-17 19:30:56 · 268 阅读 · 0 评论 -
DBscan算法理论知识
本期将介绍另一种聚类算法,那就是基于密度聚类的算法。该算法的最大优点是可以将非球形簇实现恰到好处的聚类,如下图所示,即为一个非球形的典型图形:如上图所示,右上角的样本点为一个簇,呈现球形特征,但是左下角的两个样本簇,存在交合状态,并非球形分布。如果直接使用K均值聚类算法,将图形中的数据,聚为三类,将会形成下图的效果:如上图所示,K均值聚类的效果很显然存在差错。如果利用本文所接受的DBSCAN聚类算法,将不会出现这样的问题。原创 2025-02-17 15:37:22 · 1150 阅读 · 0 评论 -
DBscan和kmeans的区别
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)和K-Means是两种不同的聚类算法,它们在处理数据的方式和适用场景上存在一些关键区别:K-Means:是基于中心的聚类算法。它假设数据集的每个点都是独立和彼此固定的,然后通过最小化点到其聚类中心的距离来进行聚类。K-Means需要预先指定簇的数量K。DBSCAN:是基于密度的聚类算法。不需要预先指定簇的数量,而是通过设置参数(如epsilon和最小点数minPts)来识别原创 2025-02-14 11:09:08 · 723 阅读 · 0 评论 -
KMeans聚类实战2
使用拐点法和轮廓系数法,选取最佳k值。原创 2025-02-08 17:24:12 · 406 阅读 · 0 评论 -
sns.lmplot函数介绍
sns.lmplot 是 Seaborn 库中的一个函数,用于绘制线性回归模型图。它主要用于可视化两个变量之间的关系,并拟合一条回归线来展示它们的线性趋势。lmplot 支持多种回归模型,并允许通过分组变量进行分组绘图。x=None,y=None,data=None,hue=None,col=None,row=None,height=5,aspect=1,x_ci='ci',ci=95,order=1,size=None主要参数说明。原创 2025-02-06 14:18:14 · 533 阅读 · 0 评论 -
KMeans聚类实战1
【代码】KMeans聚类实战1。原创 2025-02-05 16:00:46 · 186 阅读 · 0 评论 -
KMeans函数介绍
KMeans 是一种常用的聚类算法,属于无监督学习。它通过将数据集划分为 k 个簇,使得每个数据点属于离其最近的簇中心(质心)对应的簇。KMeans 算法的目标是最小化簇内数据点与质心之间的平方距离之和。n_clusters:用于指定聚类的簇数init:用于指定初始的簇中心设置方法,如果为’k-means++‘,则表示设置的初始簇中心之间相距较远;如果为’random’,则表示从数据集中随机挑选k个样本作为初始簇中心;如果为数组,则表示用 户指定具体的簇中心。原创 2025-02-05 14:29:41 · 582 阅读 · 0 评论 -
K-means聚类算法理论知识
对于有监督的数据挖掘算法而言,数据集中需要包含标签变量(即因变量y的值)。但是有些场景下,并没有给定的y值,对于这类数据的建模,一般称为无监督的数据挖掘算法,,最为典型的当属聚类算法。kmeans 聚类算法利用距离远近的思想将目标数据聚集为指定的k个簇,进而使样本呈现簇内差异小,簇间差异大的特征。在kmeans聚类模型中,对于指定的k个簇,只有簇内样本越相似,聚类效果才越好。基于这个思想,可以理解为簇内样本的离差平均之和达到最小即可。进而可以衍生出kmeans聚类的目标函数:其中,cjc_jc。原创 2025-01-24 15:15:16 · 1733 阅读 · 0 评论 -
fit_transform,fit,transform区别和作用
sklearn中封装的各种算法 调用之前都要fit。fit相对于整个代码而言,为后续API服务,用于从一个训练集中学习模型参数,包括归一化时要用到的均值,标准偏差。fit之后,可以调用各种API方法,transform是其中之一。所以当你调用transform之外的方法,也必须要先fit。但是fit与transform无关,只是数据处理的两个环节。fit_transform这个函数名,仅仅是为了写代码方便,会高效一点。数据预处理中方法。原创 2025-01-24 11:17:05 · 1003 阅读 · 0 评论 -
SVM模型实战2
下面是一份森林火灾面积预测数据集:forestfires.csv,我们还是先通过网格搜索法,寻找到最合适的参数,然后进行模型预测。原创 2025-01-23 10:17:08 · 306 阅读 · 0 评论 -
SVM模型实战1
这里有一份手写体字母识别的数据,我们采用网格搜索法,分别测试LinearSVC和SVC模型,最终选择SVC模型,并计算预测结果的准确性。原创 2025-01-22 16:08:22 · 918 阅读 · 0 评论 -
SVM模型(理论知识3)
经验之谈:大多数情况下,选择高斯核函数是一种相对偷懒而有效的方法,因为高斯核是一种指数函数,它的泰勒展开式可以是无穷维的,即相当于把原始样本点映射到高维空间中。对于非线性SVM模型而言,需要经过两个步骤,一个是将原始空间中的样本点映射到高维的新空间中,另一个是在新空间中寻找一个用于识别各类别样本点线性"超平面"。在原始空间中某个函数的输出,那么该函数就称为核函数。假设原始空间的样本点为x,将样本通过某种转换。,在其扩展到高维空间后,它们的内积。假设原始空间中的两个样本点为。可以利用核函数替换,即。原创 2025-01-21 16:41:59 · 1158 阅读 · 0 评论 -
SVC函数介绍
SVC(Support Vector Classification)是支持向量机(SVM)的一种实现,主要用于分类问题。支持向量机是一种监督学习算法,其基本原理是找到一个最优的超平面来将不同类别的数据分开。SVC在小样本和高维空间中表现良好,且能够处理非线性分类问题。C:用于指定目标函数中松弛因子的惩罚系数值,默认为1kernel:用于指定SVM模型的核函数,该参数如果为’linear’,就表示线性核函数;原创 2025-01-21 16:00:29 · 891 阅读 · 0 评论 -
make_classification函数介绍
make_classification是Scikit-learn库中用于生成合成数据集的一个函数,通常用于测试和验证机器学习算法。它专门用于生成用于分类问题的合成数据集。这个函数可以在控制各种数据特性的同时快速生成标签数据。以下是make_classification的一些关键参数和它们的功能:这个函数返回两个数组:X:形状为[n_samples,n_features]的数组,表示生成的多维数据集。y:形状为[n_samples]的数组,表示每个样本的类标签。原创 2025-01-20 14:37:23 · 752 阅读 · 0 评论 -
LinearSVC函数介绍
LinearSVC 是 scikit-learn 库中支持向量机(SVM)的一种实现,专门用于在线性条件下进行分类。与 SVM 模型的其他实现(例如 SVC 使用核技巧)不同,LinearSVC 更适合用于大规模、稀疏数据集,特别是在文本分类等任务中。tol:用于指定SVM模型迭代的收敛条件,默认为0.0001C:用于指定目标函数中松弛因子的惩罚系数值,默认为1fit_intercept:bool类型参数,是否拟合线性“超平面”的截距项,默认为True。原创 2025-01-20 10:55:26 · 749 阅读 · 0 评论 -
SVM模型(理论知识2)
将图中五角星所代表的正例样本用1表示,将实心圆所代表的负例样本有-1表示;不管是五角星代表的样本点,还是实心圆代表的样本点,这些点均落在两条虚线以及虚线之外,则说明这些点带入到方程w’x+b所得的绝对值一定大于等于1。点对应的取值越大于+1,样本为正例的可能性越高。故利用如上的乘积公式可以得到线性可分的SVM所对应的函数间隔满足>=1的条件。所以,为了避免这样的问题,需要对函数间隔做约束,常见的约束为单位化处理。其中,y_i 表示样本点所属的类别,用+1和-1表示。线性可分的SVM所对应的函数间隔满足。原创 2025-01-17 16:27:30 · 1679 阅读 · 0 评论 -
SVM模型(理论知识1)
支持向量机(support vector machine,SVM)是有监督学习中最有影响力的机器学习算法之一,典型应用是解决手写字符识别问题。支持向量机是一种二分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。支持向量机的学习算法是求解凸二次规划的最优化算法。基础的SVM算法是一个二分类算法,至于多分类任务,可以通过多次使用SVM进行解决。超平面的理解:在一维空间中,如需将数据切分为两段,只需要一个点即可;原创 2025-01-16 17:08:58 · 900 阅读 · 0 评论 -
naive_bayes.BernoulliNB()函数介绍
naive_bayes.BernoulliNB() 是 scikit-learn 库中的一个类,用于实现朴素贝叶斯分类器中的伯努利朴素贝叶斯模型。这个模型适用于二元/伯努利分布的数据特征,特别是在特征是布尔型(即 0/1)的情况下,常用于文本分类任务。原创 2025-01-15 14:48:31 · 589 阅读 · 0 评论 -
伯努利贝叶斯分类器实战
用户对其购买的蚊帐进行评论,该数据集是通过爬虫的方式获得,一共包含10 644条评论,数据集中的Type变量为评论所对应的情绪。数据集包含4个字段,分别是用户昵称、评价时间、评价内容和对应的评价情绪。原创 2025-01-15 11:15:18 · 906 阅读 · 0 评论 -
naive_bayes.MultinomialNB()函数介绍
naive_bayes.MultinomialNB 是 Scikit-learn 库中的一个类,用于实现多项式朴素贝叶斯分类器。朴素贝叶斯是一种基于贝叶斯定理的简单而高效的监督学习算法,特别适合于高维数据集的分类任务,如文本分类。在输入特征是计数数据(如文档的词频)时,多项式朴素贝叶斯表现尤其出色。原创 2025-01-14 15:50:24 · 667 阅读 · 0 评论 -
多项式贝叶斯分类器实战
蘑菇数据集来自于UCI网站,一共包含8 124条观测和22个变量,其中因变量为type,表示蘑菇是否有毒,剩余的自变量是关于蘑菇的形状、表面光滑度、颜色、生长环境等。表中的所有变量均为字符型的离散值,由于Python建模过程中必须要求自变量为数值类型,因此需要对这些变量做因子化处理。原创 2025-01-14 10:06:34 · 455 阅读 · 0 评论 -
pd.factorize函数介绍
pd.factorize 是 Pandas 库中的一个函数,用于对一维数据进行编码,将原始的标签转换为整数值。这个函数特别有用,当你需要将分类数据转换成整数编码以便用于机器学习模型时,比如处理分类特征。原创 2025-01-13 17:17:30 · 513 阅读 · 0 评论 -
高斯贝叶斯分类器实战
面部皮肤区分数据集来自于UCI网站,该数据集含有两个部分,一部分为人类面部皮肤数据,该部分数据是由不同种族、年龄和性别人群的图片转换而成的;另一部分为非人类面部皮肤数据。两个部分的数据集一共包含245 057条样本和4个变量,其中用于识别样本是否为人类面部皮肤的因素是图片中的三原色R、G、B,它们的值均落在0~255;因变量为二分类变量,表示样本在对应的R、G、B值下是否为人类面部皮肤,其中1表示人类面部皮肤,2表示非人类面部皮肤。原创 2025-01-13 10:28:43 · 745 阅读 · 0 评论 -
naive_bayes.GaussianNB()函数介绍
naive_bayes.GaussianNB 是 Scikit-learn 中的一个类,用于实现高斯朴素贝叶斯分类器。该分类器主要用于特征值服从正态分布(高斯分布)的数据场景。高斯朴素贝叶斯分类器假设特征与特征之间是条件独立的,这一假设使得该分类器在计算上非常高效。原创 2025-01-10 14:37:36 · 644 阅读 · 0 评论 -
朴素贝叶斯模型(理论部分)
该分类器的实现思想非常简单,即通过已知类别的训练数据集,计算样本的先验概率,然后利用贝叶斯概率公式测算未知类别样本属于某个类别的后验概率,最终以最大后验概率所对应的类别作为样本的预测值。当数据集中的自变量X均为0-1二元值时(例如在文本挖掘中,判断某个词语是否出现在句子中,出现用1表示,不出现用0表示),通常会优先选择伯努利贝叶斯分类器。如上等式为条件概率的计算公式,表示在已知事件A的情况下事件B发生的概率,其中P(AB)表示事件A与事件B同时发生的概率。对于上面的条件概率公式而言,样本最终属于哪个类别。原创 2025-01-09 19:44:28 · 906 阅读 · 0 评论 -
KNN算法代码实现3
上一篇我们介绍了使用KNN算法进行分类的模型,这一篇我们介绍使用使用KNN算法进行预测。原创 2025-01-09 14:12:40 · 380 阅读 · 0 评论
分享