机器学习(五):混合高斯聚类GMM(求聚类标签)+PCA降维(3维降2维)习题|天天热推荐
采用python代码实现:
from scipy import statsimport numpy as np#初始化数据Data = np.array([1,2,6,7])w1 , w2 = 0.5, 0.5mu1 , mu2 = 1, 5std1 , std2 = 1, 1n = len(Data) # 样本长度zij=np.zeros([n,2])for t in range(10): # E-step 依据当前参数,计算每个数据点属于每个子分布的概率 z1_up = w1 * stats.norm(mu1 ,std1).pdf(Data) z2_up = w2*stats.norm(mu2 , std2).pdf(Data) z_all = (w1*stats.norm(mu1 ,std1).pdf(Data)+w2*stats.norm(mu2 ,std2).pdf(Data))+0.001 rz1 = z1_up/z_all # 为甲分布的概率 rz2 = z2_up/z_all # 为乙分布的概率 # M-step 依据 E-step 的结果,更新每个子分布的参数。 mu1 = np.sum(rz1*Data)/np.sum(rz1) mu2 = np.sum(rz2*Data)/np.sum(rz2) std1 = np.sum(rz1*np.square(Data-mu1))/np.sum(rz1) std2 = np.sum(rz2*np.square(Data-mu2))/np.sum(rz2) w1 = np.sum(rz1)/n w2 = np.sum(rz2)/nfor i in range(n): zij[i][0] = rz1[i]/(rz1[i]+rz2[i]) zij[i][1] = rz2[i]/(rz1[i]+rz2[i])labels = np.argmax(zij, axis=1)#输出每一行的最大值,0或1 axis表示返回每一行中最大值所在列的索引print(labels)
聚类标签输出结果:[0 0 1 1]
(资料图片)
也就是说,10 次迭代后数据的聚类标签是1,2归为0
类6,7归为1
类
附注:
如果 axis 为 None,那么 np.argmax 会将数组展平为一维,然后返回最大值的索引。例如:
>>> a = np.array([[1, 2], [3, 4]])>>> np.argmax(a)3
如果 axis 为 0,那么 np.argmax 会沿着第一个维度(行)进行最大值的查找,返回每一列中最大值所在的行索引。例如:
>>> a = np.array([[1, 2], [3, 4]])>>> np.argmax(a, axis=0)array([1, 1])
如果 axis 为 1,那么 np.argmax 会沿着第二个维度(列)进行最大值的查找,返回每一行中最大值所在的列索引。例如:
>>> a = np.array([[1, 2], [3, 4]])>>> np.argmax(a, axis=1)array([1, 1])
在之前问题中,np.argmax([gamma1, gamma2], axis=0) 的意思是沿着第一个维度(gamma1 和 gamma2)进行最大值的查找,返回每个数据点属于哪个子分布的概率更大。
假设我们的数据集有 10 个 3 维数据, 需要用 PCA 降到 2 维特征。
array([ [ 3.25, 1.85, -1.29], [ 3.06, 1.25, -0.18], [ 3.46, 2.68, 0.64], [ 0.3 , -0.1 , -0.79], [ 0.83, -0.21, -0.88], [ 1.82, 0.99, 0.16], [ 2.78, 1.75, 0.51], [ 2.08, 1.5 , -1.06], [ 2.62, 1.23, 0.04], [ 0.83, -0.69, -0.61]])
给出求解过程
解:
对所有的样本进行中心化:\[x^{(i)}=x^{(i)}-\frac{1}{m} \sum_{j=1}^{m} x^{(j)}\]得到:
X=np.array([ [ 1.147 0.825 -0.944] [ 0.957 0.225 0.166] [ 1.357 1.655 0.986] [-1.803 -1.125 -0.444] [-1.273 -1.235 -0.534] [-0.283 -0.035 0.506] [ 0.677 0.725 0.856] [-0.023 0.475 -0.714] [ 0.517 0.205 0.386] [-1.273 -1.715 -0.264]])
计算样本的协方差矩阵 $X X^{T} $covM2=np.array([[1.26344556 1.08743889 0.32030889], [1.08743889 1.11076111 0.31611111],[0.32030889 0.31611111 0.45449333]])
对矩阵 $X X^{T} $ 进行特征值分解取出最大的 \(\mathrm{n}^{\prime}\) 个特征值对应的特征向量 $ \left(w_{1}, \ldots, w_{n^{\prime}}\right) $, 将所有的特征向量标准化后,组成特征向量矩阵 \(W\)。
3.1求出特征值:
eigval=np.array([2.38219729 0.09637041 0.35013229])
3.2特征向量标准化:
eigvec=np.array([[ 0.71144 0.67380165 -0.19961077],[ 0.66498574 -0.73733944 -0.11884665],[ 0.22725997 0.04818606 0.97264126]])
3.3取出特征值最大的2个特征值索引,也就是\([2.38, 0.35]\)对应的第1列和第3列:
indexes=[2 0]
3.4特征向量矩阵W:(对eigvec
取了第3
列和第1
列)
W=np.array([[-0.19961077 0.71144 ], [-0.11884665 0.66498574], [ 0.97264126 0.22725997]])
对样本集中的每一个样本 \(x^{(i)}\) , 转化为新的样本 \(z^{(i)}=W^{T} x^{(i)}\) ,得到输出样本集 $D=\left(z^{(1)}, \ldots z^{(m)}\right) $X:3×10 W:3×2 \(x\cdot W =10\times3 \quad 3\times2\) 因为输入行列转置,结果是一致的
D=np.array([ [-1.24517539 1.15010151] [-0.05630956 0.86819503] [ 0.49146125 2.29005381] [ 0.06174799 -2.1317387 ] [-0.1185103 -1.84827733] [ 0.55280596 -0.10961848] [ 0.6112806 1.15829407] [-0.74632697 0.13724149] [ 0.24787719 0.5918589 ] [ 0.20114923 -2.10611029]])
代码:
import numpy as npX=np.array([ [ 3.25, 1.85, -1.29], [ 3.06, 1.25, -0.18], [ 3.46, 2.68, 0.64], [ 0.3 , -0.1 , -0.79], [ 0.83, -0.21, -0.88], [ 1.82, 0.99, 0.16], [ 2.78, 1.75, 0.51], [ 2.08, 1.5 , -1.06], [ 2.62, 1.23, 0.04], [ 0.83, -0.69, -0.61]])def pca(X, d): # Centralization中心化 means = np.mean(X, 0) X = X - means print(X) # Covariance Matrix 计算样本协方差矩阵 M=len(X) X=np.mat(X) covM2=np.cov(X.T) # 求出特征值,特征值分解 eigval , eigvec = np.linalg.eig(covM2) indexes = np.argsort(eigval)[-d:] W = eigvec[:, indexes] return X*Wprint(pca(X, 2))
附注:
np.cov()是一个用于计算协方差矩阵的函数,它可以接受一个或两个数组作为参数,返回一个二维数组,表示协方差矩阵。
协方差矩阵是一个对称矩阵,它的对角线元素表示各个变量的方差,非对角线元素表示两个变量之间的协方差。协方差反映了两个变量的线性相关程度,如果协方差为正,说明两个变量正相关;如果协方差为负,说明两个变量负相关;如果协方差为零,说明两个变量无相关性。
np.cov()的用法如下:
np.cov(m, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=None)
参数说明:
m: 一个一维或二维的数组,表示多个变量和观测值。如果是一维数组,表示一个变量的观测值;如果是二维数组,每一行表示一个变量,每一列表示一个观测值。y: 可选参数,另一个一维或二维的数组,表示另一组变量和观测值,必须和m具有相同的形状。rowvar: 可选参数,布尔值,默认为True。如果为True,表示每一行代表一个变量;如果为False,表示每一列代表一个变量。bias: 可选参数,布尔值,默认为False。如果为False,表示计算无偏协方差(除以n-1);如果为True,表示计算有偏协方差(除以n)。ddof: 可选参数,整数,默认为None。如果不为None,则覆盖由bias隐含的默认值。ddof=0表示计算有偏协方差;ddof=1表示计算无偏协方差。fweights: 可选参数,一维数组或整数,默认为None。表示每次观测的频率权重。aweights: 可选参数,一维数组,默认为None。表示每个变量的可靠性权重。返回值:
一个二维数组,表示协方差矩阵。举例说明:
import numpy as np# 生成两组随机数据x = np.random.randn(10)y = np.random.randn(10)# 计算x和y的协方差矩阵cov_xy = np.cov(x,y)print(cov_xy)# 输出:[[ 0.8136679 -0.01594772] [-0.01594772 0.84955963]]# 计算x和y的相关系数矩阵corr_xy = np.corrcoef(x,y)print(corr_xy)# 输出:[[ 1. -0.01904402] [-0.01904402 1. ]]
标签:
- 机器学习(五):混合高斯聚类GMM(求聚类标签)+PCA降维(3维降2维)习题|天天热推荐
- qq邮箱怎么看对方已读 独家
- dg是什么部队_dg是什么|最新消息
- 今日快讯:巴沙尔阿萨德俄罗斯_巴沙尔阿萨德
- OPNX宣布推出做市商计划
- 视焦点讯!河北年底前将建成20个县级智慧矫正中心
- 天天新动态:历史观有哪几种(历史观的种类)
- 新乡冠军赛:国乒10人冲16强马龙战新秀!张本伊藤日本2核受重视
- 盱眙县医保局医保业务大讲堂开讲
- 当前消息!小班家教教案 小班家教专刊(九篇)
- 全球热头条丨教师之家中秋节礼物
- 遵化:古树认养开启致富增收新赛道
- 兰考桐花节活动:将以桐花为媒,传承弘扬焦裕禄精神_天天简讯
- 多措并举夯实农民工返乡就业创业路 仁寿县让更多“南飞雁”成为“还巢凤”
- 照片“活化”骗过人脸识别牟利?二手车中介商:这可太“刑”了!
- 速讯:贵州务川:乡村云雾缭绕 宛如水墨画
- 5日内可多次换乘!“高铁环游齐鲁”套票上线开售 当前观点
- 力图的意思是什么顽强
- 装输入法就能和必应聊天!微软必应大举“进占”手机屏幕
- 鲤城区召开2023年优化营商环境大会_世界实时
- 世界观天下!甘肃张掖:雪映祁连山
- 4月6日LME基本金属库存统计 今日要闻
- 学大教育(000526),技术指标出现观望信号-“黑三兵”(04月07日)_当前速读
- 前2个月我国服务进出口总额同比增长1.7%
- 战神4战神难度100%收集机白金通关心得分享 有什么技巧 天天快资讯
- 推广大功率充电需产业链协同 每日时讯
- 每逢佳节倍思亲的倍思亲是什么意思_倍思亲是什么意思|观热点
- 焦点速讯:[日站三创][现实类]大和赤骥背叛后,我开启了新人生 45.《喜欢你》
- 《亲爱的你在哪里》真实,不止丢孩子的痛,家家都有本难念的经-天天时快讯
- “耕耘者振兴计划”蕲春县新型农业经营主体送教班成功举办 环球观焦点
- 天天观天下!央行广州分行副行长郭云喜:“跨境理财通”业务呈现出三大特点
- 惠而浦:格兰仕家用电器计划增持比例不低于公司总股本的2.5%且不超过5.00%
- 全球即时看!文化观察“我和春天有个约会”③ 当烟火气遇上文艺范 邂逅春天里的“诗与远方”
- 每日讯息!应急预案与演练
- 埃及计划增加与中国直飞航班-快播
- 曝网易起诉亚马逊AWS违约 或造成重大损失
- 艺术生集训注意事项有哪些 需要注意什么_世界热点评
- 青团的详细做法来了!|全球新消息
- 北京913路公交车首末班车时刻表、票价及站点-世界速讯
- 院校考情 | 西南石油大学外应专业944/702/241考研信息汇总_世界热讯
- 概念股又崩了!多国“封杀”、近万人联名抵制,AI真的需要勇气?_世界速看
- 清明前后不知道吃什么?别犯愁,推荐受欢迎的10道家常菜
- 心系民生才能办好案(一线行走)
- 全球观察:主办方回应少儿车模大赛衣着暴露!网友:别太离谱!
- 都体:都灵愿意买断拉扎罗,希望国米能降低600万欧的买断费
- 资产质量持续向好!宁波银行2022年净利润230.75亿元
- 如何看待 重金炒鞋盒,重金求鞋盒背后
- 德米特里·艾多夫 世界关注
- 儋州1500亩朝天椒大丰收,农户笑开颜
- 明日清明,家宴喝酒千万别用“祭祀手”,酒场大忌千万别得罪人
- 为什么东北地区得半身不遂的人这么多?调查发现:主要原因有四点-全球微动态
- 想不想要RTX 4070 Ti?七彩虹iGame动图设计大赛免费送
- 9月招新生!北京一〇一中教育集团两所中小学校落地昌平-当前动态
- 每日看点!统统掠走的拼音怎么写?_统统掠走的读音
- 稳增长 促发展 强信心丨“港”通东盟势头强劲
- 环球实时:演绎千古绝恋 再现盛唐风华——评新版京剧《大唐贵妃》
- 以案说法|已婚已育儿子先于父母去世,其留下的婚前房产如何被继承?
- 【天天速看料】龙港市气象台发布大雾黄色预警【Ⅲ级/较重】
- 3张腿部肌肉的近景照片,詹姆斯大腿肌肉王者段位,武大靖:掀起裤腿炫肌肉
- 和谐汽车去年营业收入超163亿元 汽车销售等收入占比近九成
- 不要站错你的队伍_哲理故事相关作文 思维的“跳糟”_关于思维|世界热闻
- 天天热议:白俄罗斯拘捕一批从事特工行动和恐怖主义活动的外国人员
- 天天要闻:2023年4月4日青海中宏矿业碳酸锂价格下调
- 麦当劳拟裁员,本周暂时关闭美国的全部办事处_天天快资讯
- 世界7大禁地 你永远无法到达的地方-新资讯
- 飞猪一季度国内酒店和门票预订量远超2019年同期
- 胶原炮美容仪可以天天用吗 快报
- 4月3日CBOT玉米互有涨跌|全球快讯
- 天天头条:中泰证券:给予蒙娜丽莎增持评级
- 戏剧梦传师生情 国粹缘牵两岸心 全球简讯
- 省税务局赴株调研问需:倾听基层呼声 服务高质量发展 世界热资讯
- 首个香港高中公民科学生内地考察团出发_每日速读
- 观点:华为自拍杆使用图解_华为自拍杆使用方法
- 全球热头条丨最好的免费小说网站
- 海目星(688559):4月3日北向资金减持5600股-世界微动态
- 库里夺五冠可比肩科比和魔术师约翰逊?-天天微动态
- 城市24小时|谁是中部人口增量第一城_天天看热讯
- 热消息:《强国一代有我在》《海阳十咏》……连州市中青年干部培训班举行文艺汇演
- 科力远2022年净利1.79亿同比增长323.51% 董事长张聚东薪酬23.8万|环球关注
- 三角形中位线定理证明的多种方法_证明相似三角形的方法 天天热议
- 花木虫鱼丛谈
- 山东路桥:公司分红有两个原则,一是与股东共享业绩增长成果
- @武汉人,急雨来袭雷声滚滚,一份防雷秘籍请查收!-环球快播报
- 少年张三丰演员表(少年张三丰演员表全部)-快消息
- 1米高的阿拉斯加犬跳起扑倒撕咬小学生,主人:它挣断了绳索,愿赔医药费
- 拉鲁斯法汉词典 法法·法汉双解 天天播资讯
- 武术自学网站_功夫者 当前关注
- 早盘评述及午后预测(4-3)-全球看点
- 安徽池州高新区精耕细作“主战场” 追逐高质量发展
- 箭牌家居(001322)4月3日11点19分触及涨停板
- 港股异动 | 中国海外发展(00688)涨超6%领涨内房股 “带押过户”全面推广 已有超百城出台相关政策
- 保利置业前三月销售217亿?同比增长261%|头条
- 【手慢无】精准区分煎烙烤!利仁电饼铛129元秒杀
- 【时快讯】郭守敬望远镜发布光谱数量突破2000万条
- 北京全面推广免罚慎罚制度
- 今日观点!5.98万起!大空间五门纯电车五菱缤果正式上市
- 媒体人:杜兆才上个月开会还有发言,虽面容憔悴但存侥幸心理
- 世界新消息丨中央气象台:较强冷空气将影响中国大部地区
- 天天微速讯:多地查处公务员考试作弊行为,有人禁考5年
- 【全球新要闻】燃油车大甩卖?但我劝你先别买
广告
广告
- 长治襄垣县增收11517万元 提前15天实现首季“开门红”
- 黑龙江讷河新增1例确诊4例无症状 病例详情公布
- 浙江宁波余姚奉化宁海三地开展核酸检测 结果均为阴性
- 浙江湖州南浔三处棋牌室经营者被行拘
- 那年今日 | 一张漫画涨知识之12月13日
- 在宁波乘火车跨省出行须持48小时内核酸阴性证明
- 浙江温州一地发现核酸弱阳性?复采复检结果均为阴性
- 浙江三门发现一名密接者:二次核酸检测结果均为阴性
- 贱卖的发电机 新买的制茶机——安徽水电供区改革两周年回访见闻
- 浙江杭州新增1例新冠肺炎确诊病例 为集中隔离人员
- 2022年研考在即,学硕缩招,专硕时代真的来了?
- 探访杭州核酸检测点:排队高峰多在夜间 医院24小时运转
- 浙江发挥零售药店“哨点”作用 织就疫情防控监测网
- 哈尔滨市本轮疫情首批1名确诊患者出院
- 宁波镇海第三轮全员核酸检测574181人 结果均为阴性
- 陕西新增本土确诊病例1例、境外输入无症状感染者2例
- 齐齐哈尔讷河一地调整为中风险地区
- 浙江新增新冠肺炎确诊病例75例 其中本土74例
- 内蒙古新增本土确诊病例5例 均在呼伦贝尔满洲里市
- 黑龙江无新增确诊病例 新增本土核酸检测初筛阳性人员5例