版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据分析sklearn机器学习库10数据分析基础要求理解数据分析的基本概念,掌握数据分析的基本方法,搭建学习的核心理论基础。sklearn工具应用掌握使用sklearn进行简单数据预处理、模型构建及模型评估的基本操作方法。【学习目标】【课前导引】
Iris数据集与降维应用Iris数据集含4个鸢尾花属性变量,用sklearn的PCA降维后可二维可视化区分3类鸢尾花。
sklearn工具库介绍sklearn是基于Python的开源机器学习工具库,含多种算法模型、自带数据集,集成多类工具。模块数据集:三类数据获取方法本地小数据集获取
sklearn本地小数据集可通过load_*()方法直接获取,无需处理即可用于模型训练,如iris、boston、wine等数据集。大型数据集获取
可通过联网调用fetch_*()通用格式方法下载大型数据集,例:用fetch_20newsgroups下载新闻组数据集。自定义数据集生成
make_*()方法可按给定参数生成数据集,如make_blobs()可生成含两特征值的100个样本。数据集获取方法分类
sklearn.datasets模块包含3类获取数据的方法。模块数据集
数据集字典键说明数据集字典含必选键data、target,及可选键feature_names、target_names、DESCR,各键对应特定内容。
示例代码说明示例代码如下所示。数据的预处理
预处理阶段概述原始数据常不符合分析要求,数据分析前须做预处理,该阶段耗时占比最多,可借助sklearn.preprocessing模块完成。
预处理模块功能sklearn.preprocessing模块含缩放、居中、规范化等变换,缺失值填充、多项式变换等多种数据预处理工具。
常用预处理方法涵盖标准化、正则化、各类编码、多项式特征创建等多种方法,不同方法对应不同数据处理需求。标准化核心定义标准化指让数据集大致服从均值为0、方差为1的标准正态分布,是多数机器学习算法的要求。标准化实现方法实际操作先对特征数据减均值μ做中心化,再除以标准差σ缩放,即常用的Z-score方法。标准化适用场景使用LR、SVM、k近邻、Adaboost、ANN等分类模型,或k均值聚类时,均需先做数据标准化。数据的预处理:标准化标准化的必要性数据的预处理:标准化scale()函数标准化方法
标准化实现方式在sklearn中可调用preprocessing.scale()实现数据标准化,还给出了包含导入库、定义训练集及执行标准化的示例代码。
标准化结果特征标准化后的数据均值接近于0,标准差接近于1,数据分布接近于标准正态分布。数据的预处理:标准化StandardScaler类标准化方法
标准化两种方式sklearn.preprocessing中scale()可快速操作单个数组数据集,StandardScaler类可先拟合训练数据计算均值和标准差,适配Pipeline早期步骤。
标准化操作步骤先对训练数据拟合计算各变量均值和标准差,再转换得到标准化数据,测试数据直接用训练数据拟合的模型转换,不可重新拟合。数据的预处理:特征缩放特征缩放的必要性当数据集中变量取值范围差异大时,范围大的变量会过度影响模型,需对变量取值范围进行缩放来消除这种影响。数据的预处理:特征缩放MinMaxScaler类介绍与使用
MinMaxScaler基础说明使用sklearn的MinMaxScaler类可将数据特征缩至给定范围,通常为0~1,其有feature_range等参数。
缩放操作与应用通过fit_transform()方法对训练数据执行缩放,训练后可将该缩放规则应用到测试数据,保证操作一致。MaxAbsScaler类及相关函数MaxAbsScaler类:除以特征最大值缩放,不中心化、不改变稀疏性;也可直接用minmax_scale()等函数。异常值数据的缩放方案数据含大量异常值不宜用均值和方差缩放,可使用robust_scale()函数或RobustScaler对象进行稳健缩放数据的预处理:特征缩放数据的预处理:正则化
正则化基础概念正则化又称规则化,数学领域称范数,是将单一样本缩放至单位范数的过程,常用L1、L2范数。
各类p-范数定义L0范数:向量非零元素个数L1范数:向量元素绝对值之和L2范数:向量元素平方和开方∞/-∞范数:向量元素绝对值最大/最小值数据的预处理:正则化
正则化的代码实现normalize()函数正则化该函数可在类数组数据集上快速执行L1或L2范数正则化,示例代码展示了用L2范数处理数组的具体操作及结果。Normalizer()类正则化其函数原型含norm等参数,默认L2范数,示例代码展示了用其拟合、转换数据及对新向量执行transform操作的方法正则化参数说明参数norm用于对每个样本做正则化,取'max'时,会用所有值绝对值的最大值对数值进行缩放数据的预处理:特征编码和离散化类别特征整数编码类别特征编码需求机器学习中类别型特征需转换为整数编码,该转换过程被称为特征编码,以此适配数值化处理需求。OrdinalEncoder编码方法可使用preprocessing模块的OrdinalEncoder类,将每个类别特征转为0到类别数减1的整数特征,有对应代码示例。编码后使用局限OrdinalEncoder转换后的整数特征无法直接用于sklearn估计器,因估计器会默认类别有序,实际类别并无序。数据的预处理:特征编码和离散化独热码编码方法独热码编码说明独热码又称one-of-K或dummyencoding,可将类别特征转换为sklearn模型可用的二进制特征向量,由OneHotEncoder类实现。OneHotEncoder类原型该类原型为classsklearn.preprocessing.OneHotEncoder(*,categories='auto',drop=None,sparse='deprecated',sparse_output=True,dtype=<class'numpy.float64'>,handle_unknown='error',min_frequency=None,max_categories=None)。自动推断编码维度默认可从数据集自动推断每个特征的编码维度,也可通过categories参数显式指定特征的所有可能取值。配图中配图中配图中数据的预处理:特征编码和离散化
未知类别处理方式设置handle_unknown='ignore'时,转换遇到未知类别不会报错,该特征的独热码列将全部为0,仅在独热编码时有效。
降维编码参数设置使用drop参数可将每列编码为n_categories-1列,避免输入矩阵共线性,此时handle_unknown必须设为error。
编码操作示例演示含基础编码、指定categories编码、未知类别处理编码、降维编码的示例代码及对应输出结果展示,清晰呈现编码过程与效果。数据的预处理:特征编码和离散化连续特征离散化
离散化基本概念离散化又称量化或装箱,是将连续特征划分为离散特征的方法,sklearn中可通过KBinsDiscretizer类实现。
离散化类参数说明KBinsDiscretizer类有n_bins、encode、strategy等参数,各参数有不同取值与默认值,对应不同离散化规则。
离散化策略详情strategy参数有uniform、quantile、kmeans三种取值,分别对应等宽、等频、聚类三种离散化划分方式。
离散化代码示例可通过设置n_bins、encode等参数实例化KBinsDiscretizer,拟合数据后对连续特征数组完成离散化转换。数据的预处理:缺失值处理缺失值基本情况现实世界数据集多含缺失值,常以空格、NaN、NA等编码,多数sklearn算法默认数据为数值,无法直接处理含缺失值的数据集。缺失值基础处理策略可舍弃含缺失值的整行或整列,但会损失潜在有价值数据,数据量少时代价更高,更优策略是依据已有数据推断缺失值。SimpleImputer类功能SimpleImputer类提供缺失值计算策略,可用常数或行/列统计数据(均值、中位数、众数)填充,支持不同缺失值编码。数据的预处理:缺失值处理
missing_values值类型支持int、float、str,可设为np.nan或None,默认np.nan,适配pandasNullable缺失值数据的预处理:缺失值处理strategy
均值中位数填充规则值类型为'mean'时,用每列均值填充缺失值,仅适用于数值型数据;为'median'时,用每列中位数填充,仅适用于数值型数据。高频值常量填充规则值类型为'most_frequent'时,用每列高频值填充,多高频值取最小,支持数值与字符串;为'constant'时,用指定fill_value填充。fill_value用于设置常量填充值;copy用于设置是否创建填充缺失值之后的数据集副本。数据的预处理:缺失值处理数据的预处理:缺失值处理add_indicator
01缺失值标记规则若条件为True,在数据x后添加等规模的0、1数据,0代表对应位置无缺失,1代表对应位置有缺失。
02SimpleImputer填充示例提供了SimpleImputer进行缺失值填充的示例代码,该类在'most_frequent'或'constant'策略下支持分类数据。数据的预处理:生成多项式特征非线性关系拟合思路机器学习里,当线性回归拟合非线性关系效果差时,可引入高阶项,用多元线性回归拟合。多项式特征生成工具可借助sklearn.preprocessing中的PolynomialFeatures类,获取特征更高维度及相互关系的项。类核心参数说明PolynomialFeatures类原型含degree等参数,其中degree用于设置生成的多项式的最高阶数。数据的预处理:生成多项式特征多项式特征生成工具数据的预处理:生成多项式特征特征转换示例说明两组特征转换示例:两特征转为含平方、交互项等特征;三特征设interaction_only=True,仅得交互项多项式特征隐式调用使用多项式核函数时,多项式特征会在sklearn的SVC、KernelPCA等核函数中被隐式调用。数据的预处理:特征选择特征选择的作用与基础工具
特征选择核心作用数据特征过多会使模型复杂、训练耗时,特征选择可提取代表性特征,还能借助sklearn模块提升模型性能。
方差阈值选择方法VarianceThreshold是基础特征选择法,默认移除方差为0的特征,仅检查特征,适用于无监督学习。
特征选择实操示例可使用make_blobs()生成含4个特征的聚类数据集,设置threshold为5来完成特征选择操作。数据的预处理:特征选择单变量统计特征选择方法
单变量特征选择概述通过单变量统计测试选最优特征,比移除小方差法常用,指单独检测每个特征与目标变量的相关性。SelectKBest类应用该类可选取评分最高的k个特征,以digits数据集为例,展示其函数原型及基于该数据集的使用示例代码。SelectPercentile类应用该类可选取占比一定百分比的最优特征,介绍其函数原型、作用及对应的使用示例代码。GenericUnivariateSelect类应用该类用可配置方法做单变量特征选择,支持超参数搜索,介绍其函数原型、mode参数取值及基于breast_cancer数据集的示例代码。数据的预处理:特征选择单变量选择的注意事项
回归数据评分函数特征选择的评分函数依数据类型而定,f_regression()、mutual_info_regression()针对回归数据进行评分。分类数据评分函数针对分类数据采用chi2()、f_classif()、mutual_info_classif()作为特征选择的得分函数。单变量特征选择说明单变量的特征选择可当作模型预处理步骤,注意勿用回归评分函数处理分类问题,避免无意义结果。数据的预处理:主成分提取
超高维数据降维途径超高维数据降维可采用10.2.7小节的特征选择法,也可运用多数特征矩阵分解算法。PCA降维核心说明PCA:以奇异值分解做线性降维,将多变量转为少数无关综合变量,保留原信息。数据的预处理:主成分提取PCA参数与属性说明
降维核心参数说明参数n_components表示降维后保留的特征数量,理想值兼顾信息保留与特征精简,还可设为'mle'或[0,1]浮点数,需结合svd_solver参数设置。
PCA属性与使用注意PCA对象的components_、explained_variance_、explained_variance_ratio_属性对应主成分特征向量、特征值和方差百分比,且不支持稀疏输入。降维结果解释说明在解释方法占比>0.9阈值下,仅提取一个主成分即可,降维后解释方法与总方法比为0.98204467数据的预处理:主成分提取模型构建
算法问题类型划分常见问题分为分类、回归、聚类三类,分类求已知类别归属,回归求连续数值,聚类按样本属性内在特征归类。
学习模式概念解析监督学习用带标签样本建模,无监督学习用无标签样本按属性归类,半监督学习结合部分有标签样本为无标签样本打标后分类,分类、回归属监督学习,聚类属无监督学习。
常用算法类型列举分类含决策树、随机森林等算法,回归含线性回归及贝叶斯线性回归等拓展算法,聚类含k均值、高斯混合模型等算法。
模型构建流程说明先依问题类型选算法,用sklearn模块对应类设超参数创模型,调用fit()方法完成模型训练构建。模型构建:广义线性回归线性回归基础定义广义线性模型通过联结函数建立目标值期望值与输入变量线性组合的关系,定义向量w为coef_,w0为intercept_。sklearn线性回归操作sklearn中LinearRegression类有fit_intercept等参数,示例代码拟合后得到系数数组与近似为0的截距。最小二乘局限与改进普通最小二乘估计依赖变量独立性,对随机误差敏感,可通过岭回归、LASSO回归施加惩罚来优化。非线性数据拟合方法自变量与因变量非线性时,可生成多项式特征预处理,同时需注意阶数过高易引发过拟合问题。模型构建:广义线性回归岭回归和LASSO回归
正则化回归原理岭回归含L2正则项,LASSO回归含L1正则项,二者均通过在损失函数中添加特征系数相关项解决过拟合问题。正则项超参数说明α是岭回归与LASSO回归的关键超参数,α为0时无正则化,趋于无穷时模型优化侧重缩小θ。回归模型实现方式sklearn的Pipeline类可封装数据预处理与建模流程,岭回归和LASSO回归均有对应示例代码及拟合曲线。回归模型细节补充岭回归以系数平方和为正则项,数学模型为式(10-8);LASSO回归数学模型为式(10-9)。模型构建:广义线性回归支持向量机
支持向量机分类逻辑作为二分类模型,它在二维找最优分割直线、三维找平面、高维找超平面,非线性数据需通过核函数升维后线性划分。
常用核函数类型核函数用于将原始数据映射到高维空间,常用的有线性、多项式、高斯径向基、双曲正切和拉普拉斯核函数。
sklearn分类类SVC说明sklearn中SVC类用于支持向量机分类,参数kernel对应核函数字符串,有相应示例代码,实现基于libsvm。
支持向量回归及实现支持向量机可扩展为支持向量回归,对应sklearn中的SVR类,fit()方法的y为浮点数,有专属函数原型与示例代码。
大规模数据适配方案SVC和SVR拟合效率随样本量增长降低,线性场景建议用基于liblinear的LinearSVC、LinearSVR类,二者无kernel参数。模型构建:广义线性回归logistic回归
Logistic回归原理虽含“回归”二字却是线性分类模型,通过logit变换将概率与广义线性回归的y取值范围匹配,推导正例概率公式。
sklearn库实现细节LogisticRegression类支持二分类、一对多及多项式分类,带L1、L2正则化,默认L2,可调整max_iter或solver解决迭代警告,能查看预测概率。模型构建:广义线性回归决策树
01决策树基础特性树状结构,含根节点、测试属性的非叶子节点、分支及代表类或输出值的叶子节点,可用于分类、回归、异常值检测,规则直观高效。
02sklearn分类树说明含DecisionTreeClassifier类,有criterion等参数,支持二分类与多分类,可通过predict_proba()预测类概率,附训练与准确率计算示例。
03sklearn回归树说明含DecisionTreeRegressor类,可解决回归问题,criterion参数有squared_error、friedman_mse等多种取值,附示例代码。神经网络基础概述又称人工神经网络,是深度学习核心,受脑启发模仿神经元信号传递,由输入、隐藏、输出层构成,节点带权重阈值,满足阈值才激活传数据,靠训练数据监督学习提升准确率,可高速分类聚类。sklearn神经网络模块包含受限玻耳兹曼机(RBM)与多层感知器(MLP),RBM是无监督非线性特征学习器,输入需为0-1二值化变量;MLP含分类器与回归器,支持分类、回归及多输出回归。MLP回归器参数说明MLPRegressor以均方误差为损失函数,参数activation可选identity、logistic等激活函数,solver可选lbfgs、sgd等优化器,有诸多训练相关配置参数。模型使用注意事项多层感知器对功能缩放敏感,需将数据缩放至指定区间或标准化,测试集要应用相同缩放比例;sklearn无GPU支持,该模型不适用于大型数据集。模型构建:广义线性回归神经网络模型构建:广义线性回归集成模型
01集成模型核心定义集成模型是将多个基估计器的预测结果结合,以此获得比单个估计器更优的泛化能力与健壮性。
02集成方法类别区分基估计器组合分并行、串行两类,并行如Bagging、随机森林,基估计器独立取预测平均;串行如Boosting,基估计器依次构建以减少偏差。
03Bagging分类器要点BaggingClassifier的基估计器并行工作,基于数据集随机子集拟合,通过投票或平均聚合预测,有max_samples、max_features等参数。模型构建:广义线性回归
随机森林分类器说明随机森林集成随机决策树,拟合数据集子样本,不优化单个决策树,用均值提升准确性、控制过拟合。
Boosting方法核心逻辑Boosting逐个加入估计器,依据之前分类准确率调整样本权重,强化对误分类样本的关注,减小偏差与方差。
AdaBoost算法细节AdaBoost是迭代算法,拟合分类器副本时调整误分类样本权重,有SAMME、SAMME.R两种算法,后者迭代速度更快。
梯度提升分类器原理GradientBoostingClassifier以串行方式构建弱分类器加法模型,每个阶段拟合之前分类器损失函数的负梯度。模型构建:广义线性回归聚类
聚类分析基础概述聚类分析是无监督学习类数据挖掘算法,将相似数据点归为一组,用于探索数据分析,有k均值等多种算法。
相似度计算方法介绍含欧氏距离、标准化欧氏距离、马氏距离及夹角余弦法,各方法有不同特点与适用场景。
k均值聚类操作指引以sklearn中k均值为例,可用肘部法则确定聚类数,结合PCA降维实现聚类结果可视化。模型评估核心价值是数据分析重要部分,可客观评价模型预测精度与泛化能力,比较不同模型,助力选最优模型。模型评估多重作用能提升模型预测准确性,增强决策可靠性,还可发现模型不足,为模型优化改进提供方向。模型构建:模型评估模型构建:模型评估
留出法将数据集划分为训练集和测试集,用训练集训练模型,用测试集评估模型的预测精度。
交叉验证法把数据集划分为k个子集,轮流取一个当测试集,其余作训练集,训练后用测试集评估模型预测精度。
自助法从原始数据集有放回随机抽样得新数据集,用新数据集训练模型,以原始数据集评估其预测精度。
偏差-方差分解将模型的误差分解为偏差和方差两部分,分别评估模型的预测能力和稳定性。模型构建:模型评估数据划分
数据集划分逻辑为避免过拟合导致评估失效,构建有监督机器学习模型时,将数据划分为训练集(60%~80%,数据集大时可提占比)拟合模型、测试集评估模型。
数据划分函数说明可利用sklearn库的train_test_split()函数划分数据集,该函数有test_size、shuffle、stratify等多个参数,各参数有不同设置规则。
划分函数示例演示给出train_test_split()函数的完整使用示例代码,展示数据划分结果、分层抽样情况及用测试集评估模型的过程与结果。模型构建:模型评估交叉验证
交叉验证方法说明交叉验证又称k折检验,将数据集均分k份,用k-1份训练、1份测试,重复k次,模型精度取k次测试均值。sklearn交叉验证实现可使用sklearn.model_selection模块的cross_val_score()函数完成交叉验证,还可计算平均得分与95%置信区间,scoring参数可设置评分方式。模型评估指标预告分类与回归模型评估指标不同,后续小节将着重介绍两类模型的不同评估指标及对应sklearn函数。配图中模型构建:模型评估分类模型评估
分类评估核心指标常用指标含准确率、错误率、精确率、召回率、F1分数,均基于混淆矩阵计算,各有不同侧重点与适用场景。混淆矩阵相关内容二分类混淆矩阵以真实值和预测值为维度,sklearn提供计算与可视化函数,可拆解TN、FP、FN、TP四个核心值。典型指标计算说明准确率是预测准确样本占比,精确率为真正类占预测正类比,召回率为真正类占实际正类比,F1分数反映模型稳
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文化创意产业园装修工程施工招标文件
- 电梯井承台施工方案
- 房建工程旋挖成孔灌注桩施工方案
- 国际贸易环境变化对市场的影响
- 城市智能交通工程项目监理验收规范(征求意见稿)
- 采购合同模板
- 宏观经济:出口开门“爆红”的真相
- 第17章小程序端个人中心
- 2026年吉林省辅警招聘试题解析及答案
- 2026年高考化学北京卷真题试卷(含答案)
- 2026年南京大数据集团有限公司校园招聘考试参考试题及答案解析
- 2026新疆喀什地区地直机关遴选公务员、事业单位选聘31人考试参考试题及答案解析
- 2026年浙江省衢州市六校联谊初三百日冲刺考试英语试题含解析
- 一次性使用止血套环产品技术要求北京中诺恒康生物
- 2026广东阳江市江城区招聘教师102人(编制)笔试模拟试题及答案解析
- XX医院关于2025年医保基金监管专项检查工作的整改报告
- 2026人教版二年级英语下册Unit 1 基础单元测试(含解析)
- 华电新能首次覆盖报告:央企底色稳成长新能赛道具优势
- JJF 2380-2026检验医学定量检测项目基于患者数据的质量控制算法溯源方法
- 加油站非油培训课件
- 2026 年中考历史高频考点精练试卷(附答案可下载)
评论
0/150
提交评论