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

使用numpy读取数据集:
import numpy as np
dataset_filename = 'affinity_dataset.txt'
X = np.loadtxt(dataset_filename ) 


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) * 100

sklearn中的预处理工具叫做转换器(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')




你可能感兴趣的:(python数据挖掘入门与实战——学习笔记(第1、2章))