
机器学习
小白自留地
小白初来乍到,有不正确的地方,还请各位朋友批评指正!如果需要,注明出处哦。
展开
-
理论-决策树小补充
之前的决策树只简单介绍了决策树思想,决策树还有多种类型,做一个小总结,待补充完善。ID3算法使用信息增益选择属性,C4.5用信息增益率,克服信息增益容易选择取之类别偏多的特征的不足!!ID3,C4.5都只用于分类问题;CART(Classification And Regression Tree)即可用于分类,也可用于回归,sklearn中使用的是CART算法,可以做分类(DecisionTreeClassifier),也可以做回归(DesicionTreeRegression).CART是二叉树.原创 2020-10-29 11:19:43 · 100 阅读 · 0 评论 -
理论-AdaBoost(转载)
转自一位老师的博客,供学习使用。AdaBoost是Boosting算法的一种,而Boosting算法都需要解决一些问题,这篇博客有解答:1)如何计算学习误差率e?2) 如何得到弱学习器权重系数α?3)如何更新样本权重D?4) 使用何种结合策略?集成学习之AdaBoost算法...转载 2020-10-29 10:34:19 · 145 阅读 · 0 评论 -
python-XGBoost应用(回归)
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。通过一个数据集展示XGBoost的回归建模过程,保险赔偿预测。import pandas as pdimport numpy as npimport matplotlib.pyplot as plt%matplotlib inlinefrom scipy import statsimport seaborn as snsfrom copy import deepcopyimport w原创 2020-09-14 16:53:09 · 29276 阅读 · 8 评论 -
python-XGBoost应用(分类)
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。XGBoost为Boosting集成算法,这里为XGBoostClassifier举例。import xgboostfrom numpy import loadtxtimport pandas as pdfrom xgboost import XGBClassifierfrom sklearn.model_selection import train_test_splitfrom sklea原创 2020-09-14 11:17:32 · 4707 阅读 · 2 评论 -
python-基于softmax方法的简单神经网络(程序)
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。softmax分类器可以说是在线性的SVM分类上,将wx+b的分值进行了转化(指数函数、归一化),将分值转化为概率值,还是线性分类。首先构造需要的数据import numpy as npimport matplotlib.pyplot as pltplt.rcParams['figure.figsize']=(8,6)plt.rcParams['image.interpolation']='原创 2020-09-14 10:50:10 · 813 阅读 · 0 评论 -
python-sklearn实现神经网络(数据量小的情况)
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。神经网络(neural_network)模块重要的有两个类,MLPClassifier(分类)和MLPRegressor(回归)。多层感知器(MLP)是一种监督学习算法,前馈神经网络模型。两类都适用参数alpha作为正则化(L2正则化)系数。skalern中的神经网络,在数据规模较大时,不适用!MLPClassifier的训练使用BP算法,使用交叉熵损失函数(Cross-Entropy loss f原创 2020-09-14 10:39:33 · 7195 阅读 · 1 评论 -
理论-神经网络架构简单介绍
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。神经网络的整体框架:输入层:样本特征隐藏层1:神经网络按照某种线性组合关系将所有特征重新进行组合隐藏层2:之前的隐藏层1的特征变换不够强大,可以继续对特征做变换处理输出层:根据分类还是回归任务,选择合适的输出结果和损失函数比如函数计算:单层:双层:激活函数上面都是在得到预测分值的基础上讨论的,如何得到这个分值?我们知道,神经网络的运作模式是,将数据输入后,一层层对特征进行变原创 2020-09-13 23:55:34 · 728 阅读 · 0 评论 -
理论-神经网络引入
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。引入我们要进行一个分类任务,如何预测一个输入(样本)的所属类别呢?在神经网络进行分类任务时,最终输出一个结果(如一个分值),以评估它属于各个类别的可能性。例如:以上面例子为例,如果是进行图片识别,需要将图片转换为图像数据,图像是由多个像素点组成,可以将像素点当做数据特征 x,配合特征的权重参数 w以及偏置参数 b,如何得到?需要通过迭代计算逐步更新,与梯度下降中的参数更新类似,首先随机初始化一个原创 2020-09-13 23:25:58 · 332 阅读 · 0 评论 -
python-主成分分析实现
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。在理论的基础上,在python中实现主成分分析。使用鸢尾花数据作为例子进行。首先导入数据:import numpy as npimport pandas as pddf=pd.read_csv(r'iris.data')print(df.shape)df.columns=['sepal_len','sepal_wid', 'petal_len','petal_wid',原创 2020-09-12 18:04:17 · 8792 阅读 · 3 评论 -
理论-降维PCA(主成分分析)
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。前面有进行线性判别分析的总结,LDA是有监督降维,而主成分分析是无监督降维,使用场景更多。如果以相同的思想,即投影后数据点的类间与类内距离来衡量投影效果,主成分分析由于没有标签,无法分析类间与类内距离,此时,主成分分析的思想是方差,即看哪些特征的方差更大。基本概念向量表示:图中向量可以表示为(3,2),也可以表示为线性组合其中,(1,0)和(0,1)称为二维空间中的一组基。基变换常见原创 2020-09-12 17:37:26 · 429 阅读 · 0 评论 -
python--LDA线性判别分析模型
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。导入数据import numpy as npimport pandas as pddf=pd.read_csv(r'iris.data')print(df.shape)#查看类别print(set(df['Iris-setosa']))df.columns=['sepal length','sepal width', 'petal length','petal w原创 2020-07-18 20:28:52 · 1315 阅读 · 1 评论 -
理论--降维LDA笔记
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。若数据集特征十分庞大,可能会使计算任务变得繁重,在数据特征有问题时,可能会对结果造成不利影响。因此可以用降维算法,通过某种映射方法,将原始高维空间中的数据点映射到低纬度的空间中。这里介绍LDA(有监督学习算法)。线性判别分析(Linear Discriminant Analysis,LDA),也叫作Fisher线性判别,最开始用于分类任务,但由于其对数据特征进行了降维投影,成为一种经典的降维方法。原创 2020-07-18 20:13:26 · 398 阅读 · 0 评论 -
python--Kmeans聚类个数k的确定方式
总结仅为个人学习使用。学习资料有‘从零开始学python’,‘跟着迪哥学python数据分析与机器学习’拐点法簇内平方和拐点法,在不同k值计算簇内离差平方和,然后通过可视化找到“拐点”所对应的k值。随着簇数量增加,簇中样本量会越来越少,导致目标函数值月腊月小。重点关注斜率的变化,当斜率突然由大变小时,且之后斜率变化缓慢,则认为突然变化的点就是寻找的目标点。# 构造自定义函数,用于绘制不同k值和对应总的簇内离差平方和的折线图def k_SSE(X, clusters): # 选择连续的K种原创 2020-07-16 22:26:31 · 8884 阅读 · 2 评论 -
python--kmeans聚类&DBSCAN聚类
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns%matplotlib inlineimport warningswarnings.filterwarnings('ignore')import os#os.chdir(r'')测试例子构造数据:from原创 2020-07-16 22:20:59 · 856 阅读 · 0 评论 -
理论--KMeans聚类/DBSCAN聚类
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。聚类为无监督算法K-means聚类基本思想简单,最典型的聚类算法。工作流程拿到数据集,指定K值(划分为K类);既然分为K类,需要找到k个能代表每个类中心的点(质心:数据各维度的均值坐标点),但划分前不知质心在哪个位置,需要随机初始化k个坐标点;选定k个中心点后,在所有数据样本中遍历,查看数据样本应属于哪个堆。具体来说,就是计算每个数据样本到中心点的距离,离哪个中心点近,属于哪一类;第2步原创 2020-07-16 21:54:51 · 604 阅读 · 0 评论 -
python--支持向量机应用小例
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。SVM的分类效果软间隔的作用,复杂算法容易造成过拟合,如何解决?核函数的作用,核函数的作用,可以实现非线性分类。import numpy as npimport matplotlib.pyplot as pltimport pandas as pdimport warningswarnings.filterwarnings('ignore')import os#os.chdir(r原创 2020-07-13 15:47:25 · 2146 阅读 · 0 评论 -
理论--支持向量机笔记
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。支持向量机要解决的问题找到最好的一个决策方程,将两类数据点分离,支持向量机是不只找到决策方程,还要找到最好的一个。如图:左边的决策边界最窄,而中间决策方程的决策边界最宽,因此最好的决策方程为中间。选择最宽的决策边界,因为这样容错能力更强,效果最好。距离和标签定义强调决策边界越宽越好,需要用到点到决策面距离的定义。假设平面方程wTx+b=0,平面上有x’,x’’两个点,W为平面的法向量,要求原创 2020-07-13 14:56:16 · 811 阅读 · 0 评论 -
python--贝叶斯新闻文本分析小例
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。import pandas as pdimport jiebaimport warningswarnings.filterwarnings('ignore')导入数据df_news=pd.read_table(r'E:\R Python\Python 学习\@迪哥B站\迪哥-Python数据分析与机器学习实战\18:基于贝叶斯的新闻分类实战\data\val.txt',原创 2020-07-13 11:46:27 · 636 阅读 · 0 评论 -
python--集成算法例子
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。对于数据X,分别选择两种预处理方案,在不同预处理方案中再建立不同模型,最终汇总所有模型结果。import numpy as npimport pandas as pdimport matplotlib.pyplot as plt%matplotlib inlineimport os#os.chdir('')导入数据#设置随机种子SEED=222np.random.seed(SEED原创 2020-07-12 00:44:01 · 1393 阅读 · 1 评论 -
python--随机森林建模3(调参)
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。这里是在新数据集建模的基础上进行调参。首先导入数据,划分测试集与训练集:原数据建模import pandas as pdimport warningswarnings.filterwarnings('ignore')features=pd.read_csv(r'temps_extended.csv')print(features.shape)features.head(6)处理数据原创 2020-07-12 00:08:06 · 1405 阅读 · 0 评论 -
python--随机森林建模2(数据与特征的影响)
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。在上一篇文章进行简单建模的基础上,这里应用的数据量增大,讨论数据量大小与特征使用对随机模型性能大小的影响。import os#os.chdir(r'路径')import pandas as pdfeatures=pd.read_csv(r'temps_extended.csv')print(features.shape)features.head(5)数据集中添加了新变量ws_1:前原创 2020-07-11 18:18:04 · 1455 阅读 · 0 评论 -
python--随机森林应用小例1(基本建模)
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。这里以一个例子切入随机森林的建模,使用随机森林弯沉对天气最高温度的预测导入数据import pandas as pdimport matplotlib.pyplot as plt%matplotlib inlineimport warningswarnings.filterwarnings('ignore')import os#os.chdir()features=pd.read_c原创 2020-07-11 17:19:57 · 2476 阅读 · 0 评论 -
python--决策树参数&可视化小例
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。首先,树模型参数有:1. criterion gini or entopy2. splitter best or random 前者是在所有特征中找到最好切分点,后者是在部分特征中(数据量比较大时)3. max_features None(所有) log2,sqrt,N特征小于50时一般使用所有特征4. max_depth 数据少或特征少的时候可以不管这个值,如果模型样本量、特征多的情况下,可以原创 2020-07-11 16:50:32 · 1357 阅读 · 0 评论 -
理论--贝叶斯算法笔记
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。导入正向概率:假设口袋里N个白球,N个黑球,你伸手随便拿一个球,拿出黑球的概率多大?逆向概率:如果事先不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或几个)球,观察这些取出来的球的颜色后,袋子里面的黑白球比例是多大?假设一个学校男生占比60%,女生占比40%,并且男生总是穿长裤,女生一半穿长裤,一半穿裙子。**正向概率:**随机选取一个学生,穿长裤和穿裙子的概率是多大?**逆向概率:原创 2020-07-11 11:17:59 · 202 阅读 · 0 评论 -
python--逻辑回归实例操作
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。基于信用卡交易记录数据建立分类模型预测哪些交易是正常的,哪些交易是异常的。流程:加载数据,观察问题;针对问题给出解决方案;数据集切分;逻辑回归模型;导入数据import pandas as pdimport matplotlib.pyplot as pltimport numpy as np%matplotlib inlinefile=r'creditcard.csv'原创 2020-07-05 16:36:29 · 1089 阅读 · 0 评论 -
python--逻辑回归原理实操
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。逻辑是:1.定义sigmoid函数,目的是将函数值映射到概率;2.定义model函数,将线性方程值带入sigmoid函数;3.定义cost损失函数(似然函数变换得到),目的是为了梯度下降求参;4.定义梯度下降的不同迭代停止原则;5.对比不同的梯度下降方法;6.查看模型精度导入数据import numpy as npimport pandas as pdimport matplotl原创 2020-07-05 12:50:25 · 500 阅读 · 0 评论 -
理论--集成算法-Adaboost
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。Adaboost集成算法中基于boosting思想的典型算法。在分类问题中,因为有多个基础树模型,数据集上有些分得正确,有些错误,测试需要考虑,为什么会分错?样本难以判断时,是不是应更注重难度较大的,也就是需要给样本不同权重,做对的样本权重相对较低,因为已经做的很好,不需要额外关注,做错的样本权重需要增大,让模型更重视它。每一次划分数据集,都会出现不同错误样本,继续调整权重,目标是使模型邮箱解决之前原创 2020-07-05 09:48:41 · 190 阅读 · 0 评论 -
理论--集成算法-随机森林笔记(简)
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。随机森林RandomForest集成算法中bagging的典型算法特点:(1)并联思想,同时创建多个模型,相互不影响,使用相同参数,只是输入不同;(2)样本随机采样和特征随机采样,保证不同基础模型的输入样本与输入特征是不同的,每一棵树是个性的,提高模型泛化能力;(3)基础模型组合,分类任务重,求众数;回归任务中,求平均值。特征重要性特征重要性考察每一个特征的重要程度,集成算法会综合考虑所原创 2020-07-05 09:45:03 · 142 阅读 · 0 评论 -
理论--3种常用集成算法笔记
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。导入把算法和各种策略集中在一起,即可用于分类问题,也可用于回归问题。有3个核心思想,bagging、boosting和stacking。bagging:并行集成boostrap aggregating,其中boostrap是一种有放回简单随机抽样,把多个基础模型放到一起,最后再求平均值。如以决策树作为基础模型,首先对数据集进行随机采样,分别训练多个树模型,最终将结果整合在一起.bagging原创 2020-07-05 09:37:04 · 908 阅读 · 0 评论 -
理论--决策树算法笔记
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。导入决策树顾名思义是以树状图的形式来进行决策。包括根节点、非叶子节点与分支、叶子节点,开始时所有数据都聚集在根节点,然后通过各种条件判断合适的前进方向,最终达到不可再分的节点,因而完成整个生命周期。那么问题来了,根节点选择什么特征来划分?下一个节点按照什么特征划分?基本概念首先我们要知道,分类模型是希望同一类别的数据放在一起,不同类别的数据分开。如果模型将各种类别的数据混在一起,说明划分效果是比原创 2020-07-05 09:28:23 · 312 阅读 · 0 评论 -
理论--采样方法+交叉验证评估+模型评估+正则化惩罚
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。样本不均衡采样方案1.下采样从多的一方中选择一部分数据去匹配少的一方,缺点是没有充分利用原始数据。2.过采样对少的一方数据进行变换或生成,构造足够多的数据去匹配多的一方,缺点是构造出来的数据不确定是否存在问题。最常用的策略为SMOTE算法模型评估/训练-交叉验证将训练集切成多份,如分成10份,那么在验证某一次结果时,整个过程有9步,第一步是用前9份作为训练集,最后1份作测试集,得到一个结果,原创 2020-07-05 08:47:17 · 985 阅读 · 1 评论 -
理论--线性回归理论笔记
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。线性回归引入线性回归是找到y与x之间的关系,以2个自变量x与y为例,自变量与因变量之间的图形是三维空间中的一个平面,但并不是所有数据点都整齐地排列成一条线,都落在这个平面上。如下图所示:这些x与y的关系,可以用下式来表示:那么现在的问题就是将参数估计出来,找到最合适的参数。如何找,从误差项入手!目标函数确定回归方程的预测值与实际值不是一一对应的,有误差,这个误差可以表示为:参数的估计原创 2020-07-05 08:14:50 · 353 阅读 · 0 评论 -
理论--逻辑回归算法笔记
以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。导入逻辑回归就是将线性回归得到的值,通过Sigmoid函数转换为概率值。那么逻辑回归如何求解呢?在线性回归中,我们是已知误差项服从正态分布,可知误差项趋于0时,概率值趋于1,我们找使得误差项最小的参数,也就是找使得概率值最大的参数(注意线性回归里面,这个概率正好是x与theta确定的y取值概率),通过极大似然估计,写出使得目标概率最大的目标函数方程式,进而推导。这里逻辑回归也同样,只是这里有x与原创 2020-07-05 08:22:06 · 208 阅读 · 0 评论