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')




發佈了25 篇原創文章 · 獲贊 14 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章