机器学习与计算机视觉(sklearn快速上手)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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掉对应的代码即可。在使用算法的时候,我们没有修改参数,如果对某些算法特别熟悉,大家可以设置不同的模型参数依次进行分析和练习。代码虽然不复杂,但是对自己快速入门还是大有裨益的。

 

 

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页