Kaggle(四)Scikit-learn

人工智能入门指南:从基础认知到实践路径 人工智能作为当前最热门的技术领域之一,其核心在于算法和算力的结合。从基础的机器学习算法如决策树、SVM,到复杂的深度神经网络,AI技术通过数据训练模型实现智能功能。在实际应用中,AI已广泛应用于医疗影像诊断、金融风控、智能制造等领域,展现出巨大的技术价值。学习AI需要从Python编程基础开始,逐步掌握机器学习理论和框架实战,如TensorFlow和PyTorch。本文结合AI热词如深度学习、卷积神经网络(CNN),为初学者提供清晰的学习路径和实践建议,帮助读者从入门到精通。 阅读详情

Scikit-learn是一个支持有监督和无监督学习的开源机器学习库。它还为模型拟合、数据预处理、模型选择和评估以及许多其他实用程序提供了各种工具。

一、训练和测试分类器

对于第一个示例,我们将在数据集上训练和测试一个分类器。 我们将使用此示例来回忆scikit-learn的API。

%matplotlib inline
import matplotlib.pyplot as plt

1、手写数字的数据集

一共有1797个样本,每个样本有64个元素,对应到8x8像素点组成的矩阵,每个值是其灰度值 

from sklearn.datasets import load_digits

X, y = load_digits(return_X_y=True)
X.shape

以图像的形式显示出来

plt.imshow(X[0].reshape(8, 8), cmap='gray');# 下面完成灰度图的绘制
# 灰度显示图像
plt.axis('off')# 关闭坐标轴

print('The digit in the image is {}'.format(y[0]))# 格式化打印

数字为零

2 、划分数据为训练集与测试集

划分数据为训练集与测试集,添加stratify参数,以使得训练和测试数据集的类分布与整个数据集的类分布相同。
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    X, y, stratify=y, test_size=0.25, random_state=42)

LogisticRegression

from sklearn.linear_model import LogisticRegression  # 求出Logistic回归的精确度得分

clf = LogisticRegression(
    solver='lbfgs', multi_class='ovr', max_iter=5000, random_state=42)
clf.fit(X_train, y_train)
accuracy = clf.score(X_test, y_test)
print('Accuracy score of the {} is {:.4f}'.format(clf.__class__.__name__,
                                                  accuracy))

回归模型的精确度大致为0.9622

RandomForestClassifier

XGBClassifier

GradientBoostingClassifier

GradientBoostingClassifier

SVC

LinearSVC

 二、标准化数据

 归一化

学习(即,fit方法)训练集上的统计数据

 标准化(即,transform方法)训练集和测试集

可知我们将训练和测试这个模型并得到归一化后的数据集回归模型的精确度上升

预测

归一化后的数据集

 三、交叉验证

顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。

交叉验证(Cross-Validation)_南有芙蕖的博客-优快云博客_交叉验证

四、 网格搜索调参

Grid Search:一种调参手段;

穷举搜索:在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果。其原理就像是在数组里找最大值。

机器学习之Grid Search网格搜索(自动调参)_图灵的猫i的博客-优快云博客_gridsearch

如下例子,我们希望优化LogisticRegression分类器的C和penalty参数。

我们可以使用get_params()检查管道的所有参数。 

五、流水线操作

引入了Pipeline对象。它依次连接多个转换器和分类器(或回归器)。我们可以创建一个如下管道:

六、练习 异构数据:当您使用数字以外的数据时

 导入数据

 将数据集转换为x,y

处理数值数据

注意:不能直接使用用LogisticRegression分类器,会报错

大多数分类器都设计用于处理数值数据。 因此,我们需要将分类数据转换为数字特征。 最简单的方法是使用OneHotEncoder对每个分类特征进行读热编码。 让我们以sex与embarked列为例。 请注意,我们还会遇到一些缺失的数据。 我们将使用SimpleImputer用常量值替换缺失值。

这样,可以对分类特征进行编码。 但是,我们也希望标准化数字特征。 因此,我们需要将原始数据分成2个子组并应用不同的预处理:

(i)分类数据的独热编;

(ii)数值数据的标准缩放(归一化)。

我们还需要处理两种情况下的缺失值:

对于分类列,我们将字符串’missing_values’替换为缺失值,该字符串将自行解释为类别。

对于数值数据,我们将用感兴趣的特征的平均值替换缺失的数据。 

转换完成后,将处理好的分类特征和数值特征转换为稀疏矩阵

七、建模预测

我们使用LogisticRegression分类器作为模型

SVM手写数字识别 - SKLearn实现SVM - MNIST数据集 较小的gamma值意味着高斯核具有较大的范围,而较大的gamma值使得高斯核具有较小的范围。PCA的目标:新坐标系上数据的方差越大越好(最大方差理论:信号具有较大的方差,噪声具有较小的方差) PCA是无监督的学习方法,在sklearn中,直接使用skleran.decomposition即可。模块提供了一些常用的模型选择和评估工具,如交叉验证、网格搜索、评估指标等,可以用来选择最优的模型和调整模型参数,以及评估模型的性能。在这个例子中,训练集的大小为原始数据集的30%。在这个例子中,有2个特征是有意义的。 阅读详情

相关推荐

Scikit Learn识别手写数字 -- 机器学习项目基础篇(6)

Scikit Learn识别手写数字 -- 机器学习项目基础篇(6)

python收藏家的博客 841

sklearn自带数据集load_digits(手写数字识别)的线性与对数模型实现,并比较二者性能

实验 1:线性模型实现 实验要求 (1)对问题进行简单描述并给出线性判别分析和对数几率回归解决分类问题的原理; (2)将问题相关数据集划分成训练集和测试集; (3)给出线性判别分析和对数几率回归解决手写数字识别问题的代码; (4)对训练后的模型进行交叉验证,进而对不同模型进行比较和评估; (5)实验报告除了姓名、专业、学号和班号之外,其他所有地方要求用手写(不允许打印)。 具体要求 (1)手写数字识别问题的数据可以通过如下方式生成: from sklearn.datasets import load_dig

huangxuesheng的博客 1万+

零基础转行数据分析:3个月高效学习路线与实战指南

数据分析作为AI时代核心技能,其本质是通过统计学方法、编程工具和业务理解来提取数据价值。从技术实现看,Python凭借NumPy/Pandas等库成为主流工具链,配合SQL实现数据查询,Tableau/Matplotlib完成可视化呈现。在工程实践中,数据清洗、特征工程等预处理步骤往往占据70%工作量,而Scikit-learn等框架则降低了机器学习应用门槛。对于转行人员,建议采用'基础语法→数据处理→机器学习'的Python学习路径,结合Kaggle实战项目快速积累经验。本文基于作者机械工程转行的亲身经历

weixin_33965305的博客 375

使用sklearn库提供的方法读取手写数字数据集,然后分类算法进行分类,求出准确率

代码实现: 1.导入相应的包 from sklearn import datasets #数据集 from sklearn.metrics import accuracy_score # 精确度 from sklearn.model_selection import train_test_split # 划分数据集 from sklearn import naive_bayes # 贝叶斯 from sklearn.svm import SVC # 支持向量机 from sklearn import tre

qq_44858403的博客 2470

Kaggle入门——使用scikit-learn解决DigitRecognition问题

scikit-learn是一个基于NumPy、SciPy、Matplotlib的开源机器学习工具包,采用Python语言编写,主要涵盖分类、 回归和聚类等算法,例如knn、SVM、逻辑回归、朴素贝叶斯、随机森林、k-means等等诸多算法,官网上代码和文档 都非常不错,对于机器学习开发者来说,是一个使用方便而强大的工具,节省不少开发时间。 scikit-learn官网指南:http://scikit-learn.org/stable/user_guide.html 上一篇文章《大数据竞赛平台—Kaggle

wepon的专栏 1万+

机器学习实践:使用 scikit-learn 实现 Kaggle 医学影像分类任务

本文介绍了如何使用scikit-learn完成Kaggle乳腺组织病理学图像分类任务。重点包括:1)通过Kaggle API获取包含27.8万张50x50像素图像的数据集;2)采用随机采样处理大数据集;3)提取颜色直方图、灰度共生矩阵和HOG特征降低维度;4)使用标准化处理特征;5)划分80%训练集和20%测试集。该方法有效解决了医学影像分类中的高维数据、类不平衡和计算资源限制等挑战,为后续决策树模型构建和优化奠定了基础。

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 1495

非技术背景转行AI:零基础学习路径与实战指南

机器学习作为人工智能的核心技术,正推动各行业智能化转型。其核心原理是通过算法从数据中学习规律,实现预测或决策。随着AutoML等工具的发展,技术门槛显著降低,使非技术背景从业者也能参与AI应用开发。掌握Python、SQL等基础工具,结合Kaggle实战项目,可快速构建AI技能栈。特别是在数据分析、客户分群等场景中,AI技术能直接产生商业价值。对于转行者而言,建立业务问题与技术方案的转化能力尤为关键,这正是市场营销、教育等非技术背景人才的独特优势。

weixin_29041195的博客 267

机器学习实践:使用 scikit-learn 实现 Kaggle 胸部 X 光图像分类任务

机器学习实践:胸部X光图像分类 摘要 本文介绍了使用scikit-learn实现Kaggle胸部X光图像分类任务的方法。该任务旨在区分正常和肺炎的胸部X光图像,数据集包含5,216张训练图像(1,341正常/3,875肺炎)。文章详细阐述了数据预处理流程,包括灰度转换、图像降采样至64×64像素以降低计算复杂度。特征提取采用灰度直方图(16维)、灰度共生矩阵(5个纹理特征)和HOG特征,有效降低数据维度。通过决策树模型构建分类器,并解决了类不平衡问题(肺炎样本占比75%)。

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 1596

机器学习入门指南:避坑技巧与高效学习路径

机器学习作为人工智能的核心技术,正从实验室快速走向产业应用。其核心原理是通过算法从数据中学习规律,进而实现预测或决策。随着PyTorch、TensorFlow等框架的成熟,技术门槛大幅降低,但学习过程中仍需注意方法。初学者常陷入数学理论优先或玩具数据集依赖等误区,实际上应遵循'先实践后理论'的路径,从scikit-learn等工具入手。真实业务场景中的数据清洗、特征工程等环节往往比算法选择更重要。建议通过Kaggle竞赛和开源项目积累经验,同时合理配置开发环境,普通GPU甚至CPU即可满足大部分学习需求。掌

weixin_34246529的博客 260

机器学习实战:手写数字识别

手写数字识别是机器学习中的一个经典问题,通常涉及将手写数字的图像与其对应的数字进行关联。这种问题通常被认为是计算机视觉领域的一个入门任务,也是许多深度学习框架和算法的基础测试案例之一。

Nowl的博客 2517

机器学习入门避坑指南:从速成陷阱到系统学习路径

机器学习作为人工智能的核心技术,其本质是通过算法让计算机从数据中学习规律并做出预测。其原理基于统计学、优化理论和计算科学,通过构建模型来拟合数据分布。这项技术的价值在于能够自动化复杂决策,提升效率并解决传统编程难以处理的问题,广泛应用于推荐系统、金融风控、医疗诊断等场景。对于初学者而言,常见的误区是试图通过收集零散的“速成资料包”快速入门,这往往导致知识碎片化和实践脱节。本文针对这一现象,深入剖析了典型学习资料包的局限性,并强调建立系统性知识结构的重要性。文章指出,真正的学习应遵循从数学编程基础到算法核心理

weixin_34174422的博客 406

Python数据分析学习路线

要系统学习Python数据分析,需遵循一条从基础编程到专项精通的渐进式路径。(使用Pandas等)、(统计分析与可视化)以及(机器学习建模)。以下是一个整合了高效学习方法的完整学习路线图,具体分为四个阶段。此阶段目标是打牢编程基础并理解数据分析的基本操作范式。SeriesDataFrame此阶段目标是成为数据“整理大师”和“讲故事的人”。applymapcutqcutmergeconcatjoingroupbyagg此阶段目标是为数据赋予“预测”能力。Scipy此阶段目标是将技能应用于真实场景,构建作品集。

2302_76949453的博客 483

MATPOWER下载安装教程

将MATPOWER文件复制在C:\Program Files (x86)\MATLAB\R2016b\bin目录下。原来的窗口中多了很多文件路径,点击【保存】,再点击【关闭】选择所要添加的MATPOWER文件夹,点击【选择文件夹】二、将MATPOWER放在bin目录下。找到菜单栏的【设置路径】点击【添加并包含子文件】一、从官网下载后解压。

weixin_47365903的博客 2万+

SciKit-Learn 加载数据集

章节SciKit-Learn 加载数据集 SciKit-Learn 数据集基本信息 SciKit-Learn 使用matplotlib可视化数据 SciKit-Learn 可视化数据:主成分分析(PCA) SciKit-Learn 预处理数据 SciKit-Learn K均值聚类 SciKit-Learn 支持向量机 SciKit-Learn 速查 数据科学中的第一步通常都是加载数据,我们首...

吴吃辣 4681

kali设置安装burpsuite中文版

工具:通过网盘分享的文件:Burpsuite 链接:提取码: jay1。

m0_74786138的博客 5202

SST专题(2-5)MMC-SST 输入级的环流抑制

本文研究了模块化多电平换流器(MMC)的数学模型及其环流抑制控制方法。首先建立了MMC等效电路模型,推导了桥臂电流方程和虚拟电动势表达式,提出通过控制桥臂电压修正量来调节内部电流而不影响外部特性。针对MMC特有的二倍频负序环流问题,设计了基于负序旋转坐标变换的环流抑制控制器(CCSC),将时变环流转换为直流量进行控制。通过比例-积分调节和电压前馈补偿,生成内部不平衡压降参考值,最终形成包含功率控制和环流抑制的整体控制结构。仿真结果表明该方法能有效抑制内部环流,同时保持系统稳定运行。

嵌入式老牛的博客 536

scikit-learn中一种便捷可靠的缺失值填充方法:KNNImputer

在数据挖掘工作中,处理样本中的缺失值是必不可少的一步。其中对于缺失值插补方法的选择至关重要,因为它会对最后模型拟合的效果产生重要影响。 在2019年底,scikit-learn发布了0.22版本,此次版本除了修复之前的一些bug外,还更新了很多新功能,对于数据挖掘人员来说更加好用了。其中我发现了一个新增的非常好用的缺失值插补方法:KNNImputer。这个基于KNN算法的新方法使得我们现在可以更便捷地处理缺失值,并且与直接用均值、中位数相比更为可靠。利用“近朱者赤”的KNN算法原理,这种插补方法借助...

sinat_33264502的博客 1万+

基于Simulink建模仿真的滑模控制的磁悬浮轴承稳定控制仿真

磁悬浮轴承(Magnetic Bearing)利用电磁力来支撑和定位转子,无需机械接触,因此在高速旋转设备中具有广泛应用。滑模控制(Sliding Mode Control, SMC)是一种鲁棒性强的非线性控制方法,适用于磁悬浮轴承的精确控制。以下是基于Simulink的磁悬浮轴承滑模控制系统的详细设计与仿真步骤。通过上述步骤,设计并实现了基于 Simulink 和 Control System Toolbox 的磁悬浮轴承滑模控制系统。

MHD0815的博客 780

scikit-learn在Kaggle Titanic数据集上的简单实践(新手向)

scikit-learn在Kaggle Titanic数据集上的简单实践(新手向) Titanic乘客生存预测是Kaggle上的一项入门竞赛,即给定一些乘客的信息,预测该乘客是否在Tatanic灾难中幸存下来。 什么是Kaggle? 给出百度百科的定义作为参考:Kaggle是由联合创始人、首席执行官安东尼·高德布卢姆(Anthony Goldbloom)2010年在墨尔本创立的...

笔墨留年。 5833

OpenClaw实战系列01:OpenClaw接入飞书机器人全接入指南 + Ollama本地大模型

通过 OpenClaw + Ollama + 飞书的组合,我们成功搭建了一个完全私有、免费、可定制的AI助理。它不仅能在日常聊天中提供帮助,还能通过OpenClaw强大的“技能”体系,真正去操作你的电脑、管理文件、甚至执行代码。这套方案将数据留在本地,既保证了隐私安全,又锻炼了动手能力。现在,去给你的AI助理添加更多酷炫的技能吧!

PeterPan的博客 1万+

全景相机APP

以下是一款**全景相机APP**的完整源码,支持全景照片拍摄(多帧拼接)、全景预览、鱼眼矫正、图片保存/分享、360°全景查看等核心功能,基于Android原生Camera2 API(替代过时的Camera API) + OpenCV(图像拼接) + GLSurfaceView(全景预览)实现,适配Android 8.0+设备,可直接编译运行。runOnUiThread(() -> tvFrameCount.setText("已拍摄:" + frameCount + "帧"));// X轴旋转(上下)

寒寒豆豆软件公司的博客 180
上一篇: Kaggle 入门(Kaggle网站使用及项目复现)
下一篇: Kaggle(六)特征衍生技术 特征聚合
study_code_ing
博客等级 码龄5年 41粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值