python算法
文章平均质量分 79
分享案例、代码。
陈同学2020
问题驱动,输出导向。
展开
-
特征工程总结(一)
注:以下总结参考CDA李御玺老师课件。一、影响分类正确率的三个因素(一)数据(Data)• 若数据质量差(有空值(Null Values)、错误(Wrong Value)、离群值(Outlier)),容易造成分析结果不正确• 若数据在目标字段上分布不平衡,容易造成模型无法建置• 若训练数据太少,容易造成模型不稳定及效能不彰(二) 属性(Attribute)• 重要属性是否收集完整,不重要的属性是否有事先移除• 属性间的相关性是否能掌握(三)算法(Algorithm)• 参数设定是否最佳原创 2020-06-10 14:16:38 · 522 阅读 · 0 评论 -
模型评估与改进(四)// 样本不均衡
一、什么是样本不均衡?回答:在有监督分类算法中,标签的类别比重差异大。二、如何从采样角度纠正样本不均衡?回答:1、上采样(over-sampling):通过增加分类中少数类样本的数量来实现样本均衡。比较好的方法有SMOTE算法,通过插值的方式加入近邻的数据点。2、下采样(under-sampling):通过减少分类中多数类样本的数量来实现样本均衡。这个方法可能导致信息缺失,为克服这一缺点,RandomUnderSampler丢掉更多类别边界部分的数据。from imblearn.over_sam原创 2020-06-19 13:59:16 · 1363 阅读 · 0 评论 -
模型评估与改进(二)// 网格搜索
1、网格搜索是什么?回答:网格搜索(grid search)主要是指尝试重要参数的所有可能组合,找到最佳泛化性能的参数组合。为了得到对泛化性能的更好估计,可以使用交叉验证来评估每种参数组合的性能,而不是仅将数据单次划分为训练集与验证集。2、训练集、验证集、测试集三者的区别?回答:训练集用于构建模型,验证集用于选择模型参数,测试集用于评估所选参数性能。3、手写带交叉验证的网格搜索import numpy as npfrom sklearn.svm import SVC #假设用SVC分类器fro原创 2020-05-16 11:38:37 · 903 阅读 · 0 评论 -
模型评估与改进(一)// 交叉验证
1、划分训练集和测试集的意义?回答:训练集用于构建和训练模型,可评估模型的拟合效果;测试集用于评估模型的泛化能力。通过比较训练集和测试集的score,可以判断模型是否存在过拟合或欠拟合问题。2、交叉验证是什么?回答:交叉验证(cross-validation)是一种评估给定算法在特定数据集上泛化性能的统计学方法,它比单次划分训练集和测试集的方法更加稳定、全面。3、交叉验证的优缺点?回答:①优点包括:其一,提供模型对训练集选择的敏感性信息;其二,对数据的使用更加高效,更多的数据通常可以得到更为精确的原创 2020-05-16 10:45:03 · 1868 阅读 · 0 评论 -
模型评估与改进(三)// 评估指标
1、常用的评估指标有哪些?回答:评估分类算法的性能用精度accuracy;评估回归算法的性能用R方(R的平方)。** 第一部分:二分类的评估指标**2、精度accuracy指标的不足?回答:实际应用场景中,单一的精度accuracy指标不能满足要求,甚至是不合适的,需要寻找其他衡量指标。①错误类型。二分类算法在实践中是最常用的机器学习应用,由于模型不是完美的,它会误判,误判包括假正例(错误的阳性预测)、假反例(错误的阴性预测)。有时候,误判是不容忽视。②数据集不平衡。如果数据集中反类占原创 2020-05-17 20:40:20 · 2229 阅读 · 0 评论 -
【机器学习算法实战3】产品营销模型之建置及预测(CDA赛题)
一、案例介绍这是CDA数据分析网站的一个赛题,A公司希望发掘用户购买产品的行为习惯,建立产品精准营销模型,对有意向的客户进行精准营销,增加收入,减少开支。将通过混淆矩阵(Confusion matrix)来评价分类模型的准确率,准确率越高,说明正确预测出响应营销效果越好。本次实战以官方公布的评分标准accuracy为目标进行参数调优与建模。又探索了在不同成本收益模型下,选择不同的模型评估指标,最终得到最高的潜在盈利预测。附赛题网址:https://contest.cda.cn/info/id/6.重原创 2020-07-09 09:53:14 · 1485 阅读 · 4 评论 -
【机器学习算法实战1】小额信用贷款预测
B站视频链接一、介绍本案例将涉及算法填充缺失值、管道式网格搜索、阈值调优、对未知数据的预测等,分别采用逻辑回归、决策树、XGBoost和MLP神经网络4种算法进行模型构建与评估,参数调优的第一性指标:auc值。同时深入讲解ROC曲线、K-S曲线的表现。二、框架1 案例简介2 数据展示3 特征工程4 探索分析5 数据预处理6 模型构建与评估(4个算法)7 阈值调优8 预测...原创 2020-06-26 10:24:52 · 1482 阅读 · 3 评论 -
【机器学习算法实战2】基于Apriori算法的零售商品购物篮分析
一、案例介绍了解顾客的购买习惯和偏好对商家非常重要。挖掘分析商品之间的关联性,掌握顾客的购买行为特征,以此为依据来制定行动策略,如商品摆放、商品定价、新品采购集合、促销策略等等,可以帮助商家提高销量获取更多利润。本视频首先回顾关联分析的相关知识点,带领大家一起用python手写Apriori算法,最后对零售商品购物篮数据挖掘有效的关联规则。重要事情说三遍~想听我讲案例,请点这里,进入B站想听我讲案例,请点这里,进入B站想听我讲案例,请点这里,进入B站二、框架附部分代码及输出..原创 2020-07-01 12:51:00 · 4129 阅读 · 8 评论 -
Python算法练习(十四)// 算法:协同过滤(附手写python实现代码),数据集:玩具电商数据集
一、练习目标1、手写python代码实现基于协同过滤的推荐系统,包括基于Item和基于User两种算法;2、通过实战案例,比较基于Item和基于User的协同过滤两者的差异。二、重要结论1、本案例的数据集特点是用户多、商品少;2、将预测购买频次作为推荐指数;3、构建基于Item协同过滤的推荐系统,用时相对较少;4、两种算法得到的推荐商品明显不一样。三、练习步骤1、导入数据2、数据预处理3、构建基于用户协同过滤的推荐系统4、构建基于物品协同过滤的推荐系统四、附关键代码原创 2020-05-11 23:34:27 · 1118 阅读 · 1 评论 -
Python算法练习(三)// 算法:决策树,数据集:Titantic
第一次练习Titantic,尚有许多不足之处,欢迎交流。一、初步导入库(后面建模还会再导入库)二、探索数据三、分析数据四、数据清洗及预处理五、模型构建预评估模型初探模型调优:网格搜索及混淆矩阵...原创 2020-03-30 17:02:36 · 770 阅读 · 2 评论 -
Python算法练习(六)// 算法:决策树,数据集:电信离网用户流失挖掘案例
一、读取数据二、探索数据三、特征筛选四、模型构建五、模型评估六、决策树七、模型保存与读取原创 2020-04-09 17:44:40 · 929 阅读 · 1 评论 -
Python算法练习(十二)// 算法:SVM vs Adaboost vs 逻辑回归,数据集:澳大利亚weather
一、练习目标:1、数据清洗及预处理,掌握分类特征及标签的编码方法,包括OrdinalEncoder、OneHotEncoder、LabelEncoder。2、通过练习,重点掌握SVC算法、Adaboost算法的调参,重点掌握提高召回率的调参办法。3、比较不同算法建立分类模型的运行时间、准确率、召回率、ROC值。二、重要结论:1、存在严重缺失值问题。(特征工程多么重要!!本次练习重点在算法...原创 2020-04-29 21:38:47 · 685 阅读 · 2 评论 -
Python算法练习(七)// 算法:朴素贝叶斯,数据集:Kaggle 旧金山犯罪分类预测
一、导入包二、导入数据三、探索数据四、数据预处理五、模型构建与评估六、预测原创 2020-04-15 17:20:02 · 1466 阅读 · 0 评论 -
Python算法练习(五)// 算法:KMeans,数据集:标准普尔500指数
本练习利用KMeans算法对标准普尔500指数的股票进行聚类,为进一步投资提供决策参考。该数据集有2个特征,借助散点图明显看出股票可以分为4类。建立模型后,通过肘部法和轮廓系数得到最佳的簇数为4。最后,在散点图上用不同颜色直观展示不同类别的样本,并画出每类的质心。...原创 2020-04-05 12:45:45 · 755 阅读 · 0 评论 -
Python算法练习(十)// 算法:随机森林(分类),数据集:Wine
一、练习目标1、通过练习掌握随机森林分类的应用,分析参数调整对结果的影响。2、区分随机森林分类与决策树分类的差别。建立最优的分类预测模型。3、通过数据挖掘了解影响红酒标签(三分类)的关键特征。二、重要结论1、探索数据发现,在小提琴图中可直观看出①特征proline,当取值大于1000,基本可以判断样本属于标签0; ②特征od280/od315_of_diluted_wines,当取值小于...原创 2020-04-24 20:51:32 · 3023 阅读 · 1 评论 -
Python算法练习(二)// 算法:K-Means,数据集:航空公司客户价值分析
【前言】本案例参考RFM模型构建航空公司客户价值分析的LRFMC模型。数据来源《Python数据分析与挖掘实战》第七章。两点说明:1、在样本量6万+的情况下,个人电脑运行算力还是不太够。后来设置了n_jobs=4,max_iter=100,迭代了一顿饭的时间终于出来结果。2、本案例着重算法实现,对数据探索和分析涉及较少。一、导入库二、导入数据并认识数据三、选择特征...原创 2020-03-29 13:51:38 · 1435 阅读 · 0 评论 -
Python算法练习(四)// 算法:KNN,数据集:DatingTestSet
一、导入数据二、探索数据1、异常值判断2、单个特征与标签的关系注:蓝色(魅力十足)、黄色(有点魅力)、绿色(不喜欢)3、特征间的关系注:蓝色(不喜欢)、黄色(有点魅力)、绿色(魅力十足)三、数据预处理四、模型构建与评估五、预测...原创 2020-04-05 08:40:03 · 1444 阅读 · 0 评论 -
Python算法练习(十五)// 算法:决策树,数据集:新闻分类
一、练习目标1、利用决策树算法预测新闻分类2、掌握文本数据清洗3、掌握关键词选取方法TfidfVectorizer4、掌握文本保存方法二、练习步骤1、读取文档内容2、选取关键词3、划分训练集&测试集4、模型构建与评估三、遗留问题1、为何网格搜索后得到的决策树在训练集和测试机的精度score却下降了?四、附关键步骤...原创 2020-05-29 11:38:54 · 1241 阅读 · 1 评论 -
Python算法练习(十三)// 算法:关联规则,数据集:美国国会投票
一、练习目标1、掌握TransactionEncoder编码方法,2、掌握关联规则的模型构建,加深理解关键指标(支持度、置信度、提升度等)。二、关键结论1、支持度设置为0.3,比设置为0.5,所得频繁项集大大增加.2、当置信度统一设置为0.99时,前者所得的强关联规则集共为260条,后者仅有2条。3、如果支持度设置过高,那么将省略了许多可能有意义的强关联规则集。4、本次练习设置不同置...原创 2020-05-05 12:12:50 · 6938 阅读 · 3 评论 -
Python算法练习(一)// 算法:KNN,数据集:breast_cancer
一、导入库二、实例化并认识数据可见:特征数据量纲差异大三、数据预处理:归一化四、算法模型初探五、参数调优,寻找最佳K值①学习曲线验证集,归一化,最佳k值=12②学习曲线与交叉验证组合验证集,归一化,最佳k值=6全部样本集,未归一化,最佳k值=12全部样本集,归一化,最佳k值=8...原创 2020-03-28 17:13:29 · 2150 阅读 · 1 评论 -
Python算法练习(八)// 算法:线性回归,数据集:fetch_california_housing
一、挖掘目标1)分析、识别影响房屋价格的关键特征;2)预测房屋价格。二、分析方法经过探索分析发现该案例特征存在①异常值问题②多重共线性问题,通过尝试删除异常值、或不重要特征或有共线性特征来提高R方。本次练习共应用了线性回归、岭回归、Lasso回归算法,并最终确定用岭回归算法建立模型并预测。三、总结通过本次练习,系统掌握了线性回归的分析步骤和流程,对线性回归模型有了进一步的认识。...原创 2020-04-18 18:25:45 · 2314 阅读 · 0 评论 -
Python算法练习(九)// 算法:逻辑回归,数据集:breast_cancer
一、目标1、通过本次练习,掌握逻辑回归算法的运用,认识L1正则化与L2正则化的差异2、对比逻辑回归算法与KNN算法对breast_cancer(二分类)的预测二、重要代码及结论(一)导入数据(二)探索数据(三)建立逻辑回归模型与评估(四)KNN算法 vs 逻辑回归算法...原创 2020-04-21 00:25:16 · 1258 阅读 · 0 评论 -
Python算法练习(十一)// 算法:随机森林(回归),数据集:Boston房价
一、练习目标1、通过练习加深对随机森林回归算法的理解,学会调节参数得到最优模型;2、区分随机森林回归与决策树回归的效果差别;3、通过数据挖掘得到影响房价的关键特征。二、关键结论1、特征存在明显的验证多重共线性;2、关键特征LSTAT、RM;3、Boston房价数据集用随机森林回归的效果最好,优于决策树回归算法、线性回归算法。三、练习步骤(一)导入数据(二)探索数据...原创 2020-04-25 12:35:39 · 4684 阅读 · 1 评论 -
Python算法总结(一)KNN分类(附手写python实现代码)
本篇文档是在闭卷之下一个字一个字写出来,恐有错漏,请谨慎参考。一、算法类型有监督的分类算法二、算法原理遵循越相近越相似的思想。计算目标样本(无标签,待预测)到所有已知样本集(有标签,已知)的距离集。假设指定近邻为k个,通过对距离集排序后得到k个较小距离的已知样本子集,分析k个近邻已知样本子集的标签分布,遵循少数服从多数的原则,取分布比重最大的标签作为目标样本的预测标签。三、算法流程第一步:准备已处理好的已知样本集Data(N个样本,M个特征,1列标签),指定k个近邻;第二步:计算一个目标样本g原创 2020-05-26 22:20:13 · 1176 阅读 · 0 评论 -
Python算法总结(二)KMeans(附手写python实现代码)
本篇文章是在闭卷之下据我个人的理解一个字一个字写出来,恐有错漏,请谨慎参考。一、算法类型无监督的聚类算法二、算法原理将样本划分为不同簇(拼音:cu)数,直观上,簇内样本较为聚集,簇间样本较为分开。每个样本到本簇质心的距离,小于到其他簇质心的距离。三、算法流程第一步:准备已处理好的样本集Data(N个样本,M个特征),指定聚类k簇,迭代次数max_iter;第二步:随机选取k个样本作为第一代质心集C,表示为:c0,c1…ck-1(这里下标索引将作为聚类标签);第三步:计算每个样本到每个质心的距原创 2020-05-26 22:26:26 · 1453 阅读 · 0 评论 -
Python算法总结(九)集成算法
注:本篇文章不涉及模型参数调优。参数调优是一个重要的大话题。1、什么是集成算法?多个模型集成在一起的模型叫做集成评估器ensemble estimator,组成集成评估器的每个模型都叫做基评估器base estimator或弱学习器。2、集成算法有哪些?装袋法Bagging提升法Boosting堆叠法Stacking3、什么是装袋法Bagging?Bagging选用相同的弱学习器作为基模型,每个基模型的训练数据不是全部的数据集,而是通过“有放回的随机抽样”得到的随机子集,预测时各个基模型进行原创 2020-06-12 22:45:25 · 1341 阅读 · 0 评论 -
Python算法总结(十)// 优点、缺点和参数
注:本文总结参考《Python机器学习基础教程》,感谢作者!算法一神经网络MLP算法优点给定足够的计算时间和数据,仔细调节参数,神经网络相对其他机器学习算法表现往往最好。算法缺点(1)需要很长的训练时间(2)MLP在均匀数据上性能最好。如果数据包含不同种类的特征,基于树的模型可能表现更好。、(3)隐层层权重可视化,但难以解释关键参数(1)hidden_layer_sizes参数,层数和每层的隐单元个数。每个隐层的结点个数通常与输入特征个数相近。(2)activation参数,(3)a原创 2020-06-30 08:53:29 · 867 阅读 · 0 评论 -
Python算法总结(七)Adaboost(附手写python实现代码)
注:adaboost可以做分类也可以做回归,本篇以构建二分类模型为例,通过手写代码,加深对算法原理与流程的理解。一、算法类型有监督的分类算法二、算法原理- 分类器的错误率:- 弱分类器的权重:注:错误率越高,该分类器的权重越小- 正确分类的样本权重:- 错误分类的样本权重:注:初始化样本权重是相等的;如果该样本被错误分类,则在下一轮该样本的权重被提高三、手写Python算法def classify(xmat,i,threshold,mark): ''' 函数功能原创 2020-06-06 23:04:26 · 3836 阅读 · 2 评论 -
Python算法总结(三)决策树分类(附手写python实现代码)
(决策树既可以做分类也可以做回归,本篇侧重决策树分类)一、算法类型有监督的分类算法二、算法原理决策树本质上是一种图结构,由根节点、内部节点、叶节点组成。根节点&内部节点是决定性特征feature,用于分支决策;叶节点用于分类决策。决策树天生过拟合,为提高模型的精度,减少模型的复杂度,往往需要剪枝处理。算法要解决三个核心问题,如何分支?如何减枝?如何给出类别判定?为回答核心问题,算法给出三个核心策略,一是分支策略,二是剪枝策略,三是分类策略。关于分支策略的几个重要指标信息量(不纯度)衡原创 2020-06-01 23:17:50 · 4772 阅读 · 0 评论 -
Python算法总结(五)线性回归(附手写python实现代码)
一、算法类型有监督的回归算法二、手写线性回归算法- 简单线性回归(1)损失函数公式(2)参数w求解公式(3)手写python算法计算回归系数def Standard_Regress(dataset):xmat=np.mat(dataset.iloc[:,:-1].values)ymat=np.mat(dataset.iloc[:,-1].values).Txtx=xmat.Txmatif np.linalg.det(xtx)==0:print(‘矩阵为奇异矩阵,无法求逆’)ret原创 2020-06-04 22:55:37 · 1986 阅读 · 0 评论 -
Python算法总结(四)朴素贝叶斯(附手写python实现代码)
一、算法类型有监督的分类算法二、算法原理MultinomialNB算法,则:A是类别,B是特征p(类别i/特征)=p(类别i) * p(特征/类别i) / Σ( p(特征/类别i) * p(类别i) )p(特征/类别i)= ( p(特征1/类别i) * p(特征2/类别i) * … * p(特征n/类别i) ),注意:特征间相互独立,累积三、算法特点MultinomialNB特点:特征服从多项式概率分布(类似抛骰子)特征取值不能为负数(遗留问题:待理解)GaussianNB特原创 2020-06-03 22:08:31 · 2803 阅读 · 1 评论 -
Python算法总结(十一)Apriori算法(附手写python实现代码)
一、算法类型无监督算法二、算法原理(1)算法流程(2)指标三、手写Python算法(1)产生频繁项集def create_c1(dataset): """ #辅助函数1 函数功能:⽣成第⼀个候选项集c1,每个项集只有1个item 参数说明: dataset:原始数据集 返回: frozenset形式的候选集合c1 """ c1=[] for transaction in dataset: f原创 2020-07-01 12:37:44 · 7113 阅读 · 2 评论 -
Python算法总结(六)决策树回归(附手写python实现代码)
注:可结合”Python算法总结(三)决策树分类(附手写python实现代码)“一起阅读!一、算法类型有监督的回归算法二、手写python算法基于CART算法的python实现# 辅助函数1:切分数据集函数def binsplitdataset(dataset,feature_index,value): ''' 参数说明: dataset是带有标签的数据集 feature_name用于切分的特征 value该切分特征的切分点原创 2020-06-05 14:31:53 · 3302 阅读 · 0 评论 -
Python算法总结(八)逻辑回归(附手写python实现代码)
一、算法类型有监督的分类算法二、算法原理损失函数带L1正则化的损失函数下带L2正则化的损失函数以下对不带正则化的损失函数求解w:批量梯度下降法BGD求解w的公式随机梯度下降法SGD求解w的公式小批量梯度下降法MBGD求解w的公式三、手写Python算法# 辅助函数1:定义sigmoid函数def sigmoid(x): s=1 / (1+ np.exp(-x)) return s# 辅助函数2:定义标准化函数def normalizer(xmat)原创 2020-06-06 23:42:01 · 1392 阅读 · 0 评论