[kaggle竞赛实践4]数字识别Digital Recognizer--Random Forest随机森林方法

这个比赛用的是著名的字符识别数据集,MNIST数据集, 使用的方法是随机森林方法。代码没有设计多少随即森林的方法,原理和代码级别的算法实现后面补充。

精度96.5%。


# -*- coding: utf-8 -*-
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn import datasets
 

#机器学习是对不同特征的学习,如果特征间相互独立,那么知道和不知道这些特征叫什么根本没有什么区别,都是某个维度的数字罢了,
#但是很多时候关键就在于不同特征之间的关系,隐含特征的挖掘,也即Feature Engineering

#数据路径
trainPath='C:\Users\Administrator.HW5RNAPLM6MRWZC\Desktop\kaggle\MINST_DATA'+r'\train.csv'
testPath='C:\Users\Administrator.HW5RNAPLM6MRWZC\Desktop\kaggle\MINST_DATA'+r'\test.csv'

#准备训练数据
rawData=pd.read_csv(trainPath).values
trainData=rawData[:,1:]
trainLabel=rawData[:,0]
testData= pd.read_csv(testPath).values
X=trainData
Y=trainLabel

#随机森林训练和测试
clf=RandomForestClassifier(n_estimators=100)
clf=clf.fit(X,Y)
testLabel=clf.predict(testData)

#训练结果保存
df=pd.DataFrame(testLabel,columns=['label'])
df.to_csv('testLabel.csv',header=True,index=False)



根据scikit learn上随机森林的使用方法将kaggle的数据赛进去计算的,对于随机森林的原理只有书本的了解,但是并没有从代码级别实现过。

得到96.5的精度确实不低,但是我现在一想,平时写两三天才能写好的基本的机器学习算法,现在用sklearn几十分钟就写完了,成就感就没那么大了。

 


你可能感兴趣的:(机器学习)