项目简介
本项目旨在解决公司推出新产品时确定目标客户的问题。运用高斯混合模型(GMM)这一概率模型,结合期望最大化(EM)算法,依据客户的购买历史和购物偏好数据,对客户是否喜欢新产品进行预测,是一个典型的无监督学习项目。项目实现了无监督GMM和半监督GMM,并将结果与scikit - learn API进行比较。
项目的主要特性和功能
- 无监督GMM:随机初始化参数,通过迭代执行E步(估计样本的标签分布)和M步(获得新一轮参数先验),直至平均对数似然收敛,输出对每个用户的预测标签,可对似然收敛过程等进行可视化。
- 半监督GMM:有少量标记数据时,从标记数据中学习初始参数,避免随机初始化的失败,以更少步数收敛。同样通过E步和M步迭代更新,输出预测标签,并与无监督GMM比较收敛步数与速度。
- 结果验证:将项目实现的预测结果与scikit - learn API的预测结果进行比较,验证实现的正确性。
安装使用步骤
安装
假设用户已下载本项目的源码文件,需确保安装以下Python库: - pandas - numpy - scikit - learn - matplotlib(用于可视化,若不进行可视化可不安装)
使用以下命令安装:
bash
pip install pandas numpy scikit-learn matplotlib
使用
- 无监督GMM
- 打开代码文件,确保
data/unlabeled.csv
文件存在。 - 实现
e_step()
、m_step()
和run_em()
函数。 - 运行相应代码,获取预测标签、后验概率和对数似然,可进行可视化操作。
- 打开代码文件,确保
- 半监督GMM
- 确保
data/labeled.csv
文件存在。 - 实现
learn_params()
函数,从标记数据中学习初始参数。 - 运行相应代码,训练模型,输出预测标签,并与无监督GMM比较收敛情况。
- 确保
- 结果验证
- 运行与scikit - learn API比较的代码,对比项目实现的预测结果与scikit - learn API的预测结果。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】