【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
很多熟悉机器学习的同学,都知道python下面有一个sklearn的库。这个库使用起来很简单,不但功能多算法全,而且很多参数都是默认的,使用的时候直接调用就可以了。我建议大家,如果是生产使用就直接使用sklearn算法库好了,如果是自己练习的话,还是一步一步去练习和分析具体的算法内容。
sklearn到底有多方便,下面,我们就以一段代码加以说明。
#!/usr/bin/python
import os
import sys
import re
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn import svm
from sklearn.ensemble import GradientBoostingClassifier
from sklearn import tree
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import RandomForestClassifier
'''
get data here
'''
def get_datasets():
iris = datasets.load_iris()
x = iris.data
y = iris.target
return x, y
'''
logistic regression classifer
'''
def get_logistic_classifier(attr, label):
lr = LogisticRegression()
lr.fit(attr, label)
return lr
'''
bayes classifier
'''
def get_gaussian_classifier(attr, label):
gnb = GaussianNB()
gnb.fit(attr, label)
return gnb
'''
svm classifier
'''
def get_svm_classifier(attr, label):
s = svm.SVC()
s.fit(attr, label)
return s
'''
gradient boosting decision tree classifier
'''
def get_gbdt_classifier(attr, label):
gbdt = GradientBoostingClassifier()
gbdt.fit(attr, label)
return gbdt
'''
decision tree classifier
'''
def get_tree_classifier(attr, label):
dt = tree.DecisionTreeClassifier()
dt.fit(attr, label)
return dt
'''
knn classifier
'''
def get_knn_classifier(attr, label):
knn = KNeighborsClassifier()
knn.fit(attr, label)
return knn
'''
random forest classifier
'''
def get_rf_classifier(attr, label):
rf = RandomForestClassifier()
rf.fit(attr, label)
return rf
'''
check data accuracy by classifier
'''
def check_data(cf, attr, label):
num = len(attr)
if 0 == num:
print 'no data found'
return
count = 0
for i in range(num):
if cf.predict(attr[i]) == label[i]:
count += 1
print 'accuracy is ' + str(count * 100.0 / num) + '%\n'
'''
file start function
'''
def main():
x, y = get_datasets()
#cf = get_logistic_classifier(x[0:120], y[0:120])
#cf = get_gaussian_classifier(x[0:120], y[0:120])
#cf = get_svm_classifier(x[0:120], y[0:120])
#cf = get_gbdt_classifier(x[0:120], y[0:120])
#cf = get_tree_classifier(x[0:120], y[0:120])
#cf = get_knn_classifier(x[0:120], y[0:120])
cf = get_rf_classifier(x[0:120], y[0:120])
check_data(cf, x[120:150], y[120:150])
if __name__ == '__main__':
main()
上面这段代码不是很长,但是包含的内容还是很多的。首先,我们从iris那里获取数据,接着利用iris数据进行算法建模,最后对iris部分数据进行分类判断。在算法建模的时候,我们使用了logistic回归、bayes、svm、gbdt、决策树、knn、随即森林等多种学习方法,大家可以根据自己的需要comment和uncommet掉对应的代码即可。在使用算法的时候,我们没有修改参数,如果对某些算法特别熟悉,大家可以设置不同的模型参数依次进行分析和练习。代码虽然不复杂,但是对自己快速入门还是大有裨益的。