小程序定制开发深圳公司seo是什么意思啊视频教程
2026/2/18 10:11:58 网站建设 项目流程
小程序定制开发深圳公司,seo是什么意思啊视频教程,做服装招聘的网站有哪些内容,响应式博客wordpress一、相关性分析#xff08;Correlation#xff09;#xff1a;快速算出特征之间的“关系矩阵” 1. 场景#xff1a;为什么要算相关系数#xff1f; 在特征工程阶段#xff0c;我们经常会问#xff1a; 哪些特征之间高度相关#xff0c;可能存在冗余#xff1f;某个特征…一、相关性分析Correlation快速算出特征之间的“关系矩阵”1. 场景为什么要算相关系数在特征工程阶段我们经常会问哪些特征之间高度相关可能存在冗余某个特征和目标变量之间相关性强不强是否有一些线性关系比较明显的特征可以重点关注这时最常用的工具就是相关系数比如Pearson 相关系数衡量线性相关性Spearman 相关系数基于排序的相关性更适合非线性、单调关系在 Spark MLlib 中Correlation可以直接对向量列Vector column计算相关性矩阵。2. API 介绍Correlation.corr在 PySpark 中frompyspark.ml.linalgimportVectorsfrompyspark.ml.statimportCorrelation data[(Vectors.sparse(4,[(0,1.0),(3,-2.0)]),),(Vectors.dense([4.0,5.0,0.0,3.0]),),(Vectors.dense([6.0,7.0,0.0,8.0]),),(Vectors.sparse(4,[(0,9.0),(3,1.0)]),)]dfspark.createDataFrame(data,[features])# 默认方法是 Pearsonr1Correlation.corr(df,features).head()print(Pearson correlation matrix:\nstr(r1[0]))# Spearman 相关系数r2Correlation.corr(df,features,spearman).head()print(Spearman correlation matrix:\nstr(r2[0]))几个要点输入 DataFrame 中有一列向量列比如featuresCorrelation.corr(df, features, method)会返回一个只有一行一列的 DataFrame这一列就是相关性矩阵head()[0]拿到的是一个DenseMatrix可以转成字符串打印3. Pearson vs Spearman怎么选Pearson假设变量之间是线性关系对异常值较为敏感是最常用、最经典的相关系数Spearman把数值转成秩rank再算 Pearson不要求线性只要是单调关系就能体现对异常值更鲁棒实践建议做连续特征线性关系分析优先用 Pearson数据有明显非线性趋势、或者有很多异常点可以尝试 Spearman4. 典型用法特征筛选 多重共线性检查你可以对特征列构建一个大的features向量然后用Correlation.corr算出相关系数矩阵高度相关例如 |ρ| 0.9的特征可以考虑做降维或只保留一个某些特征与标签的相关性太弱可以考虑剔除或降低权重当然不能只看相关系数还是要配合业务理解二、假设检验与卡方检验ChiSquareTest离散特征和标签到底有没有关系1. 核心问题这个特征和标签真有关系吗在分类问题中我们经常有离散特征 / 类别型特征例如用户职业学生 / 上班族 / 自由职业设备类型iOS / Android / Web地区省份 / 城市我们想知道的问题通常是这个离散特征和 “是否点击 / 是否购买 / 是否违约” 等标签是否存在统计意义上的相关性这时就轮到卡方检验Chi-square test出场了。2. MLlib 中的 ChiSquareTest特征 vs 标签 独立性检验spark.ml.stat.ChiSquareTest提供了对每一维特征与标签之间做Pearson 卡方独立性检验的功能对每个特征维度构造一个列联表contingency table计算卡方统计量χ²、自由度和 p-value判断是否拒绝 “特征和标签相互独立” 这个零假设前提特征和标签都必须是离散 / 类别值。3. Python 示例frompyspark.ml.linalgimportVectorsfrompyspark.ml.statimportChiSquareTest data[(0.0,Vectors.dense(0.5,10.0)),(0.0,Vectors.dense(1.5,20.0)),(1.0,Vectors.dense(1.5,30.0)),(0.0,Vectors.dense(3.5,30.0)),(0.0,Vectors.dense(3.5,40.0)),(1.0,Vectors.dense(3.5,40.0))]dfspark.createDataFrame(data,[label,features])rChiSquareTest.test(df,features,label).head()print(pValues: str(r.pValues))print(degreesOfFreedom: str(r.degreesOfFreedom))print(statistics: str(r.statistics))ChiSquareTest.test(df, features, label)返回一个 DataFrame每一行对应一次测试结果.head()拿到第一行结果r.pValues每一个特征维度对应一个 p-valuer.degreesOfFreedom每个特征对应的自由度r.statistics对应的卡方统计量4. 怎么解读结果原假设 H₀特征和标签相互独立备择假设 H₁特征和标签不独立存在相关性通常我们会设定一个显著性水平比如 α 0.05如果pValue 0.05拒绝独立性假设说明该特征与标签之间有显著的统计相关性可以认为是“有用”的如果pValue ≥ 0.05不能拒绝独立性假设说明没观察到足够强的统计证据证明它和标签有关5. 实战中的典型用途离散特征的筛选对每个类别型特征做卡方检验剔除与标签“几乎无关”的特征减轻模型负担对特征工程结果做验证比如你做了某些桶化 / 分箱操作可以用卡方检验看看新特征是否和标签有更强的统计相关性模型解释给业务方输出“哪些类别特征和目标最相关”的证据时卡方检验是一个很好的工具三、Summarizer一行代码搞定向量列的均值、方差、非零比例……1. 问题如何快速看一列向量特征的整体分布假设你的 DataFrame 里有一列是向量特征features每一行是一个样本的特征向量你想知道每一维特征的均值mean方差variance最大值 / 最小值max/min非零元素个数numNonZeros总计数count等这时就可以用Summarizer。2. API 介绍Summarizer.metrics示例代码frompyspark.ml.statimportSummarizerfrompyspark.sqlimportRowfrompyspark.ml.linalgimportVectors dfsc.parallelize([Row(weight1.0,featuresVectors.dense(1.0,1.0,1.0)),Row(weight0.0,featuresVectors.dense(1.0,2.0,3.0))]).toDF()# 1. 创建一个 summarizer指定要计算的指标summarizerSummarizer.metrics(mean,count)# 2. 计算带权重的统计指标df.select(summarizer.summary(df.features,df.weight)).show(truncateFalse)# 3. 计算不带权重的统计指标df.select(summarizer.summary(df.features)).show(truncateFalse)# 4. 单独计算 mean 带权重df.select(Summarizer.mean(df.features,df.weight)).show(truncateFalse)# 5. 单独计算 mean 不带权重df.select(Summarizer.mean(df.features)).show(truncateFalse)几个关键点Summarizer.metrics(mean, count, variance, ...)用来指定要计算的指标summarizer.summary(df.features, df.weight)第一个参数是向量列第二个参数是权重列可选如果不传权重列则表示所有样本权重相同也可以直接用Summarizer.mean(...)、Summarizer.variance(...)这种“快捷方法”3. 权重的意义权重在很多场景下会很有用比如你的数据是预聚合结果比如某个样本出现了 n 次某些样本在建模中更重要例如高价值用户用采样的数据估计总体统计量时需要做加权修正有了weight列可以很方便地得到加权均值、加权方差等。4. Summarizer 支持的指标官方支持的指标包括mean均值variance方差std标准差min/max按列最小值 / 最大值sum按列求和numNonZeros按列非零元素个数count总样本数这些统计量基本覆盖了 EDA探索性数据分析中最常用的一批指标。四、把基础统计能力融入你的 ML Pipeline虽然Correlation、ChiSquareTest和Summarizer看起来“只是统计工具”但在实际的 ML 项目中它们可以自然地融入到你的整体流程中数据理解阶段用 Summarizer 看每一维特征的均值/方差/非零比例识别常量特征variance0极端稀疏或极端密集的特征用 Correlation 看特征之间的线性相关性初步感知特征结构特征筛选阶段对离散特征用 ChiSquareTest 筛掉“和标签没有关系”的变量对连续特征用相关系数 业务理解做初步筛选和降维模型调试与解释阶段用 Summarizer 跟踪不同阶段特征处理后的数据分布是否合理用 Correlation 和 ChiSquareTest 为“为什么选这些特征”提供统计证据从工程实践角度看这些基础统计模块是 MLlib 中非常值得熟练掌握的一块——它们不是“锦上添花”而是很多实战问题的“起手式”。五、总结Spark MLlib 提供的基础统计工具大致可以归纳为三类Correlation相关性分析支持 Pearson / Spearman面向向量列计算相关性矩阵适用于特征筛选、多重共线性检查、数据理解等场景ChiSquareTest卡方独立性检验针对离散特征与标签的独立性检验输出 p-value、自由度、统计量常用于类别特征的筛选和假设验证Summarizer向量列汇总统计提供均值、方差、标准差、max/min、sum、非零数、count 等指标支持权重适合加权统计场景是 EDA 与特征监控的基础工具如果你已经在用 Spark 做机器学习不妨把spark.ml.stat这几个组件视为自己的“统计瑞士军刀”在建模前后多用一用很多肉眼看不出的数据问题都能靠这些基本统计手段提前暴露出来。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询