python数据挖掘入门与实战——学习笔记(第1、2章)

来源:互联网 发布:学生管理系统java代码 编辑:程序博客网 时间:2024/06/06 09:58
使用numpy读取数据集:
import numpy as npdataset_filename = 'affinity_dataset.txt'X = np.loadtxt(dataset_filename ) 


sklearn库的相关概念:

estimator:估计器,用于分类、聚类和回归分析。

transformer:转换器,用于数据预处理和数据转换。

pipeline:流水线,组合数据挖掘流程,便于再次使用。


估计器用于分类任务,主要包括以下两个函数:

fit( ):训练算法,设置内部参数,完成模型的创建。

predict( ):预测测试集类别,并返回一个包含测试集各条数据类别的数组。

import csvwith open(data_filename, 'r') as input_file:    reader = csv.reader(input_file)

训练集与测试集划分

from sklearn.model_selection import train_test_splitx_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_scorescores = cross_val_score(estimator, x, y, scoring = 'accuracy', cv = 10)# 10-fold cross-validationaverage_accuracy = np.mean(scores) * 100

sklearn中的预处理工具叫做转换器(transformer),它接受原始数据集,返回转换后的数据集。除了处理数值型特征,转换器还能用来抽取特征。

标准预处理

from sklearn.preprocessing import MinMaxScaler#0-1标准化x_transformer = MinMaxScaler().fit_transform(x)#类似的还有#为使每条数据各特征的和为1from sklearn.preprocessing import Normalizer#为使各特征的均值为0,方差为1from sklearn.preprocessing import StandardScaler#为将数值型特征二值化,大于阈值为1,反之为0from sklearn.preprocessing import Binarizer

流水线

当处理问题的步骤很多时,流水线可把这些步骤保存到数据挖掘的工作流中。之后就可以用它们读入数据,做各种处理,然后给出预测结果。

from sklearn.pipeline import Pipelinescaling_pipeline = Pipeline([('scale', MinMaxScaler()), ('predict', KNeighborsClassifier())])scores = cross_val_score(scaling_pipeline, x_broken, y, scoring = 'accuracy')




阅读全文
0 0
原创粉丝点击