• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python机器学习入门(五)算法审查

python 搞代码 4年前 (2022-01-09) 23次浏览 已收录 0个评论
文章目录[隐藏]

程序测试是展现BUG存在的有效方式,但令人绝望的是它不足以展现其缺位。

——艾兹格·迪杰斯特拉(Edsger W. Dijkstra)

算法审查时选择合适的机器学习算法主要方式之一。审查算法前并不知道哪个算法对问题最有效,必须设计一定的实验进行验证,以找到对问题最有效的算法。

审查算法前没有办法判断那个算法对数据集最有效、能够生成最优模型,必须通过一些列的实验进行验证才能够得出结论,从而选择最优的算法。这个过程被称为审查算法。

审查算法时,要尝试多种代表性算法、机器学习算法以及多种模型,通过大量实验才能找到最有效的算法

1.审查分类算法

1.1线性算法审查

1.1.1逻辑回归

逻辑回归其实是一个分类算法而不是回归算法,通常是利用已知的自变量来预测一个离散型因变量的值(如二进制0/1、真/假)。简单来说,它就是通过拟合一个逻辑回归函数(Logistic Function)来预测事件发生的概率。所以它预测的是一个概率值,它的本文来源[email protected]搞@^&代*@码)网9输出值应该为0~1,因此非常适合二分类问题。

from pandas import read_csv
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression#逻辑回归
 
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
 
#逻辑回归
num_folds = 10
seed = 7
kfold = KFold(n_splits=num_folds, random_state=seed, shuffle=True)
model = LogisticRegression(max_iter=3000)
result = cross_val_score(model, X, Y, cv=kfold)
print(result.mean())

执行结果如下:

0.7721633629528366

1.1.2线性判别分析

线性判别分析(Linear DIscriminant Analysis,LDA),也叫做Fisher线性判别(Fisher Linear Discriminant Analysis,FLD)。它的思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有最大类间距离和最小类内距离。因此,他是一种有效的特征抽取方法。(完全不懂它是什么东西。。。)

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
 
#相同代码不再赘述
 
#线性判别分析
model = LinearDiscriminantAnalysis()
result = cross_val_score(model, X, Y, cv=kfold)
print(result.mean())

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python机器学习入门(五)算法审查
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址