一.机器学习概述
1.机器学习的含义
机器学习(Machine Learning,简称ML),该领域主要研究的是如何使计算机能够模拟人类的学习行为从而获得新的知识。 简单来说,机器学习就是让计算机从大量的数据中学习到相关的规律和逻辑,然后利用学习来的规律来预测以后得未知事物。
2.机器学习处理的问题
1)监督学习
监督学习是指设置所谓的“正确答案”去教会机器如何学习,其中的数据带有类别标记,即想要预测的结果值。
监督学习分为:
- 分类:从已知标记的数据中学习如何预测未标记数据的类别,即从有限的类别中,给每个样本贴上正确的标签,如:手写字识别。
- 回归:期望的输出由一个或多个连续变量组成。如:预测鲑鱼的长度是其年龄和体重的函数。
2)无监督学习
无监督学习是指不设置所谓的“正确答案”去教会机器如何学习,而是让它自己发现数据中的规律,其训练数据由没有任何类别标记的一组输入向量x组成。
例如:
- 聚类:在数据中发现彼此类似的示例所聚成的组。
- 自组织神经网络SOM:从高维数据投影空间缩小到二维空间。
3.机器学习的框架
构建一个机器学习框架的步骤:
- 第一步:数据的加载(getData())
- 第二步:选择模型(somemodel())
- 第三步:模型的训练(model.fit(train_x,train_y))
- 第四步:模型的预测(model.predict(test_x))
- 第五步:模型的评测(score_function(test_y,predictions))
- 第六步:模型的保存(joblib.dump(knn,‘filename.pkl’))
二.机器学习的模型
1.模型的选择
学会加载模型,对于不同类型额数据选择不同的方法(即模型)进行学习。
机器学习中有一个学习库Scikit-learn(sklearn),它是机器学习中一个常用的Python第三方模块。
from sklearn import svm
svc = svm.SVC()
2.训练与预测
1)使用sklearn模型的训练
训练:使用scikit-learn模块实现机器学习训练,此处利用了训练数据集训练了“transformer(如svc)”模型,向fit()方法提供输入训练数据集后即可训练模型。
svc.fit(X_train,y_train)
- 使用sklearn进行模型的预测
预测:预测即使用模型来预测未知的数据,上一步中模型训练完成,就可以使用模型进行预测。
print(svc.predict([[5.84,4.4,6.9,2.5]]))
3.实现机器学习模型
1)数据导入,分割数据
# 导入iris数据集
from sklearn.datasets import load_iris
# 分割数据模型
from sklearn.model_selection import train_test_split
# K最近(KNN,K-Nearest Neighbor)分类算法
from sklearn.neighbors import KNeighborsClassifier
# 加载iris数据集
iris = load_iris()
X=iris.data
y = iris.target
# 分割数据
X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=4)
- 建立模型进行训练和预测
# 建立模型
knn = KNeighborsClassifier()
# 训练模型
knn.fit(X_train,y_train) #
# 预测模型
y_pred=knn.predict(X_test)
print(y_pred - y_test) # 预测与实际类别的差异