Scikit-Learn是一个Python机器学习库。尽管当前深度学习发展火热,Tensorflow、PyTorch和MXNet之类的框架很流行。但是并不是所有的数据挖掘任务都需要深度学习来解决。在数据规模有限的情况下,传统机器学习算法如Random Forest、Regression等都有着非常好的效果。Scikit-Learn在传统机器学习算法的支撑方面非常完善,而且效率和准确性也都很好,是非常优秀的机器学习算法Python库。

Scikit-Learn的主要特点包括:

Scikit-Learn支持的算法也很多,包括:
分类:SVM/最近邻/random forest等
回归:SVR/Ridge Regression等
聚类:K-Means/Spectral Clustering等
维度约减:PCA/Non-Negative Matrix Factorizaion等
模型选择:Grid Search/Cross Validation
预处理等。
这个库的使用非常简单。核心步骤基本都是一样。我们举个例子,假设我们有训练数据,X、y,其中X是特征数据,y是标签数据。那么我们可以如下方式使用。
1、导入相关的包
这里我们导入了多个模型了
from sklearn.model_selection import train_test_split
from sklearn import metrics
rom sklearn.linear_model import LogisticRegression
from sklearn.ensemble import GradientBoostingClassifier, RandomForestClassifier
1、划分训练数据和验证数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
这里的X_train/y_train就是训练的数据特征和标签,X_test和y_test就是测试集的特征和标签。
2、建立模型
这里我们列举几种分类模型,我们只保留了RandomForest,其他模型都注释了,只是展示一下使用方法,模型的参数也在这里设定:
# model = LogisticRegression(random_state=0, solver='lbfgs', multi_class='multinomial')
# model = GradientBoostingClassifier(n_estimators=100, learning_rate=1.0, max_depth=1, random_state=0)
# model = svm.SVC(gamma='scale', decision_function_shape='ovo')
model = RandomForestClassifier(n_estimators=30, max_depth=5, min_samples_split=2, random_state=0)
3、模型训练
模型训练很简单,所有的模型都使用fit方法进行训练,训练的结果可以得出分数。
model.fit(X_train, y_train)
score = model.score(X_train, y_train)
4、模型使用和评价
这里如果我们要用模型预测,也很简单,直接使用predict方法就好。评价当然也是顺便了:
predicted = model.predict(X_test)
# print(metrics.accuracy_score(y_test, predicted))
probs = model.predict_proba(X_test)
# print(metrics.roc_auc_score(y_test, probs[:, 1]))
以上就是Scikit-Learn的使用和简介,非常容易。在初步尝试探索数据的时候,它也是极其合适的。可以很快的看到各个经典算法的效果。非常值得学习。当然,他也提供了超参数搜索的方法等。这个以后可以继续讲解一下。
| 留言与评论(共有 0 条评论) |