sklearn库的相关概念:
estimator:估计器,用于分类、聚类和回归分析。
transformer:转换器,用于数据预处理和数据转换。
pipeline:流水线,组合数据挖掘流程,便于再次使用。
估计器用于分类任务,主要包括以下两个函数:
fit( ):训练算法,设置内部参数,完成模型的创建。
predict( ):预测测试集类别,并返回一个包含测试集各条数据类别的数组。
import csv with open(data_filename, 'r') as input_file: reader = csv.reader(input_file) 训练集与测试集划分 from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.3, random_state = 14)导入分类器包,并实例化一个分类器estimator,接着训练和预测,计算精度。
estimator.fit(x_train, y_train) y_pre = estimator.predict(x_test) accuracy = np.mean(y_test == y_pre) * 100 交叉验证 from sklearn.model_selection import cross_val_score scores = cross_val_score(estimator, x, y, scoring = 'accuracy', cv = 10)# 10-fold cross-validation average_accuracy = np.mean(scores) * 100sklearn中的预处理工具叫做转换器(transformer),它接受原始数据集,返回转换后的数据集。除了处理数值型特征,转换器还能用来抽取特征。
标准预处理
from sklearn.preprocessing import MinMaxScaler #0-1标准化 x_transformer = MinMaxScaler().fit_transform(x) #类似的还有 #为使每条数据各特征的和为1 from sklearn.preprocessing import Normalizer #为使各特征的均值为0,方差为1 from sklearn.preprocessing import StandardScaler #为将数值型特征二值化,大于阈值为1,反之为0 from sklearn.preprocessing import Binarizer 流水线当处理问题的步骤很多时,流水线可把这些步骤保存到数据挖掘的工作流中。之后就可以用它们读入数据,做各种处理,然后给出预测结果。
from sklearn.pipeline import Pipeline scaling_pipeline = Pipeline([('scale', MinMaxScaler()), ('predict', KNeighborsClassifier())]) scores = cross_val_score(scaling_pipeline, x_broken, y, scoring = 'accuracy')