tp官网安装|sklearn中文社区
tp官网安装|sklearn中文社区
scikit-learn中文社区
scikit-learn中文社区
安装
用户指南
API
案例
更多
入门
教程
更新日志
词汇表
常见问题
交流群
scikit-learn
Machine Learning in Python
入门
0.23版本的发布要点
GitHub
交流微信群二维码
简单有效的工具进行预测数据分析
每个人都可以访问,并且可以在各种情况下重用
基于NumPy,SciPy和matplotlib构建
开源,可商业使用-BSD许可证
分类
标识对象所属的类别。
应用范围: 垃圾邮件检测,图像识别。
算法:
SVM
最近邻
随机森林
更多...
Examples
回归
预测与对象关联的连续值属性。
应用范围: 药物反应,股票价格。
算法:
SVR
最近邻
随机森林
更多...
Examples
聚类
自动将相似对象归为一组。
应用: 客户细分,分组实验成果。
算法:
K-均值
谱聚类
MeanShift
更多...
Examples
降维
减少要考虑的随机变量的数量。
应用: 可视化,提高效率。
算法:
K-均值
特征选择
非负矩阵分解
更多...
Examples
模型选择
比较,验证和选择参数和模型。
应用: 通过参数调整改进精度。
算法:
网格搜索
交叉验证
指标
更多...
Examples
预处理
特征提取和归一化。
应用程序: 转换输入数据,例如文本,以供机器学习算法使用。
算法:
预处理
特征提取
更多...
Examples
新闻
正在开发中的版本:
更新日志 (Changelog)
2020年8月. scikit-learn 0.23.2 可供下载 (更新日志).
2020年5月. scikit-learn 0.23.1 可供下载 (更新日志).
2020年5月. scikit-learn 0.23.0 可供下载 (更新日志).
Scikit-learn from 0.23 要求 Python 3.6 或更高版本.
2020年3月. scikit-learn 0.22.2 可供下载 (更新日志).
2020年1月. scikit-learn 0.22.1 可供下载 (更新日志).
2019年12月. scikit-learn 0.22 可供下载 (更新日志 and 发布亮点).
Scikit-learn from 0.21 要求 Python 3.5 或更高版本.
2019年7月. scikit-learn 0.21.3 (Changelog) and 0.20.4 (更新日志) 可供下载.
2019年5月. scikit-learn 0.21.0 to 0.21.2 可供下载 (更新日志).
关于
关于我们: CDA数据科学研究院
赞助支持: CDA考试认证中心
客服电话: +86 4000-51-9191
邮箱: service@cda.cn
关注我们
"Scikit-learn 中文文档由CDA数据科学研究院翻译,扫码关注获取更多信息。"
Copyright © 2015-2020, CDA数据科学研究院 版权所有 京ICP备11001960号-13
1.13 特征选择-scikit-learn中文社区
1.13 特征选择-scikit-learn中文社区
安装
用户指南
API
案例
更多
入门
教程
更新日志
词汇表
常见问题
交流群
Toggle Menu
Prev
Up
Next
CDA数据科学研究院 提供翻译支持
1.13 特征选择
1.13.1 移除低方差特征
1.13.2 单变量特征选择
1.13.3 递归特征消除
1.13.4 基于SelectFromModel的特征选择
1.13.5 特征选择作为pipeline一部分
1.13 特征选择¶
sklearn.feature_selection中的类可以用于样本集的特征选择/降维,既可以提高估计器的精度得分,也可以提高它们在非常高维数据集上的性能。
1.13.1 移除低方差特征
方差阈值VarianceThreshold 是特征选择的一种简单的基本方法。它删除了所有方差不满足某些阈值的特征。默认情况下,它删除所有零方差特征,即在所有样本中具有相同值的特征。
例如,假设我们有一个具有布尔特征的数据集,并且我们想要移除那些在整个数据集中特征值为0或者为1的比例超过80%的特征。布尔特征是伯努利(Bernoulli)随机变量,并给出了这些变量的方差:
因此,我们可以使用阈值.8 * ( 1 - .8)进行选择:
>>> from sklearn.feature_selection import VarianceThreshold>>> X = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]]>>> sel = VarianceThreshold(threshold=(.8 * (1 - .8)))>>> sel.fit_transform(X)array([[0, 1], [1, 0], [0, 0], [1, 1], [1, 0], [1, 1]])
正如预期的那样,VarianceThreshold删除了第一列,该列包含一个0的概率是 。
1.13.2 单变量特征选择
单变量特征选择是通过基于单变量统计检验来选择最优特征实现的。它可以看作是对估计器的预处理步骤。Scikit-learn将特征选择的程序作为实现了transform方法的对象:
SelectKBest 移除那些除了评分最高的 K 个特征之外的所有特征SelectPercentile 移除除了用户指定的最高得分百分比之外的所有特征对每个特征使用通用的单变量统计检验:假正率 SelectFpr, 伪发现率SelectFdr, 或者族系误差SelectFwe。GenericUnivariateSelect允许使用可配置策略执行单变量特征选择。它允许使用超参数搜索估计器来选择最佳的单变量选择策略。
例如,我们可以对样本执行检验,只检索两个最好的特征,如下所示:
>>> from sklearn.datasets import load_iris>>> from sklearn.feature_selection import SelectKBest>>> from sklearn.feature_selection import chi2>>> X, y = load_iris(return_X_y=True)>>> X.shape(150, 4)>>> X_new = SelectKBest(chi2, k=2).fit_transform(X, y)>>> X_new.shape(150, 2)
这些对象以一个得分函数作为输入,该函数返回单变量分数和p值(或仅用于 SelectKBest 和SelectPercentile):
对于回归: f_regression, mutual_info_regression对于分类: chi2, f_classif, mutual_info_classif
基于F检验的方法估计了两个随机变量之间的线性依赖程度。另一方面,互换信息方法(mutual information methods )可以捕获任何类型的统计相关性,但由于非参数性,它们需要更多的样本来精确估计。
稀疏数据的特征选择
如果您使用稀疏数据(即数据被表示为稀疏矩阵),则 chi2, mutual_info_regression, mutual_info_classif 将处理这些数据,而不会使其稠密。
警告:不要使用一个回归评分函数来处理分类问题,你会得到无用的结果。
示例
单变量特征选择F检验与互信息比较
1.13.3 递归特征消除
给定一个外部的估计器,可以对特征赋予一定的权重(比如,线性模型的相关系数),递归特征消除(RFE)通过考虑越来越小的特征集来递归的选择特征。 首先,估计器在初始的特征集合上训练并且通过 coef_属性或者feature_importances_获取每一个特征的重要性。 然后,从当前的特征集合中移除最不重要的特征。在特征集合上不断的重复递归这个步骤,直到最终达到所需要的特征数量为止。
RFECV在一个交叉验证的循环中执行 RFE 来找到最优的特征数量。
示例
递归特征消除: 数字分类任务中像素相关性的递归特征消除实例.带交叉验证的递归特征消除:一个自动调整交叉验证特征数的递归特征消除示例.
1.13.4 基于SelectFromModel的特征选择
SelectFromModel是一个元转换器(meta-transformer),它可以与任何具有 coef_属性或feature_importances_属性的估值器一起使用。如果相应的coef_或 feature_importances_低于所提供的阈值参数,则这些特征被视为不重要并被删除。除了指定在数值上的阈值外,还可以通过给定字符串参数来使用内置的启发式方法找到一个合适的阈值。可用的启发式方法是“mean”, “median” 和浮点倍数,如 “0.1*mean”。结合阈值标准,可以使用max_features参数来设置要选择的特征数量的限制。
关于如何使用它的例子,请参阅下面的章节。
示例
使用SelectFromModel和LassoCV进行特征选择: 从 Boston 数据中自动选择最重要两个特征而不需要提前得知这一信息。
1.13.4.1 基于L1的特征选择
用L1范数惩罚的线性模型具有稀疏解:它们的许多估计系数为零。当目标是降低数据的维数以便与另一个分类器一起使用时,它们可以与feature_selection.SelectFromModel一起使用来选择非零系数。具体而言,可用于此目的的稀疏估计器对回归而言是linear_model.Lasso, 以及用于分类的linear_model.LogisticRegression 和svm.LinearSVC。
>>> from sklearn.svm import LinearSVC>>> from sklearn.datasets import load_iris>>> from sklearn.feature_selection import SelectFromModel>>> X, y = load_iris(return_X_y=True)>>> X.shape(150, 4)>>> lsvc = LinearSVC(C=0.01, penalty="l1", dual=False).fit(X, y)>>> model = SelectFromModel(lsvc, prefit=True)>>> X_new = model.transform(X)>>> X_new.shape(150, 3)
利用SVM和Logistic回归,参数C控制稀疏性:C越小,选择的特征越少。对于Lasso,alpha参数越高,所选择的特征就越少。
示例
基于稀疏特征的文本文档分类: 基于L1特征选择的文档分类算法比较.
L1-recovery和压缩感知
当选择了正确的 alpha 值以后, Lasso 可以仅通过少量观察点便恢复完整的非零特征, 假设特定的条件可以被满足的话。特别的,数据量需要 “足够大” ,不然 L1 模型的表现将随机。 “足够大” 的定义取决于非零系数的个数、特征数量的对数值、噪音的数量、非零系数的最小绝对值、 以及设计矩阵(design maxtrix) X 的结构。此外, 特征矩阵必须表现出特定的性质,如数据不能太相关。
对于非零系数的恢复, 如何选择 alpha 值没有通用的规则。alpha 值可以通过交叉验证来确定( LassoCV 或者 LassoLarsCV ),尽管这可能会导致欠惩罚(under-penalized)的模型:包括少量的无关变量对于预测值来说并非致命的。相反的, BIC( LassoLarsIC )倾向于给定高的 alpha 值。
参考文献 Richard G. Baraniuk “Compressive Sensing”, IEEE Signal Processing Magazine [120] July 2007 http://dsp.rice.edu/sites/dsp.rice.edu/files/cs/baraniukCSlecture07.pdf
1.13.4.2 基于树的特征选择
基于树的估计器(参看 sklearn.tree 模块和在 sklearn.ensemble 模块中的树的森林) 可以用来计算基于不存度的特征重要性,然后可以消除不相关的特征(当与 sklearn.feature_selection.SelectFromModel 等元转换器一同使用时):
>>> from sklearn.ensemble import ExtraTreesClassifier>>> from sklearn.datasets import load_iris>>> from sklearn.feature_selection import SelectFromModel>>> X, y = load_iris(return_X_y=True)>>> X.shape(150, 4)>>> clf = ExtraTreesClassifier(n_estimators=50)>>> clf = clf.fit(X, y)>>> clf.feature_importances_ array([ 0.04..., 0.05..., 0.4..., 0.4...])>>> model = SelectFromModel(clf, prefit=True)>>> X_new = model.transform(X)>>> X_new.shape (150, 2)
示例
树森林的特征重要性: 在合成数据上恢复有用特征的示例。基于平行树的森林的像素重要性: 在人脸识别数据上的示例。
1.13.5 特征选择作为pipeline一部分
特征选择通常在实际的学习之前用来做预处理。在 scikit-learn 中推荐的方式是使用 :sklearn.pipeline.Pipeline:
clf = Pipeline([ ('feature_selection', SelectFromModel(LinearSVC(penalty="l1"))), ('classification', RandomForestClassifier())])clf.fit(X, y)
在这段代码中,我们利用 sklearn.svm.LinearSVC 和 sklearn.feature_selection.SelectFromModel 来评估特征的重要性并且选择出最相关的特征。 然后,在转化后的输出中使用一个 sklearn.ensemble.RandomForestClassifier 分类器,比如只使用相关的特征。你也可以使用其他特征选择的方法和可以提供评估特征重要性的分类器来执行相似的操作。 请查阅 sklearn.pipeline.Pipeline 来了解更多的实例。
© 2007 - 2020, scikit-learn developers (BSD License).
sklearn
sklearn
sklearn
sklearn 中文文档
目录
作者
整理
校招巴士
安装 scikit-learn
1. 监督学习
1.0 监督学习
1.1. 广义线性模型
1.2. 线性和二次判别分析
1.3. 内核岭回归
1.4. 支持向量机
1.5. 随机梯度下降
1.6. 最近邻
1.7. 高斯过程
1.8. 交叉分解
1.9. 朴素贝叶斯
1.10. 决策树
1.11. 集成方法
1.12. 多类和多标签算法
1.13. 特征选择
1.14. 半监督学习
1.15. 等式回归
1.16. 概率校准
1.17. 神经网络模型(有监督)
2. 无监督学习
2.0 无监督学习
2.1. 高斯混合模型
2.2. 流形学习
2.3. 聚类
2.4. 双聚类
2.5. 分解成分中的信号(矩阵分解问题)
2.6. 协方差估计
2.7. 新奇和异常值检测
2.8. 密度估计
2.9. 神经网络模型(无监督)
3. 模型选择和评估
3.0 模型选择和评估
3.1. 交叉验证:评估估算器的表现
3.2. 调整估计器的超参数
3.3. 模型评估: 量化预测的质量
3.4. 模型持久化
3.5. 验证曲线: 绘制分数以评估模型
4. 检验
4.0 检验
4.1. 部分依赖图
5. 数据集转换
5.0 数据集转换
5.1. Pipeline(管道)和 FeatureUnion(特征联合): 合并的评估器
5.2. 特征提取
5.3 预处理数据
5.4 缺失值插补
5.5. 无监督降维
5.6. 随机投影
5.7. 内核近似
5.8. 成对的矩阵, 类别和核函数
5.9. 预测目标
6. 数据集加载工具
6.0 数据集加载工具
6.1. 通用数据集 API
6.2. 玩具数据集
6.3 真实世界中的数据集
6.4. 样本生成器
6.5. 加载其他数据集
7. 使用scikit-learn计算
7.0 使用scikit-learn计算
7.1. 大规模计算的策略: 更大量的数据
7.2. 计算性能
7.3. 并行性、资源管理和配置
教程
使用 scikit-learn 介绍机器学习
关于科学数据处理的统计学习教程
关于科学数据处理的统计学习教程
机器学习: scikit-learn 中的设置以及预估对象
监督学习:从高维观察预测输出变量
模型选择:选择估计量及其参数
无监督学习: 寻求数据表示
把它们放在一起
寻求帮助
处理文本数据
选择正确的评估器(estimator.md
外部资源,视频和谈话
API 参考
常见问题
时光轴
sklearn
Docs »
sklearn 中文文档
sklearn 简介
scikit-learn 是基于 Python 语言的机器学习工具
简单高效的数据挖掘和数据分析工具
可供大家在各种环境中重复使用
建立在 NumPy ,SciPy 和 matplotlib 上
开源,可商业使用 - BSD许可证
点击下载OpenCV最新中文官方文档pdf版
目录
安装 scikit-learn
用户指南
1. 监督学习
1.1. 广义线性模型
1.2. 线性和二次判别分析
1.3. 内核岭回归
1.4. 支持向量机
1.5. 随机梯度下降
1.6. 最近邻
1.7. 高斯过程
1.8. 交叉分解
1.9. 朴素贝叶斯
1.10. 决策树
1.11. 集成方法
1.12. 多类和多标签算法
1.13. 特征选择
1.14. 半监督学习
1.15. 等式回归
1.16. 概率校准
1.17. 神经网络模型(有监督)
2. 无监督学习
2.1. 高斯混合模型
2.2. 流形学习
2.3. 聚类
2.4. 双聚类
2.5. 分解成分中的信号(矩阵分解问题)
2.6. 协方差估计
2.7. 新奇和异常值检测
2.8. 密度估计
2.9. 神经网络模型(无监督)
3. 模型选择和评估
3.1. 交叉验证:评估估算器的表现
3.2. 调整估计器的超参数
3.3. 模型评估: 量化预测的质量
3.4. 模型持久化
3.5. 验证曲线: 绘制分数以评估模型
4. 检验
4.1. 部分依赖图
5. 数据集转换
5.1. Pipeline(管道)和 FeatureUnion(特征联合): 合并的评估器
5.2. 特征提取
5.3 预处理数据
5.4 缺失值插补
5.5. 无监督降维
5.6. 随机投影
5.7. 内核近似
5.8. 成对的矩阵, 类别和核函数
5.9. 预测目标 (y) 的转换
6. 数据集加载工具
6.1. 通用数据集 API
6.2. 玩具数据集
6.3 真实世界中的数据集
6.4. 样本生成器
6.5. 加载其他数据集
7. 使用scikit-learn计算
7.1. 大规模计算的策略: 更大量的数据
7.2. 计算性能
7.3. 并行性、资源管理和配置
教程
使用 scikit-learn 介绍机器学习
关于科学数据处理的统计学习教程
机器学习: scikit-learn 中的设置以及预估对象
监督学习:从高维观察预测输出变量
模型选择:选择估计量及其参数
无监督学习: 寻求数据表示
把它们放在一起
寻求帮助
处理文本数据
选择正确的评估器(estimator/)
外部资源,视频和谈话
API 参考
常见问题
时光轴
作者
sklearn-doc-zh:https://github.com/apachecn/sklearn-doc-zh
整理
http://scikitlearn.com.cn/
校招巴士
校招巴士
校招巴士网站一个专注于大学生校招求职的平台!旨在分享互联网大厂内推、校招资讯、面经笔经、职场干货、简历技巧等,助力百万大学生校招求职!
Next
sklearn PythonOK 协议:CC BY-NC-SA 4.0
Built with MkDocs using a theme provided by Read the Docs.
Next »
now loading...
scikit-learn (sklearn) 官方文档中文版 - sklearn
scikit-learn (sklearn) 官方文档中文版 - sklearn
sklearn
sklearn 中文文档
安装 scikit-learn
1. 监督学习
1.0 监督学习
1.1. 广义线性模型
1.2. 线性和二次判别分析
1.3. 内核岭回归
1.4. 支持向量机
1.5. 随机梯度下降
1.6. 最近邻
1.7. 高斯过程
1.8. 交叉分解
1.9. 朴素贝叶斯
1.10. 决策树
1.11. 集成方法
1.12. 多类和多标签算法
1.13. 特征选择
1.14. 半监督学习
1.15. 等式回归
1.16. 概率校准
1.17. 神经网络模型(有监督)
2. 无监督学习
2.0 无监督学习
2.1. 高斯混合模型
2.2. 流形学习
2.3. 聚类
2.4. 双聚类
2.5. 分解成分中的信号(矩阵分解问题)
2.6. 协方差估计
2.7. 新奇和异常值检测
2.8. 密度估计
2.9. 神经网络模型(无监督)
3. 模型选择和评估
3.0 模型选择和评估
3.1. 交叉验证:评估估算器的表现
3.2. 调整估计器的超参数
3.3. 模型评估: 量化预测的质量
3.4. 模型持久化
3.5. 验证曲线: 绘制分数以评估模型
4. 检验
4.0 检验
4.1. 部分依赖图
5. 数据集转换
5.0 数据集转换
5.1. Pipeline(管道)和 FeatureUnion(特征联合): 合并的评估器
5.2. 特征提取
5.3 预处理数据
5.4 缺失值插补
5.5. 无监督降维
5.6. 随机投影
5.7. 内核近似
5.8. 成对的矩阵, 类别和核函数
5.9. 预测目标
6. 数据集加载工具
6.0 数据集加载工具
6.1. 通用数据集 API
6.2. 玩具数据集
6.3 真实世界中的数据集
6.4. 样本生成器
6.5. 加载其他数据集
7. 使用scikit-learn计算
7.0 使用scikit-learn计算
7.1. 大规模计算的策略: 更大量的数据
7.2. 计算性能
7.3. 并行性、资源管理和配置
教程
使用 scikit-learn 介绍机器学习
关于科学数据处理的统计学习教程
关于科学数据处理的统计学习教程
机器学习: scikit-learn 中的设置以及预估对象
监督学习:从高维观察预测输出变量
模型选择:选择估计量及其参数
无监督学习: 寻求数据表示
把它们放在一起
寻求帮助
处理文本数据
选择正确的评估器(estimator.md
外部资源,视频和谈话
API 参考
常见问题
时光轴
sklearn
Docs »
scikit-learn (sklearn) 官方文档中文版
scikit-learn (sklearn) 官方文档中文版
scikit-learn 是基于 Python 语言的机器学习工具
简单高效的数据挖掘和数据分析工具
可供大家在各种环境中重复使用
建立在 NumPy ,SciPy 和 matplotlib 上
开源,可商业使用 - BSD许可证
维护地址
Github
在线阅读
EPUB 格式
目录
安装 scikit-learn
用户指南
1. 监督学习
1.1. 广义线性模型
1.2. 线性和二次判别分析
1.3. 内核岭回归
1.4. 支持向量机
1.5. 随机梯度下降
1.6. 最近邻
1.7. 高斯过程
1.8. 交叉分解
1.9. 朴素贝叶斯
1.10. 决策树
1.11. 集成方法
1.12. 多类和多标签算法
1.13. 特征选择
1.14. 半监督学习
1.15. 等式回归
1.16. 概率校准
1.17. 神经网络模型(有监督)
2. 无监督学习
2.1. 高斯混合模型
2.2. 流形学习
2.3. 聚类
2.4. 双聚类
2.5. 分解成分中的信号(矩阵分解问题)
2.6. 协方差估计
2.7. 新奇和异常值检测
2.8. 密度估计
2.9. 神经网络模型(无监督)
3. 模型选择和评估
3.1. 交叉验证:评估估算器的表现
3.2. 调整估计器的超参数
3.3. 模型评估: 量化预测的质量
3.4. 模型持久化
3.5. 验证曲线: 绘制分数以评估模型
4. 检验
4.1. 部分依赖图
5. 数据集转换
5.1. Pipeline(管道)和 FeatureUnion(特征联合): 合并的评估器
5.2. 特征提取
5.3 预处理数据
5.4 缺失值插补
5.5. 无监督降维
5.6. 随机投影
5.7. 内核近似
5.8. 成对的矩阵, 类别和核函数
5.9. 预测目标 (y) 的转换
6. 数据集加载工具
6.1. 通用数据集 API
6.2. 玩具数据集
6.3 真实世界中的数据集
6.4. 样本生成器
6.5. 加载其他数据集
7. 使用scikit-learn计算
7.1. 大规模计算的策略: 更大量的数据
7.2. 计算性能
7.3. 并行性、资源管理和配置
教程
使用 scikit-learn 介绍机器学习
关于科学数据处理的统计学习教程
机器学习: scikit-learn 中的设置以及预估对象
监督学习:从高维观察预测输出变量
模型选择:选择估计量及其参数
无监督学习: 寻求数据表示
把它们放在一起
寻求帮助
处理文本数据
选择正确的评估器(estimator.md)
外部资源,视频和谈话
API 参考
常见问题
时光轴
贡献指南
项目当前处于校对阶段,请查看贡献指南,并在整体进度中领取任务。
请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并不要求您做到十全十美,因此请不要担心因为翻译上犯错——在大部分情况下,我们的服务器已经记录所有的翻译,因此您不必担心会因为您的失误遭到无法挽回的破坏。(改编自维基百科)
项目负责人
格式: GitHub + QQ
@mahaoyang:992635910
@loopyme:3322728009
飞龙:562826179
片刻:529815144
-- 负责人要求: (欢迎一起为 sklearn 中文版本 做贡献)
热爱开源,喜欢装逼
长期使用 sklearn(至少0.5年) + 提交Pull Requests>=3
能够有时间及时优化页面 bug 和用户 issues
试用期: 2个月
欢迎联系: 片刻 529815144
项目协议
以各项目协议为准。
ApacheCN 账号下没有协议的项目,一律视为 CC BY-NC-SA 4.0。
建议反馈
在我们的 apachecn/pytorch-doc-zh github 上提 issue.
发邮件到 Email: apachecn@163.com.
在我们的 QQ群-搜索: 交流方式 中联系群主/管理员即可.
赞助我们
sklearn PythonOK 协议:CC BY-NC-SA 4.0
Built with MkDocs using a theme provided by Read the Docs.
Scikit-learn官网
Scikit-learn官网
访问Scikit-learn官网
Scikit-learn(以前称为scikits.learn,也称为sklearn)是针对Python 编程语言的免费软件机器学习库。它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度提升,k均值和DBSCAN,并且旨在与Python数值科学库NumPy和SciPy联合使用。>> Scikit-learn注册地址 <<
首页
注册教程
使用教程
市场应用
产品价格
联系方式
1 / 3
2 / 3
3 / 3
❮ ❯
上线时间
2023年
总部地址
OpenAI
所属公司
OpenAI
产品内容
对话聊天
免费版本
支持
产品价格
每月12美元
支付方式
信用卡
API
支持
官网地址
https://scikit-learn.org
Scikit-learn简介
Scikit-learn项目始于scikits.learn,这是David Cournapeau的Google Summer of Code项目。它的名称源于它是" SciKit"(SciPy工具包)的概念,它是SciPy的独立开发和分布式第三方扩展。原始代码库后来被其他开发人员重写。2010年费边Pedregosa,盖尔Varoquaux,亚历山大Gramfort和Vincent米歇尔,全部由法国国家信息与自动化研究所的罗屈昂库尔,法国,把该项目的领导和做出的首次公开发行在二月一日2010在各种scikits中,scikit-learn以及scikit-image在2012年11月被描述为"维护良好且受欢迎" 。Scikit-learn是GitHub上最受欢迎的机器学习库之一。
实施
Scikit-learn主要是用Python编写的,并且广泛使用numpy进行高性能的线性代数和数组运算。此外,用Cython编写了一些核心算法来提高性能。支持向量机由围绕LIBSVM的Cython包装器实现 ; 逻辑回归和线性支持向量机的相似包装围绕LIBLINEAR。在这种情况下,可能无法使用Python扩展这些方法。
Scikit-learn与许多其他Python库很好地集成在一起,例如matplotlib和plotly用于绘图,numpy用于数组矢量化,pandas数据帧,scipy等。
中文社区
Scikit-learn中文社区,由CDA全国教研团队承接,通过一年多的Scikit-learn文档的翻译和认真校对,从用户指南到API 、再到案例,翻译字数达一百余万字,相较与网络上流传的其他机器翻译的Scikit-learn中文资料,CDA Scikit-learn中文社区的翻译是最新的官方版本,并且内容更加全面,格式更加规范,翻译更加专业精准,努力为机器学习爱好者提供更便捷的学习途径。
版本历史
Scikit-learn最初由David Cournapeau 于2007年在Google的夏季代码项目中开发。后来Matthieu Brucher加入该项目,并开始将其用作论文工作的一部分。2010年,法国计算机科学与自动化研究所INRIA参与其中,并于2010年1月下旬发布了第一个公开版本(v0.1 beta)。
2022年12月 - scikit-learn1.2.0
2022年5月 - scikit-learn1.1.0
2021年9月 - scikit-learn1.0
2020年12月 - scikit-learn0.24.0
2020年5月 - scikit-learn0.23.0
2019年12月 - scikit-learn 0.22.0
2019年5月 - scikit-learn 0.21.0
2018年9月 - scikit-learn 0.20.0
2017年7月 - scikit-learn 0.19.0
2016年9月 - scikit-learn 0.18.0
2015年11月 - scikit-learn 0.17.0
2015年3月 - scikit-learn0.16.0
2014年7月 - scikit-learn 0.15.0
2013年8月 - scikit-learn 0.14
Copyright @ 2023 www.scikit-china.com All Rights Reserved.
scikit-learn (sklearn) 官方文档中文版 - 知乎
scikit-learn (sklearn) 官方文档中文版 - 知乎切换模式写文章登录/注册scikit-learn (sklearn) 官方文档中文版AI算法与图像处理作者:AI算法与图像处理欢迎置顶或星标公众号本人最近在做图像的特征聚类,搞了一段时间,从理论到实践,踩了不少坑,然后我发现了这个好东西(scikit-learn),和大家分享一下,希望能够帮大家提高效率。什么是scikit-learnscikit-learn 是基于 Python 语言的机器学习工具。简单高效的数据挖掘和数据分析工具可供大家在各种环境中重复使用建立在 NumPy ,SciPy 和 matplotlib 上开源,可商业使用 - BSD许可证scikit-learn都有什么功能Scikit-learn的基本功能主要被分为六大部分:分类,回归,聚类,数据降维,模型选择和数据预处理。scikit-learn哪里可以获取http://sklearn.apachecn.org/#/https://scikit-learn.org/stable/上面是中文的,下面是英文的可以根据自己的喜好来选择,但是中文版的代码我不知道为啥我自己打不开但英文的链接里面的都会附有代码的实例当然皇天不负有心人,我也找到目前这个翻译团队正在更新的中文文档以及相应打代码链接,收藏起来没错的https://github.com/apachecn/scikit-learn-doc-zh看个例子吧——对数据进行聚类只需输入数据,定义簇数n_cluster,后面random_state都可以设置为默认的便能够实现聚类,开发的效率非常的高。还有详细的算法讲解和比较http://weixin.qq.com/r/Wy7t9WPEzD6zrSeW93tJ (二维码自动识别)发布于 2018-12-19 00:09人工智能文档sklearn深度学习(Deep Learning)赞同 988 条评论分享喜欢收藏申请
GitHub - Apache-CN/scikit-learn-doc-zh: scikit-learn(sklearn) 官方文档中文版
GitHub - Apache-CN/scikit-learn-doc-zh: scikit-learn(sklearn) 官方文档中文版
Skip to content
Toggle navigation
Sign in
Product
Actions
Automate any workflow
Packages
Host and manage packages
Security
Find and fix vulnerabilities
Codespaces
Instant dev environments
Copilot
Write better code with AI
Code review
Manage code changes
Issues
Plan and track work
Discussions
Collaborate outside of code
Explore
All features
Documentation
GitHub Skills
Blog
Solutions
For
Enterprise
Teams
Startups
Education
By Solution
CI/CD & Automation
DevOps
DevSecOps
Resources
Learning Pathways
White papers, Ebooks, Webinars
Customer Stories
Partners
Open Source
GitHub Sponsors
Fund open source developers
The ReadME Project
GitHub community articles
Repositories
Topics
Trending
Collections
Pricing
Search or jump to...
Search code, repositories, users, issues, pull requests...
Search
Clear
Search syntax tips
Provide feedback
We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
Sign up
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
Apache-CN
/
scikit-learn-doc-zh
Public
forked from apachecn/sklearn-doc-zh
Notifications
Fork
0
Star
0
scikit-learn(sklearn) 官方文档中文版
sklearn.apachecn.org
License
GPL-3.0 license
0
stars
1.5k
forks
Branches
Tags
Activity
Star
Notifications
Code
Pull requests
0
Actions
Projects
0
Security
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security
Insights
Apache-CN/scikit-learn-doc-zh
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
0.19.XBranchesTagsGo to fileCode Folders and filesNameNameLast commit messageLast commit dateLatest commit History762 Commitsdocdoc examplesexamples flowchartflowchart helphelp LICENSELICENSE README.mdREADME.md View all filesRepository files navigationREADMEGPL-3.0 licensescikit-learn(sklearn) 官方文档中文版
scikit-learn 是基于 Python 语言的机器学习工具。
简单高效的数据挖掘和数据分析工具
可供大家在各种环境中重复使用
建立在 NumPy ,SciPy 和 matplotlib 上
开源,可商业使用 - BSD许可证
官网地址: scikit-learn(sklearn): http://scikit-learn.org
中文文档: ApacheCN - scikit-learn(sklearn): http://sklearn.apachecn.org
维护地址
github: https://github.com/apachecn/scikit-learn-doc-zh/
ApacheCN: http://sklearn.apachecn.org/
正在翻译
scikit-learn(sklearn) 0.19
历史版本
scikit-learn(sklearn) 0.18 官方文档中文版: http://cwiki.apachecn.org/pages/viewpage.action?pageId=10030181
参与翻译 & 发现错误
1. 在 github 上 fork 该 repository.
2. 翻译 doc/zh/modules 和 doc/zh/tutorial 下面的 rst 文件即可, 例如, tutorial.rst.
3. 然后, 在你的 github 发起 New pull request 请求.
4. 工具使用, 可参考下面的内容.
工具使用(针对新手)
工欲善其事, 必先利其器 ...
工具随意, 能达到效果就好.
我这里使用的是 VSCode 编辑器.
简易的使用指南请参阅: VSCode Windows 平台入门使用指南, 介绍了 VSCode 与 github 一起搭配的简易使用的方法.
如果要将 VSCode 的 Markdown 预览风格切换为 github 的风格,请参阅: VSCode 修改 markdown 的预览风格为 github 的风格.
注意注意注意:
为了尽量正规化各顶级项目的翻译,更便于以后的迭代更新,我们在 scikit-learn 文档翻译中使用了 Git 的分支,具体应用方法请参阅: 使用 Git 分支进行迭代翻译.
角色分配
目前有如下可分配的角色:
翻译: 负责文章内容的翻译.
校验: 负责文章内容的校验, 比如格式, 正确度之类的.
负责人: 负责整个 Projcet, 不至于让该 Project 成为垃圾项目, 需要在 sklearn 方面经验稍微丰富点.
有兴趣参与的朋友, 可以看看最后的联系方式.
负责人
@chenyyx(Joy yx)
贡献者
贡献者可自行编辑如下内容(排名不分先后).
0.19.0
翻译者(人人皆大佬~):
@wangyangting(那伊抹微笑)
@jiangzhonglian(片刻)
@chenyyx(Joy yx)
@survivingME(Trembleguy)
@mtobeiyf(Fing)
@Leon-Jin(Leon晋)
@X1aoFang(X1aoFang)
@loverollcat(loverollcat)
@helloheshee(helloheshee)
@SkyDreamStart(SkyDreamStart)
@HazekiahWon(Hazekiah Wang)
@201419(tree)
@busesese(wenyi)
@chrzc(changzhicheng)
@Zoctan(Zoctan)
@JanzenLiu(Janzen_Liu)
@charleschou520(charleschou520)
@zhangqiking(BigBird)
@mikechengwei(Mike)
@wodekwan(wodekwan)
@sehriff(sehriff)
@Kdotm(kngines)
@patientman(YuanMingLiu)
@DamonDay(DamonDay)
@cszhangbo(cszhangbo)
@XingxGit(XingxGit)
@KrokYin(KrokYin)
@yw10(Andrew Yao)
@GlassyWu(glassy)
@PrivateRookie(PrivateRookie)
@linweijiang(linweijiang)
@jiaqiangbandongg(jiaqiangbandongg)
@supportingvector(supportingvector)
@stealthsMrs(stealthsMrs)
@lhwlhw90(lhwlhw90)
@sheepmen(羊三)
@guohao916(guohao_dm)
@Daemon-ser(csu_hgq)
@wangxiancai(BWM-蜜蜂)
@夜神月(夜神月)
@liyangbit(Lemon)
@XuJianzhi(XuJianzhi)
校验者(人人皆大佬~)(现在还不齐全,贡献者大佬们可随意修改)
@FontTian(FontTian)
@XuJianzhi(XuJianzhi)
@caopeirui(Veyron C)
@HelloSilicat(Jialiang Pei)
@AnybodyHome(loop)
@pan8664716(pan8664716)
@xrj(xrj)
@qvduoduo1997(qvduoduo1997)
@marsjhao(Zhang Junhao)
@tiantian1412(tiantian1412)
@sheepmen(羊三)
@wangyangting(那伊抹微笑)
@jiangzhonglian(片刻)
@chenyyx(Joy yx)
@mikechengwei(Mike)
@wangxiancai(BWM-蜜蜂)
@busesese(wenyi)
@GlassyWu(glassy)
@wodekwan(wodekwan)
@gbyy422990(Bin GAO)
@charleschou520(charleschou520)
@DataMonk2017(Jeremy Zheng)
@Lixu518(Mysry)
@linxiamen(YUNCHUAN LIN)
@llcing(Mayouji)
@KyrieHee(HeYun)
@ziepenn(ziepenn)
@FAN0521(FAN0521)
@Daemon-ser(csu_hgq)
@shaoyy147(Y.Shao)
@Kdotm(kngines)
@chrzc(changzhicheng)
@ywujudy(ywujudy)
@污剑客(污剑客)
@爱吹牛逼的小明(爱吹牛逼的小明)
@JanzenLiu(Janzen_Liu)
@Ecauchy(Ecauchy)
0.18
请参阅: http://cwiki.apachecn.org/pages/viewpage.action?pageId=10030181
联系方式
有任何建议反馈, 或想参与文档翻译, 麻烦联系下面的企鹅:
企鹅: 1042658081(那伊抹微笑), 190442212(小瑶), 529815144(片刻)
其它中文文档
TensorFlow R1.2 中文文档
sklearn 0.18 中文文档
Spark 2.2.0 中文文档
Spark 2.0.2 中文文档
Kudu 1.4.0 中文文档
Zeppelin 0.7.2 中文文档
Elasticsearch 5.4 中文文档
Kibana 5.2 中文文档
Storm 1.1.0 中文文档
About
scikit-learn(sklearn) 官方文档中文版
sklearn.apachecn.org
Resources
Readme
License
GPL-3.0 license
Activity
Custom properties
Stars
0
stars
Watchers
2
watching
Forks
0
forks
Report repository
Releases
No releases published
Packages
0
No packages published
Languages
Python
100.0%
Footer
© 2024 GitHub, Inc.
Footer navigation
Terms
Privacy
Security
Status
Docs
Contact
Manage cookies
Do not share my personal information
You can’t perform that action at this time.
yload":{"allShortcutsEnabled":false,"fileTree":{"":{"items":[{"name":"asset","path":"asset","contentType":"directory"},{"name":"docs","path":"docs","contentType":"directory"},{"name":"img","path":"img","contentType":"directory"},{"name":"src","path":"src","contentType":"directory"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".nojekyll","path":".nojekyll","contentType":"file"},{"name":"404.html","path":"404.html","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"Dockerfile","path":"Dockerfile","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"NAV.md","path":"NAV.md","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"SUMMARY.md","path":"SUMMARY.md","contentType":"file"},{"name":"ads.txt","path":"ads.txt","contentType":"file"},{"name":"cover.md","path":"cover.md","contentType":"file"},{"name":"index.html","path":"index.html","contentType":"file"},{"name":"update.sh","path":"update.sh","contentType":"file"}],"totalCount":17}},"fileTreeProcessingTime":2.493148,"foldersToFetch":[],"repo":{"id":104967369,"defaultBranch":"master","name":"sklearn-doc-zh","ownerLogin":"apachecn","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-09-27T03:25:03.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/24802038?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"master","listCacheKey":"v0:1634191550.4799948","canEdit":false,"refType":"branch","currentOid":"6fbef7c2850dd509b958c49a9e0fc98de968ef20"},"path":"README.md","currentUser":null,"blob":{"rawLines":null,"stylingDirectives":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/apachecn/sklearn-doc-zh/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"README.md","displayUrl":"https://github.com/apachecn/sklearn-doc-zh/blob/master/README.md?raw=true","headerInfo":{"blobSize":"9.47 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"9723f3f","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fapachecn%2Fsklearn-doc-zh%2Fblob%2Fmaster%2FREADME.md","isCSV":false,"isRichtext":true,"toc":[{"level":1,"text":"scikit-learn (sklearn) 官方文档中文版","anchor":"scikit-learn-sklearn-官方文档中文版","htmlText":"scikit-learn (sklearn) 官方文档中文版"},{"level":2,"text":"介绍","anchor":"介绍","htmlText":"介绍"},{"level":2,"text":"下载","anchor":"下载","htmlText":"下载"},{"level":3,"text":"Docker","anchor":"docker","htmlText":"Docker"},{"level":3,"text":"PYPI","anchor":"pypi","htmlText":"PYPI"},{"level":3,"text":"NPM","anchor":"npm","htmlText":"NPM"},{"level":2,"text":"目录","anchor":"目录","htmlText":"目录"},{"level":2,"text":"历史版本","anchor":"历史版本","htmlText":"历史版本"},{"level":2,"text":"贡献指南","anchor":"贡献指南","htmlText":"贡献指南"},{"level":2,"text":"DOCX:开放共享科研记录行动倡议","anchor":"docx开放共享科研记录行动倡议","htmlText":"DOCX:开放共享科研记录行动倡议"},{"level":2,"text":"项目负责人","anchor":"项目负责人","htmlText":"项目负责人"},{"level":2,"text":"贡献者","anchor":"贡献者","htmlText":"贡献者"},{"level":2,"text":"建议反馈","anchor":"建议反馈","htmlText":"建议反馈"},{"level":2,"text":"项目协议","anchor":"项目协议","htmlText":"项目协议"},{"level":2,"text":"赞助我们","anchor":"赞助我们","htmlText":"赞助我们"}],"lineInfo":{"truncatedLoc":"221","truncatedSloc":"172"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"Markdown","languageID":222,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/apachecn/sklearn-doc-zh/blob/master/README.md","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/apachecn/sklearn-doc-zh/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/apachecn/sklearn-doc-zh/raw/master/README.md","renderImageOrRaw":false,"richText":"scikit-learn (sklearn) 官方文档中文版\n\n\n\n \n sklearn 0.21.3 中文文档\n sklearn 0.21.3 中文示例\n sklearn 英文官网\n \n\n\n\n介绍\nsklearn (scikit-learn) 是基于 Python 语言的机器学习工具\n\n简单高效的数据挖掘和数据分析工具\n可供大家在各种环境中重复使用\n建立在 NumPy ,SciPy 和 matplotlib 上\n开源,可商业使用 - BSD许可证\n\n\n组织构建[网站]\n\n\nGitHub Pages(国外): https://sklearn.apachecn.org\nGitee Pages(国内): https://apachecn.gitee.io/sklearn-doc-zh\n\n\n第三方站长[网站]\n\n\n地址A: xxx (欢迎留言,我们完善补充)\n\n\n其他补充\n\n\n官方Github\nEPUB 下载地址\nApacheCN 翻译校对兼职群 713436582\n\n下载\nDocker\ndocker pull apachecn0/sklearn-doc-zh\ndocker run -tid -p
Scikit-learn - sklearn库学习 - 知乎
Scikit-learn - sklearn库学习 - 知乎切换模式写文章登录/注册Scikit-learn - sklearn库学习IVY-HQ大学生scikit-learn(简称sklearn)是一个基于Python实现的开源机器学习库,包含了从数据预处理、特征工程到各种机器学习算法的各种工具函数和类。sklearn设计简单、高效,专注于实现常见的机器学习算法和分析工具,并且提供了简单一致的API让使用者方便构建模型以及进行训练和预测。最新版本的scikit-learn还支持并行计算的功能,可以利用多核CPU或者分布式计算技术提升运算效率。sklearn官网sklearn中文社区sklearn库中包含了非常丰富的机器学习模型、数据处理和评估工具等,以下是sklearn库中一些常用的模块:数据预处理:sklearn.preprocessing特征提取:sklearn.feature_extraction降维:sklearn.decomposition监督学习模型:sklearn.linear_model、sklearn.svm、sklearn.naive_bayes、sklearn.neighbors等非监督学习模型:sklearn.cluster、sklearn.mixture模型选择和评估:sklearn.model_selection、sklearn.metrics工具函数:sklearn.utils数据集:sklearn.datasets神经网络:sklearn.neural_network时间序列分析:sklearn.time_series图像处理:sklearn.feature_extraction.image、sklearn.datasets.images等总之,sklearn库可以说是Python中非常强大的机器学习工具箱,涵盖了数据处理、特征提取、降维、模型选择、训练和评估等各个环节,非常适合初学者和专业人士。今日着重学习其中的两个模块:监督学习模型-sklearn.svm模块;模型选择和评估:sklearn.model_selection模块。sklearn.svm模块是sklearn库中的支持向量机算法模块,提供SVM算法的实现。这个模块包含了各种SVM模型和相关的辅助函数,以下是一些常用的类:LinearSVC:用于处理线性SVM分类问题,使用线性核函数实现。SVC:实现SVM分类问题,可以使用不同的核函数(如线性核、多项式核、RBF核等)。NuSVC:实现支持向量分类算法,类似于SVC,不同的是它允许调节模型的鲁棒性。OneClassSVM:实现单类SVM算法,用于异常检测问题。SVR:实现SVM回归问题,可以使用不同的核函数进行回归分析。NuSVR:类似于SVR,不同的是它允许调节模型的鲁棒性。除此之外,SVM模块还提供了一些辅助函数和类,用于数据预处理、参数调节等方面的工作,比如:svm.SVR.fit():用于训练SVM回归模型。svm.SVC.predict():用于对新的数据进行分类预测。svm.LinearSVC.fit():用于训练线性SVM分类器。svm.SVC.fit():用于训练SVM分类器。svm.NuSVC.fit():用于训练NuSVC分类器。svm.OneClassSVM.fit():用于训练单类支持向量机模型。svm.SVCGridSearchCV():用于执行SVM模型的参数优化搜索。总之,sklearn.svm模块提供了丰富的SVM分类、回归和异常检测等算法实现,并且提供了灵活的模型参数调整和数据预处理等工具函数,方便用户使用SVM算法构建模型和进行数据分析。sklearn.model_selection模块是sklearn库中用于模型选择和参数调整的工具模块,可以实现训练集和测试集的划分、交叉验证和模型参数的搜索等功能。该模块是比较重要的一部分,常用于机器学习中算法的评估和优化。以下是一些sklearn.model_selection模块中常用的类和函数:train_test_split:用于数据集的划分。可以将数据划分为训练集和测试集,以便用于模型训练和测试。from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)cross_val_score:用于模型的评估。可以通过交叉验证方法对模型进行评估,具体来说就是将数据集划分为若干个子集,在每次交叉验证时,将其中一个子集作为测试集,剩下的子集作为训练集。实现k折交叉验证、留一交叉验证等验证方法。from sklearn.model_selection import cross_val_score
scores = cross_val_score(model, X, y, cv=5)GridSearchCV:用于模型的超参数调整。可以通过指定模型的超参数和可选的参数范围进行网格搜索,以求得模型在测试数据集上的最佳性能。from sklearn.model_selection import GridSearchCV
param_grid = {'C': [0.1, 1, 10], 'gamma': [0.1, 1, 10]}
grid_search = GridSearchCV(SVC(), param_grid, cv=5)
grid_search.fit(X, y)
best_params = grid_search.best_params_KFold:用于数据集的划分。可以将数据集划分为k个子集,每一个子集既可以当作训练集,也可以当作测试集。KFold 细节能控制的比train_test_split 多from sklearn.model_selection import KFold
kf = KFold(n_splits=5)
for train_index, test_index in kf.split(X):
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]StratifiedKFold:与KFold相似,只不过是为分类问题考虑使用的类(分类量大且类别平均分布),可以保证每一折里类别比例相同,能有效避免样本分布不均导致的模型偏差问题。from sklearn.model_selection import StratifiedKFold
kf = StratifiedKFold(n_splits=5)
for train_index, test_index in kf.split(X, y):
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]总之,sklearn.model_selection模块作为机器学习模型选择和优化的重要工具箱,提供了丰富的数据集划分、交叉验证、模型超参数调优等功能,方便用户在建模过程中进行优化和选择最佳的模型。sklearn.metrics模块提供了一系列用于评估模型性能的函数,包括分类指标、回归指标、聚类指标等,是Scikit-learn(sklearn)库中非常重要的模块之一。常用的类和函数有:accuracy_score():用于计算分类模型的准确率,即模型预测正确的样本数与总样本数之比。confusion_matrix():计算分类模型的混淆矩阵,包括真正类数量、假正类数量、假负类数量、真负类数量等信息。precision_score():用于计算分类模型中精确率,即预测为正类的样本中实际为正类的样本比例。recall_score():用于计算分类模型中召回率,即实际为正类的样本中被预测为正类的样本比例。f1_score():用于计算分类模型中的F1分数,基于精确率和召回率的加权平均值。roc_curve():用于计算分类模型的ROC曲线和AUC值,包括真正类率、假正类率等信息。mean_squared_error():用于计算回归模型的均方误差,即预测值与真实值之间的平均平方差。r2_score():用于计算回归模型的R2分数,即预测值和真实值之间的可决系数。以上是一些常用的Sklearn.metrics模块的类和函数。通过使用这些函数,我们可以对分类模型和回归模型的性能进行准确评估,从而更好地了解我们的模型的表现。其他辅助库:Joblib是一个用于在Python中进行并行计算和内存高效性的工具包。Joblib提供了一些有用的功能,特别是针对机器学习和科学计算等领域,其中通常会处理大量数据和计算密集型任务。Joblib的主要功能之一是:能够轻松地将Python函数分发给多个CPU核心,从而实现并行计算,提高计算效率。Joblib支持的任务并行方式包括:仅用多进程方式、多进程加多线程方式。此外,Joblib还提供了内存映射文件(memory-mapped files)的支持,这使得可以处理更大的磁盘数据,或利用更大的磁盘缓存加速处理。在机器学习的模型训练过程中,使用Joblib可以使用CPU的所有核来并行训练模型,从而加快训练速度。在处理大规模数据集时,内存映射文件的功能可以将数据类似于虚拟内存的方式存储在磁盘上,从而提高内存效率。总的来说,Joblib为Python的并行计算和大数据处理提供了一种便利和高效的方式,是Python科学计算和机器学习中的重要工具之一。Pandas和NumPy都是在Python数据科学和机器学习领域非常流行的库。它们的区别如下:数据结构:NumPy主要使用ndarray这一多维数组形式表示数据,而Pandas则以Series和DataFrame两种数据结构为基础进行数据操作和处理。数据处理方式:NumPy主要用于数学计算、数组处理和科学计算等方面,在数据处理方面较为基础,提供的函数较少;而Pandas侧重于对表格数据进行处理,提供了更多丰富的数据处理和操作函数,例如排序、合并、重构等。缺失数据处理:Pandas对缺失数据进行了更加友好和灵活的处理,提供了许多方法进行缺失数据填充和删除等操作,而NumPy的处理方式相对较少。适用范围:NumPy常用于数据科学和机器学习的底层计算,例如线性代数、矩阵计算和随机数生成等;而Pandas则被广泛应用于数据分析和处理等方面。综上所述,虽然Pandas和NumPy都是Python数据科学和机器学习领域中重要的库,但它们的主要目标和适用范围有所不同。如果需要进行基础的数学和数组操作,可以使用NumPy库;如果需要进行表格数据处理和分析,则应该使用Pandas库。Matplotlib是Python中最流行的数据可视化库之一,广泛用于创建各种类型的图形和可视化,包括折线图、散点图、直方图、饼图、热力图和3D图形等。Matplotlib提供了高度灵活的绘图选项,使用户可以轻松地控制图形的外观和风格。Matplotlib可用于Python交互式编程环境(如Jupyter Notebook和IPython),也可以集成到GUI应用程序中。Matplotlib还可以与NumPy、Pandas、SciPy等其他Python库集成使用,方便数据可视化操作。Matplotlib也与其他Python可视化库(如Seaborn)一起使用,可以制作更漂亮、更有吸引力和信息丰富的图表。Matplotlib提供了两种基本绘图接口:一个是面向对象的API,另一个是基于类似于MATLAB的封装接口(称为pyplot)。面向对象的API允许更多的精确控制图形的各个方面,而基于pyplot的接口则更方便、易于使用。如果需要创建复杂的、具有高度定制化的图形,建议使用面向对象的API,对于一些简单的图形绘制,可以使用pyplot接口。总的来说,Matplotlib是Python中最流行的图形库之一,可以方便地进行数据可视化和探索性数据分析操作,对于探索数据和说明分析结果非常有用。Seaborn是基于matplotlib的Python可视化库,提供了更高层次的数据可视化方法,可以快速方便地生成美观的统计图形。相比于matplotlib,Seaborn拥有更好看、更符合统计学规律和专业术语的图形,能更突出显示数据集中的重要特征,提高用户数据分析结果的可读性。Seaborn的主要优势有:高度可视化:Seaborn中的图形通常与可视化的目的一致,能够快速生成各种美观、高质量的图形。统计分析导向:Seaborn侧重于数据集的可视化和探索性数据分析(EDA),专注于研究和表达各种统计数据,以便更好地理解数据。与Pandas集成:Seaborn与Pandas兼容较好,直接使用Pandas的DataFrames和Series作为输入,并且可以使用Pandas专用的绘图函数风格,使数据处理和可视化更加高效。免费且易于学习:Seaborn是免费且易于学习的,文档详细,而且有大量的示例可以供参考。一些常见的Seaborn图形包括:散点图、条形图、箱线图、热力图、密度图、分布图等。通过使用Seaborn,我们可以更快速、更高效地探索和展示我们的数据集,从而获得更深入的数据分析和洞察。安装sklearn库方法:在命令行或者虚拟环境中进行安装pip install scikit-learn例子:鸢尾花二分类问题from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn import metrics
import joblib as jb
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib
import matplotlib.pyplot as plt
#弹出窗口
matplotlib.use('TKAgg')
df = pd.read_csv('D:/programme/practice01/data/iris.csv')
print(df)
#绘制散点图
fo = ['SepalLengthCm', 'PetalWidthCm']
se = ['Iris-setosa', 'Iris-versicolor']
df_two = df[df['species'].isin(se)]
print(df_two)
sns.scatterplot(x=df_two[fo[0]], y=df_two[fo[1]], hue= df_two['species'])
plt.show()
#训练模型
# 选取 df_two 的特征列,即自变量
X = df_two[fo]
# 选取 df_two 的目标列,即因变量
Y = df_two['species']
# 在使用机器学习算法时,为了保证结果的可重复性,
# 可重复性是指在同样的输入数据、参数设置、随机种子等条件下,每次运行模型得到的结果应该是完全一致的。
# 一般需要设置一个随机种子(random seed),这个随机种子指定了随机数生成器中的初始值。
# 这个参数一般取任意整数值,通常设置为1。
# 将数据集划分为训练集和测试集,其中 test_size=0.3 表示测试集占总数据集的百分比,random_state=1 表示随机种子,保证每次划分的结果不变
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.4, random_state=1)
# 初始化支持向量分类器对象,使用SVM的默认参数,probability=True 表示可以计算输出概率
clf = SVC(random_state=30, probability=True)
# 使用训练集进行拟合
clf = clf.fit(X_train, Y_train)
# 使用测试集进行预测
Y_pred = clf.predict(X_test)
# 计算模型的准确率并输出
print('准确率:', metrics.accuracy_score(Y_test, Y_pred))
#绘制SVM超平面
x_min, x_max = df[fo[0]].min() - 0.2, df[fo[0]].max() + 0.2
y_min, y_max = df[fo[1]].min() - 0.2, df[fo[1]].max() + 0.2
xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02), np.arange(y_min, y_max, 0.02))
ZC = clf.predict(np.c_[xx.ravel(), yy.ravel()])
Z = pd.Categorical(ZC).codes
Z = Z.reshape(xx.shape)
sns.scatterplot(x=df[fo[0]], y=df[fo[1]], hue=Y)
plt.contourf(xx, yy, Z, cmap=plt.cm.ocean, alpha=0.2)
plt.show()
#预测新数据
print('花萼长度:5.5、花萼宽度为2.4,鸢尾花种类为:',clf.predict([[5.5,2.4]]))
#保存模型
jb.dump(clf,'SVM-二分类模型')发布于 2023-05-03 00:15・IP 属地宁夏sklearnPython 库Python赞同 1添加评论分享喜欢收藏申请