《Python机器学习基础教程》笔记
Scikit-Learn中的所有算法(预处理、监督学习、无监督学习等)都被实现为类。这些类在Scikit-Learn中叫作估计器,关于估计器的用法,以上做个小结:
①首先需要将特定类的对象实例化。
②在构建模型对象时,应该设置模型的所有参数。
③所有估计器都有fit方法,fit方法要求第一个参数总是数据X,用一个numpy数组或scipy稀疏矩阵表示,监督算法还需要有一个y参数,它是一维numpy数组,包含回归或分类的目标值(标签)。
④要想创建一个新输出形式的预测,可以用predict方法,要想创建输入数据X的一种新表示,可以用transform方法。
⑤所有监督模型都有score(X_test,y_test)方法,可以评估模型。
以下列出部分代码具体说明一下用法:
1.以无监督学习中的PCA为例
(X为不带标签的数据矩阵)
from sklearn.decomposition import PCA
pca = PCA(n_components=2) #实例化并设置参数
pca.fit(X) #调用fit方法
X_pca = pca.transform(X) #创建输入数据X的一种新表示
2.以监督学习中的随机森林为例
(X_train为训练数据,y_train为训练数据对应的标签,X_test为测试数据,y_test为测试数据对应的标签,X_new是需要预测的新数据)
from sklearn.ensemble import RandomForestClassifier
forest = RandomForestClassifier(n_estimators=100,random_state=0) #实例化并设置参数
forest.fit(X_train,y_train) #调用fit方法
pred_forest = forest.predict(X_new) #对新数据进行预测
print("Accuracy on training set:{:.3f}".format(forest.score(X_train,y_train))) #评估模型,训练集上的分数
print("Accuracy on test set:{:.3f}".format(forest.score(X_test,y_test))) #评估模型,测试集上的分数