Python机器学习库scikit-learn的功能和用法是什么
Admin 2022-09-27 群英技术资讯 334 次浏览
先采集数据,再对数据进行标记。其中采集数据要就有代表性,以确保最终训练出来模型的准确性。
选择特征的直观方法:直接使用图片的每个像素点作为一个特征。
数据保存为样本个数×特征个数格式的array对象。scikit-learn使用Numpy的array对象来表示数据,所有的图片数据保存在digits.images里,每个元素都为一个8×8尺寸的灰阶图片。
把采集到的、不合适用来做机器学习训练的数据进行预处理,从而转换为合适机器学习的数据。
目的:减少计算量,确保模型稳定性。
对于不同的数据集,选择不同的模型有不同的效率。因此在选择模型要考虑很多的因素,来提高最终选择模型的契合度。
在进行模型训练之前,要将数据集划分为训练数据集和测试数据集,再利用划分好的数据集进行模型训练,最后得到我们训练出来的模型参数。
模型测试的直观方法:用训练出来的模型预测测试数据集,然后将预测出来的结果与真正的结果进行比较,最后比较出来的结果即为模型的准确度。
scikit-learn提供的完成这项工作的方法:
clf . score ( Xtest , Ytest)
除此之外,还可以直接把测试数据集里的部分图片显示出来,并且在图片的左下角显示预测值,右下角显示真实值。
当我们训练出一个满意的模型后即可将模型保存下来,这样当下次需要预测时,可以直接利用此模型进行预测,不用再一次进行模型训练。
#导入库 %matplotlib inline import matplotlib.pyplot as plt import numpy as np """ sk-learn库中自带了一些数据集 此处使用的就是手写数字识别图片的数据 """ # 导入sklearn库中datasets模块 from sklearn import datasets # 利用datasets模块中的函数load_digits()进行数据加载 digits = datasets.load_digits() # 把数据所代表的图片显示出来 images_and_labels = list(zip(digits.images, digits.target)) plt.figure(figsize=(8, 6)) for index, (image, label) in enumerate(images_and_labels[:8]): plt.subplot(2, 4, index + 1) plt.axis('off') plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest') plt.title('Digit: %i' % label, fontsize=20);
# 将数据保存为 样本个数x特征个数 格式的array对象 的数据格式进行输出 # 数据已经保存在了digits.data文件中 print("shape of raw image data: {0}".format(digits.images.shape)) print("shape of data: {0}".format(digits.data.shape))
# 把数据分成训练数据集和测试数据集(此处将数据集的百分之二十作为测试数据集) from sklearn.model_selection import train_test_split Xtrain, Xtest, Ytrain, Ytest = train_test_split(digits.data, digits.target, test_size=0.20, random_state=2); # 使用支持向量机来训练模型 from sklearn import svm clf = svm.SVC(gamma=0.001, C=100., probability=True) # 使用训练数据集Xtrain和Ytrain来训练模型 clf.fit(Xtrain, Ytrain);
""" sklearn.metrics.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None) normalize:默认值为True,返回正确分类的比例;如果为False,返回正确分类的样本数 """ # 评估模型的准确度(此处默认为true,直接返回正确的比例,也就是模型的准确度) from sklearn.metrics import accuracy_score # predict是训练后返回预测结果,是标签值。 Ypred = clf.predict(Xtest); accuracy_score(Ytest, Ypred)
""" 将测试数据集里的部分图片显示出来 图片的左下角显示预测值,右下角显示真实值 """ # 查看预测的情况 fig, axes = plt.subplots(4, 4, figsize=(8, 8)) fig.subplots_adjust(hspace=0.1, wspace=0.1) for i, ax in enumerate(axes.flat): ax.imshow(Xtest[i].reshape(8, 8), cmap=plt.cm.gray_r, interpolation='nearest') ax.text(0.05, 0.05, str(Ypred[i]), fontsize=32, transform=ax.transAxes, color='green' if Ypred[i] == Ytest[i] else 'red') ax.text(0.8, 0.05, str(Ytest[i]), fontsize=32, transform=ax.transAxes, color='black') ax.set_xticks([]) ax.set_yticks([])
# 保存模型参数 import joblib joblib.dump(clf, 'digits_svm.pkl');
保存模型参数过程中出现如下错误:
原因:sklearn.externals.joblib函数是用在0.21及以前的版本中,在最新的版本,该函数应被弃用。
解决方法:将 from sklearn.externals import joblib改为 import joblib
# 导入模型参数,直接进行预测 clf = joblib.load('digits_svm.pkl') Ypred = clf.predict(Xtest); clf.score(Xtest, Ytest)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
大家好,本篇文章主要讲的是Python处理excel与txt文件详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
今天小编就为大家分享一篇关于Python字符串逆序输出的实例讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
这篇文章主要为大家详细介绍了python实现简单贪吃蛇小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
pytest提供了许多运行命令以供定制化运行某一类测试用例或者某个测试用例等,下面这篇文章主要给大家介绍了关于pytest用例间参数传递的两种实现方式,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
这篇文章主要介绍了Python和JS反爬之解决反爬参数 signKey,Python 反爬中有一大类,叫做字体反爬,核心的理论就是通过字体文件或者 CSS 偏移,接下来文章的详细介绍,需要的小伙伴可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008