上了一门机器学习课,实践平台老师推荐了Python和scikit-learn库。scikit-learn库包含有完善的文档和丰富的机器学习算法,在官方文档上每种算法都有讲解和应用示例(简直堪比老师课上的PPT)。
于是调查了一下这个库,目的是学习下它怎么用。
数据加载
第一步自然是数据加载,可以在UCIMachine Learning Repository网站上load,这个网站是个公开的机器学习数据集库,资源来自各种学校各种单位各种实验室各种数据库的贡献。数据集都不大,可以用来练习ML算法。
python是个强大的东西,我们可以直接用urllib从网站上load数据,再用numpy的函数加载:
(这里下的是经典的鸢尾花数据集,共150个data,分3类,每类50例,每例4个属性和1个类别标签)
import numpy as np
from urllib import request
# UCI dataset url
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
raw_data = request.urlopen(url)
x = np.loadtxt(raw_data, delimiter=",", usecols=(0,1,2,3))
raw_data = request.urlopen(url)
y = np.loadtxt(raw_data, delimiter=",", usecols=(4), dtype=str)
注:raw_data是网页请求的response内容,只能读取一次,所以y要再request一次。若想一次读取就要把data存到本地文件再加载。
# UCI dataset url
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
raw_data = request.urlopen(url)
page = raw_data.read()
page