《數據挖掘導論》實驗課——實驗5、數據挖掘之產品預測任務

1、實驗目的

1. 學會利用決策樹、KNN與Navie Bayes完成預測任務

2、實驗工具

1. Anaconda

2. sklearn

3. Pandas

3、實驗內容

產品預測任務

1.任務描述

本次比賽主要是一個對進出口交易記錄數據進行產品判別的任務。本次任務有 19046 條數據記錄,其中的 18279 條記錄是有類別屬性的,可做爲分析時的訓練樣本,而任務目標是對 767 條測試數據(即驗證樣本)進行判別(本實驗採用其中的20個樣本)。python

1) 數據描述

已分類的訓練樣本提供在比賽題目下 Excel 附件中的 cck_train 表中,訓練樣本的詳情以下,其中,表格中的每條記錄包含 7 個字段。
image.png
未分類的驗證樣本提供在比賽題目下 Excel 附件中的 cck_test 表中。驗證樣本的信息以下,表格中的每條記錄包含 5 個已知屬性字段,其中表中屬性內容與 cck_表 略有不一樣,具體屬性字段的含義請參考下節描述。
image.png函數

2) 屬性描述

本次任務提供的樣本數據包含 7 個基礎屬性字段,其中有 2 個連續型數值類屬性字段爲:Quality and Price,5 個離散型數值類屬性字段爲:Enterprise(560)、Destination(144)、Origin(131)、Custom(20)、Product(364)。各字段具體含義以下:
Quality:表示每條交易記錄中交易產品的數量,可忽略單位。
Price:表示每條交易記錄中交易產品的平均價格,單位爲元。
Enterprise(560):表示每條交易記錄中交易產品的供應商編碼。
Destination(144):表示每條交易記錄中交易產品的買方國家編碼。
Origin(131): 表示每條交易記錄中交易產品的原產地編碼。
Custom(20): 表示每條交易記錄中交易產品通關海關編碼。
Product(364): 表示每條交易記錄中交易產品的名稱類別。
在驗證樣本中的字段 Product1 ,Product2 ,Product3 爲參賽者進行分類預測後機率由大到小排名
前 3 名的產品類別,字段編碼同 Product 字段。工具

3) 樣本描述

不管是在訓練樣本仍是驗證樣本中,咱們能夠看到,一條交易記錄數據包括 Enterprise(560)、
Destination(144)、Origin(131)、Custom(20)、Product(364)5 個基本屬性字段,括
號內爲每一個屬性下包含的全部特徵值個數,而這些屬性將是咱們學習訓練樣本獲得分類模型的關
鍵,根據一條交易記錄的每一個屬性的特徵值的出現狀況,利用模型對驗證樣本的交易產品類別進
行分類預測。學習

2. 結果評價

在整個驗證樣本預測結果中,參賽者在第 i 條記錄的產品類別預測值與實際類別徹底一致時可得
10 分,即預測結果字段 Product1 爲實際產品類別。產品類別預測值與實際類別不一致時,其中
若是預測結果 Product2 爲實際產品類別的,參賽者在該條驗證樣本可得 2 分;若是預測結果
Product3 爲實際產品類別的,該條驗證樣本可得 1 分,對整個 767 條驗證樣本預測結果加總得
到一個總分 S:(本實驗採用期中的20個樣本)。
取 F=S/P*100%
(其中 P 爲全部驗證樣本類別預測結果均與實際結果相一致的總成績,即 P=7670)爲每位參與者的模型評價得分,各位參與者模型得分由高到低依次排列。測試

4、實驗要求

1. 寫出摘要,即簡要闡述任務的完成狀況。

在處理數據時遇到了些麻煩,使用LabelEncoder對字符型數據進行了編碼轉換得以解決。經過對DataFrame的操做,最終實現了數據的處理,並將預測的產品類別保存在了excel表格中。

2. 給出任務完成方案。能夠用框圖等方式。

使用sklearn的KNeighborsClassifier()函數進行knn預測。編碼

3. 給出具體的任務實現步驟。

1.導入excel中的數據

image.png

2.將數據劃分爲X_train 和結果Product:y_train

image.png
image.png
image.png

4.聲明knn訓練模型

image.png
結果卻出現了類型轉換錯誤:image.png
解決方案:LabelEncoder 用 0 到 n_classes-1 之間的值對標籤進行編碼
image.png
使用代碼:spa

for col in X_test.columns.values: if X_test [ col ] .dtypes=='object': le.fit(X_test[col]) X_test[col]=le.transform(X_test[col])

報錯:image.png
經測試,Enterprise被識別成float,但事實上數據中夾雜着ABPE等字符
因而進行了類型轉換處理image.png
編碼後的數據效果以下圖:
image.png
最終得出預測結果:
image.png
導入給定的測試樣本,並對前20個數據進行預測判斷Product
image.png3d

knn.predict獲得預測結果

image.png

4. 給出任務完成結果,結果寫到實驗報告系統中,用表格的形式。

image.png
image.png

相關文章
相關標籤/搜索