1. 程式人生 > >資料探勘之產品預測任務

資料探勘之產品預測任務

一、實驗目的

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

二、實驗工具

1. Anaconda

2. sklearn

3. Pandas

三、實驗內容

產品預測任務

1.任務描述

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

1) 資料描述

已分類的訓練樣本提供在比賽題目下 Excel 附件中的 cck_train 表中,訓練樣本的詳情如下,其中,表格中的每條記錄包含 7 個欄位。


未分類的驗證樣本提供在比賽題目下 Excel 附件中的 cck_test 表中。驗證樣本的資訊如下,表格中的每條記錄包含 5 個已知屬性欄位,其中表中屬性內容與 cck_表 略有不同,具體屬性欄位的含義請參考下節描述。

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)為每位參與者的模型評價得分,各位參與者模型得分由高到低依次排列。

四、實驗要求

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

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

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

使用sklearn的KNeighborsClassifier()函式進行knn預測。

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

1.匯入excel中的資料

2.將資料劃分為X_train 和結果Product:y_train



4.宣告knn訓練模型


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

使用程式碼:

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

報錯:
經測試,Enterprise被識別成float,但事實上資料中夾雜著ABPE等字元
於是進行了型別轉換處理
編碼後的資料效果如下圖:

最終得出預測結果:

匯入給定的測試樣本,並對前20個數據進行預測判斷Product

knn.predict得到預測結果

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


相關推薦

資料產品預測任務

一、實驗目的 1. 學會利用決策樹、KNN與Navie Bayes完成預測任務 二、實驗工具 1. Anaconda 2. sklearn 3. Pandas 三、實驗內容 產品預測任務 1.任務描述 本次比賽主要是一個對進出口交易記錄資料進行產品判別的任務。本次任務有 19046 條資料記

資料資料處理——SVM神經網路的資料分類預測-義大利葡萄酒種類識別

************* 使用的工具:Matlab 分類器:SVM ************* 1、案例背景: 在葡萄酒製造業中,對於葡萄酒的分類具有很大意義,因為這涉及到不同種類的葡萄酒的存放以及出售價格,採用SVM做為分類器可以有效預測相關葡萄酒的種類,從UCI資料

基於微軟案例資料結果預算+下期彩票預測

本篇我們將根據上一篇的預測過程詳細的給出預測結果值,形成一份可供具體參考的資料明細表。 應用場景介紹 作為Microsoft時序演算法的應用場景,在上一篇我們已經詳細介紹了,本篇就不再贅述,總結一下就是凡事要應用時間匯流排為依據,根據以往歷史事例記錄推測以後將要發生的結果值

資料售房資料分析1

最近再做一批關於售房的資料,感覺自己陷入一個死衚衕裡: 該批資料是儲存再postgresql裡面,是從某售房網站上爬下來的,以資料庫中的一列欄位作為儲存資料,該列欄位是以json的資料形式儲存的,這裡跟我打開了一個新大門,資料庫能儲存json資料格式的資料,而且postgresql還有一套專門的

資料十大經典演算法

國際權威的學術組織the IEEE International Conference on Data Mining (ICDM) 2006年12月評選出了資料探勘領域的十大經典演算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, k

資料FP_Tree演算法實現

轉自http://www.cnblogs.com/zhangchaoyang/articles/2198946.html (格式複製之後有變化,建議直接點連結去部落格園看原文) python程式碼見https://github.com/yantijin/Lean_DataMining F

資料AdaBoost裝袋提升演算法

python3程式碼實現在https://github.com/yantijin/Lean_DataMining上,時間匆忙,敬請之處錯誤之處,謝謝! 以下內容轉自:https://blog.csdn.net/androidlushangderen/article/details/4363511

資料關聯規則Apriori演算法

一、Aoriori原始演算法: 頻繁挖掘模式與關聯規則 關聯規則兩個基本的指標(假設有事務A和事務B)   1、支援度(suport):計算公式如下        2、置信度(confidence):    關聯規則的挖掘過程:   1、設定最小支援度閾值,找出所有的頻繁項集且每個出現的次數要

零基礎入門大資料spark中的幾種map

今天再來說一下spark裡面的幾種map方法。前面的文章介紹過單純的map,但是spark還有幾種map值得對比一下,主要是下面幾種: map:普通的map flatMap:在普通map的基礎上多了一個操作,扁平化操作; mapPartitions:相對於分割槽P

零基礎入門大資料spark的rdd

本節簡單介紹一下spark下的基本資料結構RDD,方便理解後續的更多操作。 那麼第一個問題,什麼是rdd。我們知道,大資料一般儲存在分散式叢集裡面,那麼你在對其進行處理的時候總得把它讀出來吧,讀出來後總得把它存成某種格式的檔案吧,就好比程式語言裡面的,這個資料是陣列,那麼你可以以陣列

零基礎入門大資料reduce方法

上節介紹過大資料裡面(以spark為例)最為基礎典型的操作:map方法,map方法直白的理解就是一個分散式接受處理函式的方法,形式如map(fun),map方法本身不做處理,沒有map方法,裡面的函式fun就是一個單機的處理函式,有了map,相當於就把這個函式複製到多臺機器上,每臺機器同

資料倉庫與資料Apriori演算法例項

最近剛上了資料探勘這門課,老師講了兩個演算法,即Apriori演算法和FP-growth演算法,然後佈置了上機作業,挖掘一個有8萬行的記錄的retail.dat,需要從中找出強規則,即同時滿足最小支援度和最小置信度的規則。 Apriori演算法 在這裡給出一個實現找出所有頻繁模式集的

資料Apriori演算法

python3程式碼如下: #coding = utf-8 import numpy #from python_util import fileread """ 程式所需部分: 建立初始的候選集 根據Lk產生Lk+1

資料方差分析實驗

本部落格根據非常好的excel資料而編寫,使用python語言操作,預計使用一週的時間更新完成。需要《非常好的excel資料》word文件,歡迎發郵件給[email protected],免費發放。這篇部落格對應《非常好的excel資料》裡的第5章節。 1.1 單因素方差分析

資料擬合優度檢驗

本部落格根據非常好的excel資料而編寫,使用python語言操作,預計使用一週的時間更新完成。需要《非常好的excel資料》word文件,歡迎發郵件給[email protected],免費發放。這篇部落格對應《非常好的excel資料》裡的第4章節。 自由度v=(行數-1)(

資料Scala零基礎學習(一)

第5章 函式5.1函式程式程式碼:object section5_1 extends App { // def gcd(x:Int,y:Int):Int=if(x%y==0) y else gcd(

資料關聯分析一(基本概念)

許多商業企業運營中的大量資料,通常稱為購物籃事務(market basket transaction)。表中每一行對應一個事務,包含一個唯一標識TID。 利用關聯分析的方法可以發現聯絡如關聯規則或頻繁項集。 關聯分析需要處理的關鍵問題: 1. 從大型事

資料無監督學習篇

在單鏈接(或單鏈)層次聚類中,兩個聚類之間的距離是兩個聚類中最近的兩個資料點(兩個資料分別來自兩上不同的聚類)之間的距離。即單鏈接聚類演算法在每一步合併那些最近元素具有最小的聚類,即最短最近資料點的兩上聚類。

資料挖掘頻繁模式的基本概念及方法

摘自《DATA MINING:Concepts and Techniques》一書,以及個人理解,主要為自己鞏固和總結,如有紕漏和出錯的地方,還請指出。此書第六章開頭指出    頻繁模式(frequent pattern),是指頻繁地出現在資料集中的模式,譬如項集,子序列或子

資料關聯規則挖掘Apriori演算法實現

演算法細節見論文:Fast Algorithm for Mining Association Rules 控制檯版本C++程式碼如下: #include <iostream> #include <sstream> #include <fs