Apache Axis

哈工大硕士生实现11种数据降维算法,代码已开源!

▼魔方 西西 提交于 2020-12-03 14:37:37
点击“ 开发者技术前线 ”,选择“星标🔝” 在看|星标|留言, 真爱 来自:相约机器人 编辑:huber 大家好,我是huber! 网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码。这里有个 GitHub 项目整理了使用 Python 实现了 11 种经典的数据抽取(数据降维)算法,包括:PCA、LDA、MDS、LLE、TSNE 等,并附有相关资料、展示效果;非常适合机器学习初学者和刚刚入坑数据挖掘的小伙伴。 01 为什么要进行数据降维? 所谓降维,即用一组个数为 d 的向量 Zi 来代表个数为 D 的向量 Xi 所包含的有用信息,其中 d<D;通俗来讲,即将高维度下降至低维度;将高维数据下降为低维数据。 通常,我们会发现大部分数据集的维度都会高达成百乃至上千,而经典的 MNIST,其维度都是 64。 MNIST 手写数字数据集 但在实际应用中,我们所用到的有用信息却并不需要那么高的维度,而且每增加一维所需的样本个数呈指数级增长,这可能会直接带来极大的「维数灾难」;而数据降维就可以实现: 使得数据集更易使用 确保变量之间彼此独立 降低算法计算运算成本 去除噪音 一旦我们能够正确处理这些信息,正确有效地进行降维,这将大大有助于减少计算量,进而提高机器运作效率。而数据降维,也常应用于文本处理、人脸识别、图片识别、自然语言处理等领域。 02 数据降维原理

机器学习实战 之 KNN算法

余生颓废 提交于 2020-12-02 06:00:48
现在 机器学习 这么火,小编也忍不住想学习一把。注意,小编是 零基础 哦。 所以,第一步,推荐买一本机器学习的书,我选的是Peter harrigton 的《机器学习实战》。这本书是基于python 2.7的,但是我安装的是python 3.6.2. 所以很关键的是,你必须得有一定的python基础。这里我推荐runoob的py3教程,通俗易懂。http://www.runoob.com/python3/python3-tutorial.html 注意:python2和python3是不兼容的 python是面向 对象 的,面向对象是python的精髓。 ————————————————————严肃的分割线......—————————————————————————————— 言归正传,首先,我们要安装一些包,比如 numpy和matplotlib。小编推荐用 anaconda,这是一个开源的 Python 发行版本,其包含了conda、Python等180多个科学包及其依赖项。下载地址https://www.anaconda.com/download/。这就免去安装各种包的烦恼。   界面如下:里面有一个spyder,这是一款很好用的IDE 左边是文本编辑区,右下角是命令行。右上角是变量区,很方便啊,有木有! 下面就是KNN算法的讲解了。 ———————————————————

利用python 进行数据清洗

↘锁芯ラ 提交于 2020-12-02 05:55:59
import pandas as pd data.to_csv( " 路径 " ,encoding=utf-8) 保存文件 data.head() 查看前几行 data.tail() 查看后几行 data.shape 几行几列 data.index 查看索引 data.columns 查看标题 data.values 查看值 data.info 查看整体结构 data.describe() 对数值型数据进行描述统计 data.value_counts()对值计数 data.sort_index(axis =1/0) 对索引进行排序 参数ascending= False 降序排序 data.sort_calues(by = " columens " ) 按照某一行的值进行排序 inplace=True 修改原始数据 选取数据 data.columns data[ " cloumns " ] data.loc[] 显示索引 data.iloc[] 隐示索引 set_option () 函数解决显示不全的问题 # 显示所有列 pd.set_option( ' display.max_columns ' , None) pd.set_option( ' display.max_columns ' , 5) # 最多显示五列 # 显示所有行 pd.set_option( ' display

Flutter时间轴

笑着哭i 提交于 2020-11-28 08:41:06
一,真实点,直接上图吧。 github地址 视频教学地址 1.位置,上图可见,时间轴可以在左边,也可以在中间,当然了可以在任何位置。 2.时间轴样式,当然了我们时间轴比仅仅限制为一个圆圈是吧,当然了你的部件能写多炫酷,砸门的时间轴也可以,上图(圆里面爱,图片,黄色背景文字,其实都是一长串部件)。 3.线,我们需要和内容的高度一样,这里估计是很多人的痛点,没法自适应,这里也做到了。线的粗细,颜色,虚线间隔,渐变...当然砸门也实现了 二 ,看一眼吧 如何实现。 群里很多人都需要一个时间轴,对于时间轴自适应高度难倒了很多人。当然了,我试着搞了搞,搞了两种思路, 第一种有点low但是也能实现。我们知道Container是一个部件,它有一个decoration属性里面又一个 boder,而且boder可以设置left,top,right,bootom等让其显示。 1 2 3 代码如下: return Scaffold( body: ListView.builder( itemCount:10, itemBuilder:(context,index){ return Column( crossAxisAlignment:CrossAxisAlignment.start, children: <Widget>[ Container( margin:EdgeInsets.only(left:10

迅为IMX6ULL开发板Linux下电容触摸屏实验-驱动框架

时光怂恿深爱的人放手 提交于 2020-11-27 10:58:06
如今 触摸屏 的使用越来越广泛,从手机、平板到蜂巢取货等场合,都是用了触摸屏,触摸屏的使用非常便捷高效。在本章就来学习一下如何在 Linux 下编写 电容 触摸屏驱动。 54.1 Linux 下电容触摸屏驱动框架 54.1.1 多点触摸协议详解 在前面的裸板实验中,已经详细讲解过了电容触摸驱动的基本原理,根据前面的实验可以总结出电容触摸屏驱动其实就是一下几种 linux 驱动框架的组合: ① IIC 设备驱动,因为电容触摸 IC 基本都是 IIC 接口的,因此大框架就是 IIC 设备驱动。 ② 通过中断引脚(INT)向 linux 内核上报触摸信息,因此需要用到 linux 中断驱动框架。坐标的上报在中断服务函数中完成。 ③ 触摸屏的坐标信息、屏幕按下和抬起信息都属于 linux 的 input 子系统,因此向 linux 内核上报触摸屏坐标信息就得使用 input 子系统。只是,我们得按照 linux 内核规定的规则来上报坐标信息。 在上面的驱动框架组合中我们发现 I2C 驱动、中断驱动、input 子系统都已经学习了解过了,还没有学习过 input 子系统下的多点电容触摸协议,这个就是本章学习的重点,linux 内核中有一份文档详细的讲解了多点电容触摸屏协议,文档路径为:Documentation/input/multitouch-protocol.txt。 MT

NumPy

て烟熏妆下的殇ゞ 提交于 2020-11-27 06:59:12
学习笔记 Numpy主要用于对多维数组执行计算。提供大量的库函数和操作。广泛用于以下任务: 机器学习:编写机器学习算法时,需要对矩阵进行各种数值计算。例如:矩阵乘法、换位、加法等。Numpy数组用于存储训练数据和机器学习模型的参数 图像处理和计算机图形学:图像表示为多维数字数组。Numpy提供了一些库函数来快速处理图像 数学任务:执行数学任务,比如:数值积分、微分、内插、外推 创建数组 使用Numpy提供的数组,成为ndarrays,可以执行矢量、矩阵、线性代数 数组属性 type(a)  变量类型 a.dtype  数据类型 a.size   大小 a.shape  维度 a.itemsize 每个项占用的字节数 a.ndim   数组维数 a.nbytes 数组中所有数据消耗掉的字节数 输入和输出 # NumPy二进制文件(NPY, NPZ) load(file[, mmap_mode, allow_pickle, …]) 从.npy,.npz或pickle文件加载数组或pickle对象。 save(file, arr[, allow_pickle, fix_imports]) 将数组保存为NumPy .npy格式的二进制文件。 savez(file, args, * kwds) 将多个数组以未压缩的.npz格式保存到单个文件中。 savez_compressed(file,

MATLAB入门教程

浪子不回头ぞ 提交于 2020-11-27 03:02:19
声明: 1.本教程原文出处已经不可查,我所见到最早的来源是CSDN上的一篇博文 [1] 。本文版权全部归原文作者所有,此处转载仅供学习交流之用,如有侵犯请及时联系我进行删除。 2.本教程浅显易懂,十分适合新手学习,但是根据我自己的阅读来判断,原文作者应当是台湾人,所以会有部分繁体字,然而更重要的是!!! 台湾人的行和列与大陆人刚好相反!!! [2] 这对于MATLAB这种依靠矩阵运算的工具来说简直是灾难!!!所以读者在学习时应当自行注意。 [1] MATLAB入门教程 [2] 为什么台湾的行和列与大陆恰好相反 (好文章值得一读) 1 MATLAB的基本知识 1.1 基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。 小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时MATLAB会直接显示x的值

实验一、熟悉MATLAB环境和基本信号的产生与运算

强颜欢笑 提交于 2020-11-24 12:45:31
实验一、熟悉MATLAB环境和基本信号的产生与运算 一、实验目的 二、实验器材 三、实验原理 1、 MATLAB简介 (1)MATLAB的桌面系统 (2)实验中常用的MATLAB函数命令 2.MATLAB中信号的表示-- MATLAB中一般用向量表示信号 (1)连续时间信号 (2)离散时间信号 3.信号的基本运算 (1)信号的加减 (2)信号的乘法 四、示例演示 1.基本信号的波形 (1)正弦信号 (2)抽样信号 抽样信号Sa(t)=sin(t)/t (3) 指数信号 (4)单位阶跃信号 (5)单位冲激序列 (6) 三角信号 (7)复指数信号 (8) 矩形脉冲信号 2.信号的运算 (1)绘出连续序列f(t)=exp[(-0.1+j0.5)t]的实部信号、虚部信号、振幅信号、相位信号。 (2)两个序列的加、乘运算 五、实验内容 1.验证实验原理中程序 2.画出信号波形(1) (2) 3.自选二个简单的信号进行加减和乘法运算。 (1).用matlab实现f=f1(t)+f2(t)及 f=f1(t).f2(t) (2).用matlab实现![在这里插入图片描述](https://img-blog.csdnimg.cn/20201121222031822.png#pic_center) (3).用matlab实现![在这里插入图片描述](https://img-blog.csdnimg

PCL点云库:对点云进行变换(Using a matrix to transform a point cloud)

微笑、不失礼 提交于 2020-11-24 02:24:02
点云数据可以用ASCII码的形式存储在PCD文件中(关于该格式的描述可以参考链接: The PCD (Point Cloud Data) file format )。为了生成三维点云数据,在excel中用rand()函数生成200行0-1的小数,ABC三列分别代表空间点的xyz坐标。 # .PCD v.7 - Point Cloud Data file format VERSION .7 FIELDS x y z SIZE 4 4 4 TYPE F F F COUNT 1 1 1 WIDTH 200 HEIGHT 1 VIEWPOINT 0 0 0 1 0 0 0 POINTS 200 DATA ascii 0.88071666 0.369209703 0.062937221 0.06418104 0.579762553 0.221359779 ... ... 0.640053058 0.480279041 0.843647334 0.245554712 0.825770496 0.626442137   进行点云的变换主要用到的函数是pcl::transformPointCloud,函数原型为:   void pcl::transformPointCloud(const pcl::PointCloud< PointT > & cloud_in,                  

使用python中出现的错误统计

末鹿安然 提交于 2020-11-23 22:51:08
1, unsupported operand type(s) for /: 'map' and 'int' 机器学习实战 PCA程序 Traceback (most recent call last): File " <ipython-input-29-808c65c1265e> " , line 1, in <module> lowDMat,reconMat =pca.pca(dataMat,1 ) File " I:\python\PCA\pca.py " , line 15, in pca meanVals = mean(dataMat, axis=0) 解决办法: 2 ,TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'' Traceback (most recent call last): File " <ipython-input-17-945c872e5152> " , line 1, in <module> dataMat = pca.replaceNanWithMean() File " I: