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

               

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


@author: wepon

@blog: http://blog.csdn.net/u012162613


1、scikit-learn简介


scikit-learn是一个基于NumPy、SciPy、Matplotlib的开源机器学习工具包,采用Python语言编写,主要涵盖分类、

回归和聚类等算法,例如knn、SVM、逻辑回归、朴素贝叶斯、随机森林、k-means等等诸多算法,官网上代码和文档

都非常不错,对于机器学习开发者来说,是一个使用方便而强大的工具,节省不少开发时间。


scikit-learn官网指南:http://scikit-learn.org/stable/user_guide.html



上一篇文章 《大数据竞赛平台—Kaggle入门》  我分两部分内容介绍了Kaggle,在第二部分中,我记录了解决Kaggle上的竞赛项目DigitRecognition的整个过程,当时我是用自己写的kNN算法,尽管自己写歌kNN算法并不会花很多时间,但是当我们想尝试更多、更复杂的算法,如果每个算法都自己实现的话,会很浪费时间,这时候scikit-learn就发挥作用了,我们可以直接调用scikit-learn的算法包。当然,对于初学者来说,最好还是在理解了算法的基础上,来调用这些算法包,如果有时间,自己完整地实现一个算法相信会让你对算法掌握地更深入。

OK,话休絮烦,下面进入第二部分。

2、使用scikit-learn解决DigitRecognition

我发现自己很喜欢用DigitRecognition这个问题来练习分类算法,因为足够简单。如果你还不知道DigitRecognition问题是什么,请先简单了解一下: Kaggle DigitRecognition ,在我上一篇文章中也有描述: 《大数据竞赛平台—Kaggle入门》 。下面我使用scikit-learn中的算法包kNN(k近邻)、SVM(支持向量机)、NB(朴素贝叶斯)来解决这个问题,解决问题的关键步骤有两个:1、处理数据。2、调用算法。

(1)处理数据

这一部分与上一篇文章 《大数据竞赛平台—Kaggle入门》 中第二部分的数据处理是一样的,本文不打算重复,下面只简单地罗列各个函数及其功能,在本文最后部分也有详细的代码。

def loadTrainData():    #这个函数从train.csv文件中获取训练样本:trainData、trainLabeldef loadTestData():    #这个函数从test.csv文件中获取测试样本:testDatadef toInt(array):def nomalizing(array):    #这两个函数在loadTrainData()和loadTestData()中被调用    #toInt()将字符串数组转化为整数,nomalizing()归一化整数def loadTestResult():    #这个函数加载测试样本的参考label,是为了后面的比较def saveResult(result,csvName):    #这个函数将result保存为csv文件,以csvName命名


“处理数据”部分,我们从train.csv、test.csv文件中获取了训练样本的feature、训练样本的label、测试样本的feature,在程序中我们用trainData、trainLabel、testData表示。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值