用python来实现机器学习是很简单滴~ 这是我看了莫烦python中的scikit—learn库之后的一些自己的理解。 不过我还是有一些问题的: 1.scikit-learn库是什么? 2.这个库怎么用? 3.scikit-learn库的官网的文档到底怎么查啊怎么使用啊? 这都将在scikit-learn学习笔记中写下。 1.scikit-learn库是什么这里是官网:scikit-learn: machine learning in Python — scikit-learn 0.19.2 documentation
http://scikit-learn.org/stable/index.html 官方解释是:用python实现机器学习的一个库,简单高效的对数据分析挖掘,大家都可以用啊巴拉巴拉的~
2.库的使用今天学习到的库的使用方法是这样的通用学习模式: step1:加载数据 step2:划分训练集与测试集 step3:模型的拟合和预测 step4:模型性能验证。比如精确度,错误率之类的。 下面来一个例子: 利用scikit-learn中的自带数据库中的花的数据进行花的种类分类。 先上代码,利用的分类模型是knn。
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
#加载数据
iris = datasets.load_iris()#引入库中自带的花的数据集,这个花分类有三种。
iris_x = iris.data#花的特征数据列
iris_y = iris.target#花的分类列
#划分训练集与测试集
x_train,x_test,y_train,y_test = train_test_split(iris_x,iris_y,
test_size=0.3,
random_state=0)
#model的拟合,在这里使用KNN,监督学习
model = KNeighborsClassifier(n_neighbors=5)
model.fit(x_train,y_train)
#模型验证性能,这里性能验证是准确度
print(model.predict(x_test))#预测值
print(y_test)#真实值
print(model.score(x_test,y_test))#准确度 R^2
在划分训练集与测试集的部分中,使用到了这个方法:train_test_split(),其中测试集大小为0.3的比例,random_state的意思是每次划分的数据集是否要一样,设置为0就是不一样,设置为其他数字就是一样。x_train,y_train,是测试集,用于fit(拟合)模型,而y_test是真实值,x_test是测试集,为的是在model.predict()时使用从而得到预测值。当然还有其他的划分函数,这个后面再说啦~ 在验证模型性能的部分中,model.score(),默认的是R^2检测(coefficient determination)。 其他的后面再说。 运行结果如下: 以上是scikit-learn的通用使用模板,换成svm,logistic regression也是一样的。这是最简单的使用 方式。后续会介绍更加复杂的如何查看是否过拟合,如何修正模型等。
|