《机器学习项目开发实战》-课件 项目4 无监督学习项目实战-客户市场细分_第1页
《机器学习项目开发实战》-课件 项目4 无监督学习项目实战-客户市场细分_第2页
《机器学习项目开发实战》-课件 项目4 无监督学习项目实战-客户市场细分_第3页
《机器学习项目开发实战》-课件 项目4 无监督学习项目实战-客户市场细分_第4页
《机器学习项目开发实战》-课件 项目4 无监督学习项目实战-客户市场细分_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

无监督学习项目实战-客户市场细分项目背景与目标CONTENTSOrderNow01任务描述02知识储备03任务实施04任务评价/01任务描述任务描述任务:客户市场细分本次任务要求团队深入调研客户市场细分的实际应用背景,理解本项目对商场、企业捕捉客户需求,实现精准营销的重要性。在此过程中,明确项目的具体需求、目标,并收集整理客户市场行为数据,配置好分析环境,为后续数据分析做好数据准备。/02知识储备无监督学习特点无需标注无监督学习不需要事先对数据进行标注,大大节省了人力成本。PART-01发现新模式算法能够自动从数据中发现隐藏的模式和结构。PART-02结果难解释无监督学习的结果往往是隐式的或不可直接量化的,因此其效果难以用传统的性能指标来评估。PART-03计算复杂一些无监督学习算法的计算复杂度较高,需要较强的计算能力支持。PART-04细分客户市场应用01聚类分析通过聚类算法根据客户的消费习惯、购买行为、偏好等特征,将客户划分为不同的群体。02降维处理通过无监督学习中的降维算法将高维的客户数据降维到低维空间,提取出最有价值的信息用于市场细分。细分客户市场好处提高营销效率针对不同细分市场的客户需求和偏好,制定个性化的营销策略。Part01增强客户满意度通过细分市场,企业可以更加精准地满足客户的需求和期望,从而提高客户满意度和忠诚度。Part02优化资源配置根据不同细分市场的规模和需求,合理分配营销资源,确保资源的高效利用。Part03聚类算法原理将数据集中的样本划分为若干个簇(Cluster),使得同一簇内的样本尽可能相似,而不同簇之间的样本尽可能不相似。聚类算法分类1基于划分K-Means算法3基于层次凝聚层次聚类5基于模型高斯混合模型2基于密度DBSCAN算法4基于网格STING算法聚类算法的选择01数据特性数据的规模、维度、分布情况等02聚类需求需要划分的簇的数量、簇的形状和大小等。03计算资源计算时间、存储空间等。数据预处理异常值在数据集中与其他数据点显著不同的数据点。这些异常值可能由测量误差、数据输入错误、自然现象或特定业务场景引起。1缺失值在数据集中某些数据点没有记录或未被收集的情况。数据缺失可能由多种原因导致。2重复值在数据集中存在多条完全相同或部分相同的记录。3探索对数据进行初步整理和概括的过程,主要包括计算数据的集中趋势、离散程度和分布形态,以直观呈现数据的基本特征和整体规律,为后续深入分析提供基础。描述性统计对数据进行可视化、计算统计量、检测异常值和相关性分析等方法,初步了解数据特征、发现潜在规律、识别数据问题,为进一步建模和深入分析提供方向和依据。数据可视化常用数据处理库01PandasPandas是Python中用于数据分析和处理的强大库,提供了DataFrame和Series两种主要数据结构,支持数据清洗、筛选、分组、合并等操作。02MatplotlibMatplotlib是Python中用于数据可视化的基础库,广泛应用于科学计算和数据分析领域。它提供了丰富的绘图功能,支持绘制折线图、柱状图、散点图、饼图等多种图表类型。03SeabornSeaborn是基于Matplotlib的Python数据可视化库,专注于统计图表的绘制。它提供了一系列高级接口,能够快速生成美观且信息丰富的图表,如箱线图、热力图、小提琴图等,特别适合用于展示数据的分布、相关性及分类特征。/03任务实施项目背景收集包括客户基本信息、购买历史和消费偏好等多维度数据。通过数据预处理、特征工程和降维技术,我们将优化数据质量,以便更好地应用聚类算法。最终生成详细的客户画像,揭示每个客户群体的独特需求和行为模式。项目目标通过对客户数据的深入分析,利用聚类算法识别出具有相似特征和行为模式的客户群体,从而为企业的精准营销和客户关系管理提供数据支持。通过本项目的实践,深入理解客户市场细分的原理和方法,掌握数据收集、处理、建模、评估、应用的全流程,培养解决实践问题的能力。数据收集与整理数据收集与整理1importnumpyasnp2importpandasaspdimportosdata=pd.read_csv('Mall_Customers.csv’)data.head()查看Mall_Customers数据集探索数据()查看数据基本信息data.shape查看数据维度探索数据data.shape描述性分析data.isnull().sum()查看缺失值data.describe(include=np.dtype("O")).Tprint(f"重复值数量:{data.duplicated().sum()}")查看重复值数据可视化1importmatplotlib.pyplotasplt2importseabornassns3plt.rcParams['font.sans-serif']=['SimHei']#显示中文4data['Gender'].value_counts()5sns.countplot(x='Gender',data=data)男女类别数量数据可视化1importmatplotlib.pyplotasplt2importseabornassns3plt.rcParams['font.sans-serif']=['SimHei']#显示中文4plt.figure(figsize=(15,5),dpi=300)5plt.subplots_adjust(wspace=0.3,hspace=0.3)6forn,iinenumerate(data[['AnnualIncome(k$)','SpendingScore(1-100)','Age']]):7plt.subplot(1,3,n+1)8plt.title(i,fontsize=10)9plt.grid(linestyle=‘’)10data[i].hist()年收入、支出分数和年龄数据分布情况数据可视化1data['Gender_encoded']=data['Gender'].map({'Male':0,'Female':1})#数据变换2withpd.option_context('mode.use_inf_as_na',True):3sns.pairplot(data.loc[:,~data.columns.isin(['CustomerID','Gender'])],diag_kind="kde")相关关系分析/04任务评价任务评价1.是否能成功读取Mall_Customers数据集并查看数据集基本信息?2.是否成功查看描述性分析、缺失值、重复值等信息?3.是否成功查看年收入、支出分数和年龄数据分布情况?4.是否成功进行数据相关关系分析?THANKS课程结束,谢谢观看无监督学习项目实战-客户市场细分K-means聚类分析CONTENTSOrderNow01任务描述02知识储备03任务实施04任务评价/01任务描述任务描述任务:客户市场细分本次任务要求团队深入调研客户市场细分的实际应用背景,理解本项目对商场、企业捕捉客户需求,实现精准营销的重要性。在此过程中,明确项目的具体需求、目标,并收集整理客户市场行为数据,配置好分析环境,为后续数据分析做好数据准备。/02知识储备K-means工作原理K=41.确定K值2.初始化质心3.分配数据点4.更新质心K-means优缺点简单易懂好实现,原理直观,代码量少,新手能快速上手,大数据友好,计算效率高,扩展性强优点初始值敏感,异常值影响大,适用性差缺点K-means++

VSK-means对比维度K-means算法K-means++算法核心思想随机初始化簇中心,通过迭代重新分配数据点和更新中心,最小化簇内平方和。优化初始簇中心选择,基于距离加权概率选择中心,使初始中心更均匀分布,减少局部最优风险。初始中心选择随机选取K个数据点作为初始簇中心,可能导致中心聚集或偏离真实分布。第一个中心随机选,后续中心按数据点到已有中心的距离概率选择,距离越远选中概率越高。聚类质量聚类结果对初始值敏感,可能因初始中心选择导致簇内紧凑度低、簇间分离度差。簇内平方和降低30%-35%,簇内紧凑度更高,簇间分离度更好,聚类质量更稳定。对数据分布的假设假设簇为球形分布,对非球形簇的处理效果不佳。同样假设簇为球形分布,但通过优化初始中心缓解了部分因分布不规则导致的问题。计算复杂度时间复杂度为O(n×k×i),其中n为样本数,k为簇数,i为迭代次数。初始中心选择阶段时间复杂度为O(n×k),整体复杂度仍为O(n×k×i),但i显著减少。优势1.实现简单,代码量少;

2.计算效率高,适合大规模数据;

3.对凸形分布数据效果好。1.初始化策略更智能,减少对初始值的敏感;

2.聚类结果更稳定,质量更高;

3.收敛速度更快,节省计算资源。劣势1.对初始中心敏感,易陷入局部最优;

2.K值需预设,依赖经验或后续评估;

3.对非球形簇和异常值处理差。1.实现复杂度略高于K-means;

2.仍需预设K值;

3.对极端非球形分布数据效果有限。K值选择随着K增加,组内平方和(WCSS)会下降,但下降速度会从快变慢,像手臂的“肘部”一样出现拐点,拐点对应的K就是最优解。轮廓系数轮廓系数范围在-1到1之间,越接近1说明聚类效果越好。类平均直径簇内距离会减小。绘制不同K值下的平均直径变化图,当K值达到某个点后,进一步增加K值带来的簇内紧密度提升不显著,这个点就是最佳K值。/03任务实施肘部法data_Standard=data[['AnnualIncome(k$)','SpendingScore(1-100)']].apply(lambdax:(x-x.mean())/np.std(x))1fromsklearn.model_selectionimporttrain_test_split2wcss=[]3foriinrange(1,11):4kmeans=KMeans(n_clusters=i,init='k-means++',max_iter=300,n_init=10,random_state=0)5kmeans.fit(data_Standard)6wcss.append(kmeans.inertia_)数据标准化计算WCSS肘部法1plt.plot(range(1,11),wcss)2plt.title('TheElbowMethod')3plt.xlabel('Numberofclusters')4plt.ylabel('WCSS')5plt.show()绘制肘部图轮廓系数1fromsklearn.metricsimportsilhouette_score2K=range(2,11)3score=[]4forkinK:5kmeans=KMeans(n_clusters=k,init='k-means++’)6kmeans.fit(data_Standard)7score.append(silhouette_score(data_Standard,kmeans.labels_,metric='euclidean'))计算轮廓系数轮廓系数1plt.plot(K,score,'r*-')2plt.xlabel('k')3plt.ylabel('SilhouetteCoefficient')4plt.title('SilhouetteCoefficienttoDetermineK')5plt.show()绘制轮廓系数图类平均直径1fromscipy.spatial.distanceimporteuclidean2defcluster_diameter(cluster):3iflen(cluster)<2:4return05max_distance=06foriinrange(len(cluster)):7forjinrange(i+1,len(cluster)):8distance=euclidean(cluster.iloc[i],cluster.iloc[j])9ifdistance>max_distance:10max_distance=distance11returnmax_distance计算簇直径类平均直径1defaverage_diameter(data,labels):2unique_labels=set(labels)3diameters=[]4forlabelinunique_labels:5cluster=data.iloc[labels==label]6diameter=cluster_diameter(cluster)7diameters.append(diameter)8returnnp.mean(diameters)计算类平均直径类平均直径1average_diams=[]2forkinrange(1,11):3kmeans=KMeans(n_clusters=k,init='k-means++',max_iter=300,n_init=10,random_state=0)4kmeans.fit(data_Standard)5labels=kmeans.labels_6avg_diam=average_diameter(data_Standard,labels)7average_diams.append(avg_diam)计算不同K值类平均直径1plt.plot(range(1,11),average_diams)2plt.title('AverageClusterDiametertoDetermineK')3plt.xlabel('k')4plt.ylabel('AverageClusterDiameter')5plt.show()绘制类平均直径图聚类1KM=KMeans(n_clusters=5,init='k-means++',max_iter=300,n_init=10,random_state=0).fit(data_Standard)2data_Standard['KM_result']=KM.labels_3data_Standard.groupby('KM_result').size()1frompandas.plottingimportscatter_matrix2colors=np.array(['red','green','blue','yellow','grey'])3scatter_matrix(data,s=100,alpha=1,c=colors[data_Standard['KM_result']],figsize=(10,10))4plt.show()聚类分析数据可视化/04任务评价任务评价1.是否成功使用肘部法并绘制肘部图?2.是否成功计算轮廓系数并绘制轮廓系数图?3.是否成功绘制类平均直径图?4.是否成功进行聚类分析并进行数据可视化?THANKS课程结束,谢谢观看无监督学习项目实战-客户市场细分层次聚类尝试CONTENTSOrderNow01任务描述02知识储备03任务实施04任务评价/01任务描述任务描述任务:客户市场细分应用层次聚类技术对《商场顾客数据》(Mall_Custom.csv)中的消费行为数据进行细分,识别具有相似消费行为模式的顾客群体。在此过程中,注重探讨如何在层次聚类过程中有效地定位每个细分群体的中心点,以便更准确地描述各个群体的特征和核心倾向。/02知识储备层次聚类算法定义将每个数据点最初视为一个独立的簇,然后按照一定规则逐步合并最相似的簇,直到达到预定目标链接准则全链接两簇中最远两点的距离单链接两簇中最近两点的距离平均链接所有点对的平均距离工作原理计算距离矩阵根据选定的距离度量方法,计算所有数据点之间的距离,生成距离矩阵。初始化将每个数据点视为一个独立的簇合并最近的簇根据链接准则,找到距离最近的两个簇并将其合并为一个新的簇更新距离矩阵重新计算新簇与其他簇之间的距离,更新距离矩阵优缺点不需要预先指定簇的数量完整的簇层次结构小规模数据集解释性高优点对异常值敏感计算复杂度较高簇的合并过程不可逆早期错误影响大不足VS分裂层次聚类把所有数据点最初视为一个整体簇,然后逐步划分为更小的子簇,直至满足条件。算法步骤01初始化将所有数据点视为一个簇。02计算簇内异质性评估每个簇的内部异质性,选择最不均匀的簇进行分裂。03分裂簇将选定的簇划分为两个或多个子簇04更新簇结构将分裂后的子簇加入簇集合,并重新计算簇的异质性优缺点不需要预先指定簇的数量完整的簇层次结构小规模数据集解释性高优点对异常值敏感计算复杂度较高簇的分裂过程不可逆早期错误影响大不足VS比凝聚层次聚类更高效树状图/03任务实施确定最优簇数1importnumpyasnp2importmatplotlib.pyplotasplt3fromscipy.cluster.hierarchyimportdendrogram,linkage4linked=linkage(X,method='ward')5plt.figure(figsize=(10,7))6dendrogram(linked,orientation='top',distance_sort='descending',show_leaf_counts=True)7plt.title('Dendrogram')8plt.xlabel('Customers')9plt.ylabel('Euclideandistances')10plt.show()凝聚层次聚类1fromsklearn.clusterimportAgglomerativeClustering2hc=AgglomerativeClustering(n_clusters=5,linkage='ward')3y_hc=hc.fit_predict(X)1plt.figure(figsize=(8,6))2foriinrange(5):3plt.scatter(X.iloc[np.where(y_hc==i)[0],0],X.iloc[np.where(y_hc==i)[0],1],label=f'Cluster{i+1}')4plt.show()实施聚类结果可视化凝聚层次聚类1centers=[]2foriinrange(5):3center=X.iloc[[np.where(y_hc==i)[0].tolist()][0],:].mean()4centers.append(center)5plt.scatter(center[0],center[1],s=200,c='black',marker='x',label='Centers'ifi==0else"")6plt.title('ClustersofCustomers')7plt.xlabel('AnnualIncome(k$)')8plt.ylabel('SpendingScore(1-100)')9plt.grid(True)10plt.show()中心点标注凝聚层次聚类/04任务评价任务评价1.是否能够分析图谱,从而确定最优簇数?2.是否成功实现了实施聚类,并使用可视化的方式呈现?3.是否完成了中心点标注?THANKS课程结束,谢谢观看无监督学习项目实战-客户市场细分聚类结果解释与应用CONTENTSOrderNow01任务描述02知识储备03任务实施04任务评价/01任务描述任务描述任务:客户市场细分应用层次聚类技术对《商场顾客数据》(Mall_Custom.csv)中的消费行为数据进行细分,识别具有相似消费行为模式的顾客群体。在此过程中,注重探讨如何在层次聚类过程中有效地定位每个细分群体的中心点,以便更准确地描述各个群体的特征和核心倾向。/02知识储备群体特征分析与解释010203特征提取从聚类结果中提取每个群体的关键特征;通过可视化工具展示群体特征的差异。特征解释结合业务背景,解释每个群体特征的意义;通过对比不同群体的特征,识别群体间的差异和共性。业务关联将群体特征与业务目标关联,挖掘潜在价值。数据驱动决策通过群体特征分析,将抽象的聚类结果转化为具体的业务洞察,帮助企业做出科学决策。精准营销理解不同群体的特征和需求,能够制定更精

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论