MatLab是由美国The MathWorks公司出品的商业数学软件,目前世界上180多个国家的超过三百万工程师和科学家在使用MATLAB和Simulink。MATLAB主要用于数值分析、数值和符号计算、工程与科学绘图、控制系统的设计与仿真、数字图像处理、数字信号处理、通讯系统设计与仿真、财务与金融工程,是一款商业数学软件。MATLAB拥有丰富的算法工具箱,因此在工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域都能看到它的身影,可谓是无处不在。同时,作为三大数学软件之一,它在数学类科技应用软件中的数值计算方面可谓是首屈一指。
说点人话,这是个什么样的工具呢?一个能在你决定砸钱造出某个武器前,能告诉你这个设计造出来后大概率会怎么运作的工具,而且只要你能把问题描述对、边界描述对,它还能给你答案的工具。
2020年根据美国商务部的通知,北京航空航天大学、中国人民大学、国防科技大学、湖南大学、哈尔滨工业大学、哈尔滨工程大学、西北工业大学、西安交通大学、电子科技大学、四川大学、同济大学、广东工业大学以及南昌大学等 13 所大学列入了禁用MATLAB的“实体名单”。
由于matlab软件费用昂贵,但是又加上美国对中国高校的matlab制裁,只有不在美国要求的实体名单的很少部分学校花钱购买此软件,学生只需要使用该学校单位登录,教育邮箱注册验证即可。
我们打开注册地址:https://www.mathworks.com/ 点击右上角获取GET MATLAB,点击Create Account按钮用邮箱直接注册,我们要用edu邮箱,不要用非edu邮箱或者虚假大学edu邮箱,什么是虚假大学,就是某宝上的ac.cn或者查询不存在的大学。如下图所示:
To access your organization’s MATLAB license, use your work or university email.要访问您组织的 MATLAB 许可证,请使用您的工作或大学电子邮件。
如果我们使用非真实组织邮件或者是商业类邮箱进行注册会提示:We are unable to validate this email address. If you must use this address, contact Customer Support.我们无法验证此电子邮件地址。如果您必须使用此地址,请联系客户支持。
我们使用真实edu邮箱注册,会直接提示创建密码:
我们输入edu邮箱收到的验证码,进行MATLAB账号确认。
我们设置完密码后,MATLAB会要求你填写邮箱的机构信息,姓名,位置,学生类型,研究领域,还有年龄是否大于13岁。
如果我们的邮箱所对应的学校没有购买MATLAB软件授权,直接会提示:You do not have any licenses linked with your MathWorks Account,你没有任何与您的MathWorks 账户所关联的许可证。
如果我们的edu邮箱学校购买了MATLAB软件授权,打开https://www.mathworks.com/mwaccount许可证查看地址,会提示:
Your account has been created and licensehas been linked with your account. 您的帐户已创建,许可证已与您的帐户相关联。
我们看到MATLAB账户下有学术授权,产品属性是 Academic ,学术的意思。我们的edu邮箱也会收到来自service@account.mathworks.com发送的访问您的 MathWorks 许可证的邮件提示:
您现在拥有关联到您 MathWorks 帐户的 MathWorks 软件许可证
为了充分利用您的许可证,请登录到您的 MathWorks 帐户以查看您的许可证权益。
有关您 MathWorks 帐户的问题,请联系支持部门。
MathWorks 客户服务团队
不建议用盗版原因:当然可以,我有个朋友,咳,上学时候用的就是盗版Matlab,成绩照样A+。但是做科研与上学做作业不同,做科研是要发表paper的,paper是公开给所有人看的。这个时候如果在paper上出现了未授权的Matlab成果,Matlab公司的人就会来查水表要求巨额侵权索赔。Matlab还有强大的绘图功能,平时我们在各种科学文献里看到那些精美的数据表大概率就出自Matlab,而这都很容易就能被查出来。所以偷着用Matlab研究可行,但是你能捂着所有科研人员不发paper吗?我们再进一步阴谋论,如果Matlab再使个坏,留个后门,让所有盗版Matlab的计算故意偷偷出错,1+1=3,那么很多科研人员呕心沥血的成果就错到一文不值了。
本普及文章是采用edu邮箱平台的matlab软件教育许可账户进行研究测试,如果有需要可以进行沟通交流。
转载声明:本文文章所需要的邮箱、文字、图片等素材均由edu官方资讯平台edumails.cn提供,并已获得独家转载授权。
原文参考:https://www.edumails.cn/matlab.html
者:Seth DeLand
翻译:王威力
校对:万文菁
本文约1800字,建议阅读8分钟。
本文是一个循序渐进的指南,包括如何预处理数据和从中生成特征。并且还包含其他示例资源的链接,以帮助您探索有关机器学习的方法和其他示例。
机器学习的实现路线充满了反复试验。在这个领域,新手工程师和科学家将不断调整他们的算法和模型。此过程中会出现挑战,尤其是在数据处理和确定最优模型的时候。
在建立机器学习模型时,重要的是知道现实世界的数据并不完美,因此不同类型的数据需要不同的处理方法和工具,并且在确定最优模型的时候不可避免会有取舍。
下面的系统流程将描述如何开发一个训练好的模型用于手机健康监测app,该app跟踪用户整天的活动。输入包括手机端记录的感知器数据。输出将是用户的活动:行走,站立,坐下,跑步,或跳舞。由于这是一个分类问题,这个例子将应用有监督学习。
访问和加载数据
用户将拿着手机坐下来,记录传感器数据,并将其存储在标记为“坐下”的文本文件中。之后,用户拿着手机站起来,记录传感器数据,并将其存储在标记为“站立”的文本文件中。用同样的方法来记录跑步、行走、跳舞的数据。
数据预处理
由于机器学习算法无法区分数据中的噪声和有价值的部分,所以需要在训练模型前清洗数据。数据预处理可以用数据分析工具来实现,比如MATLAB。为了清理数据,用户可以导入并绘制数据,去除异常值。在这个例子中,离群值可能是由于在记录数据时无意中移动了手机造成。用户还需要检查缺失值,缺失值可用其他样本的近似值或参照数据代替。
图 1 数据预处理之去除离群值,即位于数据主要部分之外的数据点。
数据清洗之后,将数据集分为两个部分,一部分作为训练集,另一部分将是用于测试和交叉验证的“保留”数据。
使用预处理后的数据生成特征
原始数据必须转化成机器学习算法可以使用的信息。要实现这一点,用户必须生成能够区分手机端数据的特征。
在这个例子中,工程师和科学家必须划分好特征以帮助算法区分步行(低频)和跑步(高频)。
数据类型
特征选择目标
技巧
传感器数据
从原始传感器数据中提取信号特性以创建更高级别的信息
峰值分析——应用傅里叶变化,识别主频
脉冲和转移矩阵——得到信号特征如上升时间、下降时间、趋稳时间
频谱测量——画出信号功率、带宽、均值频率、中值频率
图像和视频数据
提取特征,例如边缘位置、分辨率、颜色
视觉词袋——生成图像特征直方图,例如边缘、角点、连通区域
方向梯度直方图——生成梯度方向直方图
最小特征值算法——监测图像角点
边缘探测——探测图像亮度变化最快的像素点位置
交易数据
计算提炼数据中信息的派生值
时间标记分解——把时间标记分解成到天或者月
计算集成值——生成更高级别的特征,比如某一特殊时间出现的总次数
表 1 依据数据类型导出特征,可以把原始数据转化成机器学习模型可以使用的高级别信息
建立并训练模型
从一个简单的决策树开始:
图 2 基于特征建立的决策树分类模型
绘制混淆矩阵以观察模型效果。
图 3 矩阵显示该模型在区分跳舞和跑步时存在问题
基于上面的混淆矩阵,这表示决策树不适合这种类型的数据,或者应该使用不同的算法。
K近邻算法(KNN)存储所有训练数据,将新数据点与训练数据进行比较,得到K个最相似样本,并返回这些相似样本的最频繁类。这个算法展示出更高的准确度。
图 4 改用KNN算法提高了准确度——尽管还有提高的可能性
另一个选择是多分类支持向量机(SVM):
图 5 SVM的准确率在每个分类标签上都接近99%
这个过程证明了通过反复试验可以更好实现目标。
改进模型
如果模型无法可靠地区分跳舞和跑步,就需要改进模型。改进模型可以通过使其复杂化以更好地拟合数据,或者使其简单化以降低过拟合的可能性。
为了简化模型,可以通过以下方法减少特征数量:
为了使模型更加复杂,工程师和科学家可以通过集合多个简单模型得到一个更大的模型或者增加更多数据源。
完成训练和调整之后,模型可以应用在测试集(数据预处理时保留的一部分数据)。如果模型可以可靠地对活动分类,那么它就可以应用在手机应用程序。
工程师和科学家第一次训练机器学习模型的时候将会遇到挑战,但应该意识到反复试验是过程的一部分。
上述的工作流程提供了构建机器学习模型的路线图,并且可以应用到其他不同的问题上,比如预测维护、自然语言处理和自动驾驶。
探索这些资源以了解更多机器学习方法和例子:
原文标题:
Building a Machine Learning Model through Trial and Error
原文链接:
https://www.kdnuggets.com/2018/09/mathworks-building-machine-learning-model-through-trial-error.html
译者简介
王威力,求职狗,在香港科技大学学习大数据科技。感觉数据科学很有难度,也很有意思,还在学(tu)习(tou)中。一个人肝不动的文献,来数据派follow大佬一起肝。
— 完 —
关注清华-青岛数据科学研究院官方微信公众平台“THU数据派”及姊妹号“数据派THU”获取更多讲座福利及优质内容。
日,有哈工大学生表示收到了正版软件取消激活的通知,而在与 MATLAB 开发公司 MathWorks 交涉之后,被告知由于美国政府实体名单的原因,相关授权已被终止。目前,哈尔滨工业大学、哈尔滨工程大学的老师和学生们都无法使用 MATLAB。
大学读理工科专业的同学基本上都接触过MATLAB这款软件,有分析人士指出,如果整个学校被禁用了正版 MATLAB,这意味着学校的人员在发表论文或者从事商业项目,其成果原则上就不应包含任何基于 MATLAB 的内容,这对国内相关企业和研究学者带来的影响不可忽视。这件事在国内社交媒体迅速发酵并登上热搜,引发学术界和技术界的广泛讨论。 现在只是禁止了实体名单的上的几所高校,但是谁又能保证后续不会加码制裁打击中国高校,抑制中国科技发展呢?因此通过此次禁用事件,我们有理由说现在已经到了后MATLAB时代!急需找到MATLAB合适的替代品。
为此我们收集整理到的一些开源软件,可以起到一定的替代效果。包括:python,SCILAB、Octave、Spyder、Python、GMAT、GNU Radio、ROS。特别是SCILAB,它与MATLAB最为接近,近乎可以实现完美替代!
Python是一门完全免费的通用编程语言,以开源的方式提供了大量各类用途的库与包,如Numpy(数值计算)、SciPy(数学、科学和工程计算)、Matplotlib(类似MATLAB中plot的绘图工具)等等。
Python是一门更易学更严谨的面向对象的程序设计语言。作为通用程序设计语言的Python,有更为严格清晰的语法,可以轻易完成界面、文件、封装等高阶需求,可移植性更好,也非常适合AI、网络等相关应用。
Python的拥有庞大的数学库,如果不是必须用到MATLAB simulink的话,用Python来取代MATLAB 应该是最佳方式了。我们经常可以看到这样一个公式:
python+NumPy+Scipy+matplotlib = Matlab
SCILAB 一词来源于英文“Scientific Laboratory"(科学实验室)词头的合并。与MATLAB类似,SCILAB也是一种科学工程计算软件,其数据类型丰富,可以很方便地实现各种矩阵运算与图形显示,能应用于科学计算、数学建模、信号处理、决策优化、线性/非线性控制等各个方面。它还提供可以满足不同工程与科学需要的工具箱,例如SCICOS,信号处理工具箱,图与网络工具箱等。可以说,就基本的功能如科学计算、矩阵处理及图形显示而言,MATLAB能完成的工作SCILAB都可以实现。由于SCILAB的语法与MATLAB非常接近,熟悉MATLAB编程的人很快就会掌握SCILAB的使用。有意思的是,SCILAB提供的语言转换函数可以自动将用MATLAB语言编写的程序翻译为SCILAB语言。目前,SCILAB除了WINDOWS与NT版本外,还有多种UNIX或LINUX下的版本,如SGI MIPS Irix, PC Linux, Sun Sparc stations(SunSolaris) 等。
SCILAB 是一款与 MATLAB 类似的开源软件,可以实现 MATLAB 上所有基本的功能,如科学计算、数学建模、信号处理、决策优化、线性、非线性控制等各个方面。由于 SCILAB 的语法与 MATLAB 非常接近,熟悉 MATLAB 编程的人很快就会掌握 SCILAB 的使用。有意思的是,SCILAB 提供的语言转换函数可以自动将用 MATLAB 语言编写的程序翻译为 SCILAB 语言。目前,SCILAB 可在 Linux、WINDOWS 和 Mac OS 全 PC 平台运行。
作为开放源码的软件,SCILAB的源代码、用户手册及二进制的可执行文件都是免费的,公布于INRIA的网站上(中法实验室已建立其镜像网站),可以直接下载,在EETOP论坛SCILAB专区也可以下载:
http://bbs.eetop.cn/forum-114-1.html
更重要的是SCILAB 是由法国国家信息、自动化研究院的科学家们开发的“开放源码”软件,和美国没有关系!
此外最关键的是SCILAB也一个有类似 MATLAB simulink的工具Xcos!simulink能做的Xcos也可以完成,并且界面和使用也很类似!很多网友担心的simulink无法替代问题迎刃而解!
因此SCILAB 近乎可以完美替代MATLAB!(欢迎用过的朋友补充说明)
如果已经对MATLAB语言非常熟悉,暂时不想学习一门新的语言,那么可以尝试一下Octave。Octave是GNU项目成员之一,提供了与MATLAB语法兼容的开放源代码科学计算及数值分析的工具。
Octave 是一个类似 MATLAB 和 Scilab 的数学软件包,可以进行各种运算,编程。它还有丰富的 C++ 接口可以让用户编程时调用。其配套的绘图工具采用 gnuplot 。Octave 的使用也是基于字符终端模式的,当需要绘图时,将会调用 gnuplot 进行数据绘图,并显示出来。
Octave 使用 C++ 编写的,它内容丰富的库也可以供用户在编写软件时调用。Octave 同时还支持 Fortran 等的调用,GSL 绑定等。可以由用户定制自己的函数、子程序等。
对于航天器轨道计算、任务分析等,可以尝试General Mission Analysis Tool (GMAT)。GMAT提供了图像化界面或脚本两种接口,相比于STK,GMAT的深空探测相关功能更加强大,可配置的资源也更多。
GNU Radio是一个对学习,构建和部署软件定义无线电系统的免费软件工具包,可通过Python或类似于Simulink/Labview的图形化界面调用。紫丁香、龙江等卫星的业余无线电接收解调软件就是在GNU Radio基础上开发并开源发布的。
ROS是一种针对于满足不同机器人软件协同工作的灵活软件框架。目的在于提高软件模块化能力和复用能力,并实现不同任务间的数据/信号量的有效共享,方便多种机器人平台之间创建复杂和鲁棒的机器人行为,同时它也是一种工具库的约定与集合。
*请认真填写需求信息,我们会在24小时内与您取得联系。