Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >机器学习测试笔记(29)——找到最佳模型及参数

机器学习测试笔记(29)——找到最佳模型及参数

作者头像
顾翔
发布于 2021-03-03 07:24:12
发布于 2021-03-03 07:24:12
48440
代码可运行
举报
运行总次数:0
代码可运行

顾老师新书《全栈软件测试工程师宝典》

https://item.m.jd.com/product/10023427978355.html

以前两本书的网上购买地址:

《软件测试技术实战设计、工具及管理》:

https://item.jd.com/34295655089.html

《基于Django的电子商务网站》:

https://item.jd.com/12082665.html

1构造函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import Pipeline
class Better:
def __init__(self,data):
              self.n_jobs = 2
              self.data = data
              self.prams=[{'reg':[LinearRegression()],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__n_jobs":[self.n_jobs]},
                               {'reg':[LogisticRegression()],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__n_jobs":[self.n_jobs]},
                               {'reg':[Ridge()],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__alpha":[1,0.1,0.001,0.0001]},
                               {'reg':[Lasso()],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__alpha":[1,0.1,0.001,0.0001]},
                                {'reg':[ElasticNet()],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__alpha":[0.1,0.5,1,5,10],"reg__l1_ratio":[0.1,0.5,0.9]},
                               {'reg':[RandomForestClassifier()],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__n_estimators":[4,5,6,7],"reg__random_state":[2,3,4,5],"reg__n_jobs":[self.n_jobs],"reg__random_state":[range(0,200)]},
                               {'reg':[RandomForestRegressor()],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__n_estimators":[4,5,6,7],"reg__random_state":[2,3,4,5],"reg__n_jobs":[self.n_jobs],"reg__random_state":[range(0,200)]},
                               {'reg':[DecisionTreeClassifier()],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__max_depth":[1,3,5,7],"reg__random_state":[range(1,200)]},
                               {'reg':[DecisionTreeRegressor()],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__max_depth":[1,3,5,7],"reg__random_state":[range(1,200)]},
                               {'reg':[KNeighborsClassifier()],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__n_jobs":[self.n_jobs]},
                               {'reg':[KNeighborsRegressor()],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__n_jobs":[self.n_jobs]},
                               {'reg':[BernoulliNB()],'scaler':[StandardScaler(),MinMaxScaler(),None]},
                               {'reg':[GaussianNB()],'scaler':[StandardScaler(),MinMaxScaler(),None]},
                               {'reg':[MultinomialNB()],'scaler':[MinMaxScaler()]},
                               {'reg':[SVC(max_iter=10000)],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__kernel":["linear","rbf","sigmoid","poly"],"reg__gamma":[0.01,0.1,1,5,10],"reg__C":[1.0,3.0,5.0]},
                               {'reg':[SVR(max_iter=100000)],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__kernel":["linear","rbf","sigmoid","poly"],"reg__gamma":[0.01,0.1,1,5,10],"reg__C":[1.0,3.0,5.0]},
                               {'reg':[LinearSVC(max_iter=100000)],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__C":[1.0,3.0,5.0]},
                               {'reg':[LinearSVR(max_iter=100000)],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__C":[1.0,3.0,5.0]},
                               {'reg':[AdaBoostClassifier()],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__random_state":[range(1,200)]},
                               {'reg':[AdaBoostRegressor()],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__random_state":[range(1,200)]},
                               {'reg':[VotingClassifier(estimators=[('log_clf',LogisticRegression()),('svm_clf', SVC(probability=True)),('dt_clf',DecisionTreeClassifier(random_state=666))])],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__voting":["hard","soft"],"reg__n_jobs":[self.n_jobs]},
                               {'reg':[LinearDiscriminantAnalysis(n_components=2)],'scaler':[StandardScaler(),MinMaxScaler(),None]},
                               {'reg':[MLPClassifier(max_iter=100000)],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__activation":["relu","tanh","identity","logistic"],"reg__alpha":[0.0001,0.001,0.01,1],"reg__hidden_layer_sizes":[(1),(50,),(100,),(1,1),(50,50),(100,100)]},
                               {'reg':[MLPRegressor(max_iter=100000)],'scaler':[StandardScaler(),MinMaxScaler(),None],"reg__activation":["relu","tanh","identity","logistic"],"reg__alpha":[0.0001,0.001,0.01,1],"reg__hidden_layer_sizes":[(1),(50,),(100,),(1,1),(50,50),(100,100)]}

2 找到最佳模型及参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def Get_Better_Algorithm_and_Parameter(self):
              warnings.filterwarnings("ignore")
if self.data =="iris":
                     random_state= 40
              elif self.data =="wine":
                     random_state= 23
              elif self.data =="breast_cancer":
                     random_state= 41
              elif self.data =="diabetes":
                     random_state= 80
              elif self.data =="boston":
                     random_state= 67
else:
                     random_state= 0
              ML =Machine_Learn()
              X,y =ML.get_data(self.data)
              X_train, X_test,y_train, y_test = train_test_split(X, y,random_state=random_state)
              pipe =Pipeline([('scaler',StandardScaler()),('reg',LinearRegression())])
              shuffle_split =ShuffleSplit(test_size=.2,train_size=.7,n_splits=10)
              grid =GridSearchCV(pipe,self.prams,cv=shuffle_split)
              grid.fit(X_train,y_train)
print("最佳模型是:{}".format(grid.best_params_))
print("模型最佳训练得分:{:.2%}".format(grid.best_score_))
print("模型最佳测试得分:{:.2%}".format(grid.score(X_test,y_test)))

3 调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
better =Better("iris")
better.Get_Better_Algorithm_and_Parameter()

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
最佳模型是:{'reg': MLPClassifier(alpha=1,hidden_layer_sizes=(100, 100), max_iter=100000), 'reg__activation': 'relu','reg__alpha': 1, 'reg__hidden_layer_sizes': (100, 100), 'scaler':MinMaxScaler()}
模型最佳训练得分:78.70%
模型最佳测试得分:84.21%

所有的关于机器分享的文章到这里结束

—————————————————————————————————

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
4 条评论
热度
最新
您好!想再请教一下,得到的基座扰动是姿态角还是欧拉角呢?是相对惯性系的吗?
您好!想再请教一下,得到的基座扰动是姿态角还是欧拉角呢?是相对惯性系的吗?
回复回复点赞举报
您好! 请问漂浮基动力学建模时基座位姿(四元数和载体相对惯性系位移r0)是外部实时输入的吗?
您好! 请问漂浮基动力学建模时基座位姿(四元数和载体相对惯性系位移r0)是外部实时输入的吗?
22点赞举报
不是,是数值积分计算得到
不是,是数值积分计算得到
回复回复点赞举报
哦哦,知道了,谢谢~~
哦哦,知道了,谢谢~~
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
自由漂浮机器人运动学和动力学建模
随着空间技术的不断发展和人类对空间探索的不断深入,空间机器人在完成诸如空间站的建造与维护等任务中发挥着重要的作用。
ZC_Robot机器人技术
2020/10/17
4.1K2
自由漂浮机器人运动学和动力学建模
自由漂浮机器人
漂浮基座机器人存在动力学耦合,机械臂的关节运动将会引起基座位置和姿态的改变。根据基座的控制方式,可以将漂浮基座机器人分为四种模式:
ZC_Robot机器人技术
2020/08/26
4K4
自由漂浮机器人
漂浮基座机器人
根据冗余空间机器人的拓扑形式,建立其运动学方程,进而可以得到各个部分之间的位置关系、速度关系以及加速度关系。基座的运动将会引起机械臂末端的位置和姿态的变化,由于空间机器人在自由漂浮状态系下的动量守恒,任意时刻基座的动量和机械臂的动量可以表示成一阶微分形式,进而,基座的运动关系可以表示为机械臂的各个关节角度的表达式。
ZC_Robot机器人技术
2020/09/11
3.8K0
漂浮基座机器人
基于空间矢量的机器人动力学建模与对比分析
普通的矢量属于3D矢量,即每个3D矢量是由空间的三个标量表示,举例来说,空间的某个位置矢量是由三个XYZ轴的标量值得到,空间的力矢量是力在XYZ轴的标量值合成,力矩也是三个标量合成。而在6D 空间矢量则是分为运动学量以及动力学量,具体为
ZC_Robot机器人技术
2020/09/19
3.2K9
基于空间矢量的机器人动力学建模与对比分析
机器人动力学建模:机械臂动力学
多体系统动力学形成了多种建模和分析的方法, 早期的动力学研究主要包括 Newton-Euler 矢量力学方法和基于 Lagrange 方程的分析力学方法。 这种方法对于解决自由度较少的简单刚体系统, 其方程数目比较少, 计算量也比较小, 比较容易, 但是, 对于复杂的刚体系统, 随着自由度的增加, 方程数目 会急剧增加, 计算量增大。 随着时代的发展, 计算机技术得到了突飞猛进的进步, 虽然可以利用计算机编程求解出动力学方程组, 但是, 对于求解下一时刻的关节角速度需要合适的数值积分方法, 而且需要编写程序, 虽然这种方法可以求解出方程的解, 但是, 由于这种编程方法不具有通用性, 针对每个具体问题, 都需要编程求解, 效率比较低, 因此, 如果能在动力学建模的同时就考虑其计算问题, 并且在建模过程中考虑其建模和求解的通用性, 就能较好的解决此问题。
ZC_Robot机器人技术
2020/10/15
8.7K1
机器人动力学建模:机械臂动力学
Robot:七自由度机械臂动力学建模与控制研究(一)
冗余构型机械臂的动力学与控制存在着其特殊性。七自由机械臂的动力学算法一般计算量大,且其控制中存在“自运动”问题。针对上述问题,本文主要研究内容包括:基于铰接体算法的空间机械臂正向动力学,冗余机械臂位置控制,基于增强混合阻抗控制的空间冗余机械臂力控制研究。
ZC_Robot机器人技术
2021/01/21
5.1K3
Robot:七自由度机械臂动力学建模与控制研究(一)
自由漂浮机器人运动学与动力学建模:space robot工具箱
根据冗余空间机器人的拓扑形式,建立其运动学方程,进而可以得到各个部分之间的位置关系、速度关系以及加速度关系。基座的运动将会引起机械臂末端的位置和姿态的变化,由于空间机器人在自由漂浮状态下的动量守恒,任意时刻基座的动量和机械臂的动量可以表示成一阶微分形式,进而,基座的运动关系可以表示为机械臂的各个关节角度的表达式。
ZC_Robot机器人技术
2020/11/14
5.1K11
自由漂浮机器人运动学与动力学建模:space robot工具箱
机器人运动学和动力学:机器人学究竟有什么不同
说到智能化设备,首先想到的是机器人与数控加工中心。至于二者,均是工业4.0时代的重要加工媒介和工具,是支撑工业智能化时代的重要组成设备。但是二者的具体区别到底在什么地方尼?
ZC_Robot机器人技术
2020/10/10
4K0
机器人运动学和动力学:机器人学究竟有什么不同
【Dynamics】机械臂动力学建模(牛顿-欧拉法)
(1)动力学用于机械臂的仿真,机械臂的动力学有助于进行机械臂完成特定任务比如目标捕获、操作、抓取以及分拣等操作;仿真可以得到机械臂在完成此类任务过程中的动态特性;
ZC_Robot机器人技术
2020/06/25
11.8K0
【Dynamics】机械臂动力学建模(牛顿-欧拉法)
漂浮基座任务优先级运动规划
空间机器的连续路径规划主要涉及到基座姿态、机械臂末端位置或者姿态的规划,在此过程中,位置可以通过三维矢量唯一表示,因此对于机械臂末端位置的规划主要是针对三维向量坐标的规划,而对于姿态的规划,由于姿态表示的方法不唯一,因此会衍生出多种姿态规划方式。但是不管是针对位置以及姿态的规划或者插值,其相应的规划算法具有通用性。
ZC_Robot机器人技术
2021/05/16
2.1K2
漂浮基座任务优先级运动规划
组合体惯量法B:原理—机械臂动力学建模
对于多自由度机械臂, 为了研究机械臂的运动特性, 因此需要建立多自由度机械臂的半实物仿真系统以及全数值仿真系统, 而对其动力学的研究又是其中必不可少的环节之一。考虑到实时系统下, 计算机的运算速度以及数据通讯速度, 用于模拟机械臂运动的正向动力学需满足实时性、 快速性以及稳定性。 为此,有必要研究一种针对多自由度冗余机械臂的实时动力学用于模拟机械臂的实际运动情况。
ZC_Robot机器人技术
2020/09/23
4K2
组合体惯量法B:原理—机械臂动力学建模
基于空间矢量的机器人动力学:铰接体惯量法matlab程序
与运动学建模不同的是,机械臂的刚体动力学建模首先需要建立其连体坐标系,该连体系可以不按D-H原则建立,然后在机械臂连体系下表示机械臂运动学量(位置、速度、加速度),最后根据动力学普遍方程建立多体系统模型。
ZC_Robot机器人技术
2020/09/24
2.5K3
基于空间矢量的机器人动力学:铰接体惯量法matlab程序
机器人运动学和动力学:概念区分
机械臂是典型的多体系统,研究机器人操作能力,机械臂是典型的研究对象之一。关于机械臂的基本理论知识主要涉及到机器人的路径规划、轨迹规划、运动学以及动力学。机器人的相关概念具体如下所示:
ZC_Robot机器人技术
2020/10/04
8K1
机器人运动学和动力学:概念区分
机器人动力学:机械臂正向动力学与逆向动力学
正向动力学:已知机器人的关节驱动力矩和上一时刻的运动状态(角度和角速度),计算得到机器人下一时刻的运动加速度,再积分得到速度和角度;
ZC_Robot机器人技术
2020/10/16
23K1
机器人动力学:机械臂正向动力学与逆向动力学
Robot:七自由度机械臂动力学建模与控制研究(二)
为了有效的进行冗余机械臂位置控制,本文采用基于运动学的构型控制策略,选择臂角为构型控制中的运动学函数,以此参数化其“自运动”。为了检验算法的正确性,本文建立了空间七自由度机械臂的数值仿真系统,仿真结果表明,基于该算法可以有效控制冗余机械臂的运动。
ZC_Robot机器人技术
2021/01/21
4.4K0
Robot:七自由度机械臂动力学建模与控制研究(二)
浅谈机器人关节空间与笛卡尔空间控制
对于机械臂系统最简单的控制策略即在机械臂运动速度不大时,可以忽略其离心力、科氏力影响以及各连杆的耦合,进而将机械臂视为解耦的线性系统,对其控制采用基于 个独立关节的控制,对每个关节施加PD控制。其控制率如下:
ZC_Robot机器人技术
2020/09/24
9.9K2
浅谈机器人关节空间与笛卡尔空间控制
柔性机器人动力学方程
机械臂的动力学在机械臂的控制中具有十分重要的意义,建立机械臂的动力学模型,是描述控制系统的依据,也是设计控制器的前提。机械臂动力学建模的常用方法是拉格朗日法和牛顿-欧拉法。采用牛顿-欧拉法建立机械臂动力学模型时,要计算每个部分加速度,然后消去内作用力,牛顿-欧拉法是解决动力学问题的力平衡方法。但是,当机械臂变得复杂,此方法的计算也将变得复杂。拉格朗日法依据的是能量平衡原理,不需要对内作用力进行求解。对于多自由度复杂度高的机械臂,拉格朗日法比牛顿-欧拉法的求解更适用。
ZC_Robot机器人技术
2021/03/07
4.9K6
柔性机器人动力学方程
Robot-走近机器人动力学建模与仿真
云机器人就是云计算与机器人学的结合。而机器人则是云机器人的主要终端,云可以为机器人提供数据监控以及分析服务,同时也可从远端遥操作机器人的动作。腾讯云社区为大家了解和使用腾讯云服务提供了优秀的平台。而对于机器人部分,下面给出关于机器人关键技术之一的动力学建模与仿真的介绍。
ZC_Robot机器人技术
2020/05/09
14.8K2
Robot-走近机器人动力学建模与仿真
Robot-adams机器人动力学仿真
机器人的动力学仿真软件有很多,在之前的文章中【Robot-走近机器人动力学建模与仿真】也有详细的分类介绍,在众多的机器人仿真软件中,Adams 是科学研究中关于动力学仿真求解最稳定的。这主要是由于adams 具有强大的动力学微分仿真求解器.本文旨在详细介绍adams在机器人研发领域内的应用。
ZC_Robot机器人技术
2020/06/16
8K9
Robot-adams机器人动力学仿真
机器人刚柔耦合动力学建模与应用汇总
柔性机器人轻量节能, 对环境和目 标的变化具有适应性, 但也存在因 为结构刚度较低而导致的结构振动的问题.现有的绝大多数机器人结构设计是结构刚度最大化, 以减小机器人结构的振动而实现精确的运动定位. 但是, 这种最大化刚度结构的机器人用材多、 不经济, 结构笨重不节能, 惯量大而动态性能差, 生产效率低. 况且, 不存在绝对的刚性结构, 一定条件的输入会激励出 一定频率的振动, 即使设计成最大化刚度结构, 机器人在高速重载的工作条件下同 样面临着结构振动的问 题.
ZC_Robot机器人技术
2020/11/17
4.1K0
机器人刚柔耦合动力学建模与应用汇总
推荐阅读
相关推荐
自由漂浮机器人运动学和动力学建模
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验