一、选择学习方法
scikit-learn中的相关机器学习方法以及编写完善,对于我们来说完全可以把它当做黑盒子。输入:一堆数据,输出:一堆数据。中间就是用内置的模型训练。
我们唯一要做的就是选择模型,如何选择模型?请看下图:
监督学习:分类、回归(知道一些东西,想知道更多)
非监督学习:聚类(啥也不知道,还想通过机器学习知道点东西)
降维:(这题太难了,算法来给我简化下)
二、通用套路
SK也有自己的机器学习也有自己的编写流程,俗称套路。
三部曲:
1.导入模块
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
2.创建数据
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)
3.建模、训练、预测
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
print(knn.predict(X_test))
print(y_test)
三、内置数据库介绍
SK的好处就是里面有丰富的数据集,这些数据集可谓是精挑细选,专门为我们训练模型准备的。
- 自带的小数据集(packaged dataset):sklearn.datasets.load_<name>
- 可在线下载的数据集(Downloaded Dataset):sklearn.datasets.fetch_<name>
- 计算机生成的数据集(Generated Dataset):sklearn.datasets.make_<name>
- svmlight/libsvm格式的数据集:sklearn.datasets.load_svmlight_file(...)
- 从买了data.org在线下载获取的数据集:sklearn.datasets.fetch_mldata(...)
用的最多的就是自带小数据集和计算生成的数据集
自带小数据集:
四、常用属性功能
一个模型有很多属性,每种属性对我们最终的预测结果都会有很重要的影响:
1.训练和预测
最终要的属性,也是构建机器学习最小模块中必须的属性:model.fit(),model.predict()
2.参数与分数
对于线性回国模型,他有斜率和截距参数等;model.coef_、model.intercept_
如何评价模型的结果好坏?可以用模型参数进行计算分数:model.score
参考:
莫烦python: https://morvanzhou.github.io/
scikit-learn官网: http://scikit-learn.org/stable/