[笔记]Machine Learning In Action-kNN with python

本文探讨了np.tile函数在扩展数组时可能带来的内存负担,并介绍了Python中利用argsort进行值升序排列的方法及返回索引的应用场景。此外,还讨论了如何处理字典排序时的常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

几个关注点:

np.tile 把inX 扩展到与dataSet 同尺寸, 比较浪费内存

argsort 按值升序排列,但是返回 value 的index

classCount.get(voteIlabel, 0) 如果无voteIlabel的索引,则返回0。有些多余,如果voteIlabel不在索引范围内,则会直接报错。

key=operator.itemgetter(1) 按照值排序,似乎classCount.items() 会对待每个items为tuple

http://stackoverflow.com/questions/613183/sort-a-python-dictionary-by-value

内容概要:本文档提供了关于“微型车间生产线的设计与生产数据采集试验研究”的毕业设计复现代码,涵盖从论文结构生成、机械结构设计、PLC控制系统设计、生产数据采集与分析系统、有限元分析、进度管理、文献管理和论文排版系统的完整实现。通过Python代码和API调用,详细展示了各个模块的功能实现和相互协作。例如,利用SolidWorks API设计机械结构,通过PLC控制系统模拟生产流程,使用数据分析工具进行生产数据的采集和异常检测,以及利用进度管理系统规划项目时间表。 适合人群:具有机械工程、自动化控制或计算机编程基础的学生或研究人员,尤其是从事智能制造领域相关工作的人员。 使用场景及目标:①帮助学生或研究人员快速搭建和理解微型车间生产线的设计与实现;②提供完整的代码框架,便于修改和扩展以适应不同的应用场景;③作为教学或科研项目的参考资料,用于学习和研究智能制造技术。 阅读建议:此资源不仅包含详细的代码实现,还涉及多个学科领域的知识,如机械设计、电气控制、数据分析等。因此,在学习过程中,建议读者结合实际操作,逐步理解每个模块的功能和原理,并尝试调整参数以观察不同设置下的系统表现。同时,可以参考提供的文献资料,深入研究相关理论和技术背景。
以下是DPC-KNN-PCA算法的Python完整代码,包括数据预处理、DPC-KNN-PCA算法实现和结果可视化: ```python import numpy as np import pandas as pd import matplotlib.pyplot as plt # 数据预处理 data = pd.read_csv('data.csv') X = data.values[:, :-1] y = data.values[:, -1] # DPC-KNN-PCA算法实现 def DPC_KNN_PCA(X, k, alpha, beta, gamma): n, m = X.shape D = np.zeros((n, n)) for i in range(n): for j in range(n): D[i, j] = np.linalg.norm(X[i] - X[j]) D_sort = np.sort(D, axis=1) idx_sort = np.argsort(D, axis=1) K = np.zeros((n, k)) for i in range(n): for j in range(k): K[i, j] = idx_sort[i, j+1] W = np.zeros((n, n)) for i in range(n): for j in range(k): W[int(K[i, j]), i] = 1 W = np.maximum(W, W.T) D_bar = np.diag(np.sum(W, axis=1)) L = D_bar - W M = np.dot(X.T, L).dot(X) [U, S, V] = np.linalg.svd(M) U_pca = U[:, :2] Z = np.dot(X, U_pca) L_pca = np.dot(U_pca.T, M).dot(U_pca) D_pca = np.diag(np.sum(L_pca, axis=1)) L_norm = np.linalg.inv(np.sqrt(D_pca)).dot(L_pca).dot(np.linalg.inv(np.sqrt(D_pca))) W_norm = np.exp(-alpha*L_norm) - np.eye(n) D_norm = np.diag(np.sum(W_norm, axis=1)) L1_norm = D_norm - W_norm L2_norm = np.linalg.inv(np.sqrt(D_norm)).dot(L_norm).dot(np.linalg.inv(np.sqrt(D_norm))) W_dpc = np.exp(-beta*L1_norm - gamma*L2_norm) - np.eye(n) D_dpc = np.diag(np.sum(W_dpc, axis=1)) L_dpc = D_dpc - W_dpc return Z, L_dpc # 运行DPC-KNN-PCA算法并可视化结果 Z, L_dpc = DPC_KNN_PCA(X, 10, 0.5, 0.1, 0.1) plt.scatter(Z[:, 0], Z[:, 1], c=y) plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值