




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上項目1:基于sklearn的數(shù)據(jù)分類挖掘一、項目任務(wù)熟悉sklearn數(shù)據(jù)挖掘的基本功能。進行用樸素貝葉斯、KNN、決策樹C4.5、SVM算法進行數(shù)據(jù)分類分析。二、項目環(huán)境及條件Ø sklearn-0.18.0Ø python-2.7.13Ø numpy-1.11.3+mkl-cp27-cp27m-win_amd64Ø scipy-0.19.0-cp27-cp27m-win_amd64Ø matplotlib-1.5.3-cp27-cp27m-win_amd64三、實驗數(shù)據(jù)Iris數(shù)據(jù)集Iris數(shù)據(jù)集是常用的分類實驗數(shù)
2、據(jù)集,由Fisher, 1936收集整理。Iris也稱鳶尾花卉數(shù)據(jù)集,是一類多重變量分析的數(shù)據(jù)集。數(shù)據(jù)集包含150個數(shù)據(jù)集,分為3類,每類50個數(shù)據(jù),每個數(shù)據(jù)包含4個屬性。可通過花萼長度,花萼寬度,花瓣長度,花瓣寬度4個屬性預(yù)測鳶尾花卉屬于(Setosa,Versicolour,Virginica)三個種類中的哪一類。Digits數(shù)據(jù)集美國著名數(shù)據(jù)集NIST的子集,模式識別常用實驗數(shù)據(jù)集,圖像屬于灰度圖像。分辨率為8x8四、項目內(nèi)容及過程1.讀取數(shù)據(jù)集從sklearn中讀取iris和digits數(shù)據(jù)集并測試打印from sklearn import datasetsiris = dataset
3、s.load_iris()digits = datasets.load_digits()print 'iris:',iris.data,'ndigits:',digits.data打印的數(shù)據(jù)集存在numpy.ndarray中,ndarray會自動省略較長矩陣的中間部分。Iris數(shù)據(jù)集的樣本數(shù)據(jù)為其花瓣的各項屬性Digits數(shù)據(jù)集的樣本數(shù)據(jù)為手寫數(shù)字圖像的像素值2.劃分數(shù)據(jù)集引入sklearn的model_selection使用train_test_split劃分digits數(shù)據(jù)集,訓(xùn)練集和測試集比例為8:2from sklearn.model_selection
4、 import train_test_splitx_train,x_test,y_train,y_test=train_test_split(digits.data,digits.target,test_size=0.2)print 'x_train:',x_train,'nx_test:',x_test,'ny_train:',y_train,'ny_test:',y_test3.使用KNN和SVM對digits測試集分類引用sklearn的svm.SVC和neighbors.KNeighborsClassifier模塊調(diào)用算法
5、,使用classification_report查看預(yù)測結(jié)果的準確率和召回率from sklearn.metrics import classification_reportfrom sklearn import neighborsclf = neighbors.KNeighborsClassifier()clf.fit(x_train,y_train)y_pred=clf.predict(x_test)print classification_report(y_test, y_pred)from sklearn.svm import SVCclf = SVC()clf.fit(x_train
6、,y_train)y_pred=clf.predict(x_test)print classification_report(y_test, y_pred)KNN的預(yù)測結(jié)果:所有數(shù)字的預(yù)測正確率幾乎達到了100%SVM的預(yù)測結(jié)果:對部分數(shù)字的預(yù)測誤差較大,基本情況不如KNN考慮SVM分類器的特性,在分類前對特征值進行標準化后再分類:from sklearn import preprocessingmin_max_scaler = preprocessing.MinMaxScaler()x_train = min_max_scaler.fit_transform(x_train)x_test =
7、 min_max_scaler.fit_transform(x_test)標準化數(shù)據(jù)后SVM的預(yù)測結(jié)果達到了KNN的準度:4.使用貝葉斯和決策樹對iris數(shù)據(jù)集分類from sklearn.model_selection import train_test_splitx_train,x_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.4)from sklearn.metrics import classification_reportfrom sklearn import naive_bayesclf
8、 = naive_bayes.GaussianNB()clf.fit(x_train,y_train)y_pred=clf.predict(x_test)print classification_report(y_test, y_pred)from sklearn import treeclf = tree.DecisionTreeClassifier()clf.fit(x_train,y_train)y_pred=clf.predict(x_test)print classification_report(y_test, y_pred)決策樹和貝葉斯都有較好的分類效果五、實驗結(jié)果分析為什么用
9、svm和knn處理digits數(shù)據(jù)集,用tree和bayes處理iris數(shù)據(jù)集,這是一個經(jīng)驗問題。我們都知道digits數(shù)據(jù)集的每一個特征就是像素點的像素值,他們的維度都是在0255以內(nèi);像素點之間的維度完全一致,互相沒有優(yōu)先級。這種情況下使用線性分類器如KNN、SVM、Logistic會有更好的效果。而iris數(shù)據(jù)集雖然長度和寬度維度差不多相同,但是兩者之間有優(yōu)先級的區(qū)分,按照人腦分類的思維方式可能是先按照長度判斷再按照寬度等思維方式,很接近決策樹的算法原理,貝葉斯同樣。所以概率性分類器有更好的效果。實際情況也是使用SVM預(yù)測iris的結(jié)果和Bayes預(yù)測digits的結(jié)果不甚理想(雖然也有
10、很高的準度了)。當然,通過調(diào)整分類器的參數(shù),能使各個分類器的預(yù)測結(jié)果都達到滿意結(jié)果,綜合表現(xiàn)還是KNN更搶眼,能在各種數(shù)據(jù)集面前都有出色表現(xiàn),但KNN在訓(xùn)練樣本數(shù)量達到一定程度后,有超高的計算復(fù)雜度。所以面對實際情況,選用什么分類器,如何調(diào)節(jié)參數(shù)都是值得深思的問題。項目2:基于sklearn的數(shù)據(jù)聚類挖掘一、實驗任務(wù)熟悉sklearn數(shù)據(jù)挖掘平臺的基本功能。用K-Means進行數(shù)據(jù)聚類分析。二、實驗環(huán)境及條件Ø sklearn-0.18.0Ø python-2.7.13Ø matplotlib-1.5.3-cp27-cp27m-win_amd64Ø nu
11、mpy-1.11.3+mkl-cp27-cp27m-win_amd64Ø scipy-0.19.0-cp27-cp27m-win_amd64三、實驗數(shù)據(jù)隨機產(chǎn)生的100個坐標點,范圍為0,100四、實驗內(nèi)容及過程1.隨機產(chǎn)生坐標值產(chǎn)生的隨機值在0-100,因為sklearn的k-means模塊要求輸入的坐標形式為x0,y0,x,y,xn,yn,而實際產(chǎn)生的是x0,xn和y0,yn,所以還需要對坐標進行一次轉(zhuǎn)換from sklearn.cluster import KMeansimport numpy as npimport matplotlib.pyplot as pltimport
12、 randomdef create_coordinate():x,y=,for i in range(100):x.append(random.randint(0,100)y.append(random.randint(0,100)return x,yx,y=create_coordinate()old_coordinate=xi,yi for i in range(100)coordinate=np.array(old_coordinate)print old_coordinate產(chǎn)生的隨機坐標值:2.創(chuàng)建做圖函數(shù)使用k-means對坐標點分為3類,對0類標為紅色,1類標為綠色,2類標為藍色
13、。并將三類坐標的中心點以*表示在圖中def create_chart(x,y,label,center):x_0=xi for i in range(len(x) if labeli=0x_1=xi for i in range(len(x) if labeli=1x_2=xi for i in range(len(x) if labeli=2y_0=yi for i in range(len(y) if labeli=0y_1=yi for i in range(len(y) if labeli=1y_2=yi for i in range(len(y) if labeli=2plt.sca
14、tter(x_0,y_0,c='r')plt.scatter(x_1,y_1,c='g')plt.scatter(x_2,y_2,c='b')plt.scatter(i0 for i in center,i1 for i in center,c='m',s=600,marker='*')plt.grid()plt.show()3.使用k-means聚類并預(yù)測新增點的類別kmeans = KMeans(n_clusters=3, random_state=0).fit(coordinate)print kmeans.
15、predict(0, 0, 50,50,100, 100)create_chart(x,y,kmeans.labels_,kmeans.cluster_centers_)對新點的預(yù)測:2 2 1點的聚類情況:五、實驗結(jié)果分析這次試驗,使用sklearn的k-means對100個坐標點聚類。K-means因為其本身算法的原因,點數(shù)越多聚類速度越慢。所以在20個點和100個點的聚類時間上有很大差距。聚類問題不同于分類問題,沒有明確的預(yù)測和分類結(jié)果,聚類時對數(shù)據(jù)的邊界可能會各不相同,聚類問題在用戶畫像/個性化推薦等應(yīng)用上有較好地發(fā)揮。實驗3:在Python程序中引用sklearn一、實驗任務(wù)用Pyt
16、hon開發(fā)一個綜合部分挖掘算法的演示程序,核心算法來自sklearn類庫。演示程序界面友好。二、實驗環(huán)境及條件Ø sklearn-0.18.0Ø python-2.7.13Ø matplotlib-1.5.3-cp27-cp27m-win_amd64Ø numpy-1.11.3+mkl-cp27-cp27m-win_amd64Ø scipy-0.19.0-cp27-cp27m-win_amd64Ø PyQt4三、實驗數(shù)據(jù)Iris數(shù)據(jù)集Iris數(shù)據(jù)集是常用的分類實驗數(shù)據(jù)集,由Fisher, 1936收集整理。Iris也稱鳶尾花卉數(shù)據(jù)集,
17、是一類多重變量分析的數(shù)據(jù)集。數(shù)據(jù)集包含150個數(shù)據(jù)集,分為3類,每類50個數(shù)據(jù),每個數(shù)據(jù)包含4個屬性??赏ㄟ^花萼長度,花萼寬度,花瓣長度,花瓣寬度4個屬性預(yù)測鳶尾花卉屬于(Setosa,Versicolour,Virginica)三個種類中的哪一類。Digits數(shù)據(jù)集美國著名數(shù)據(jù)集NIST的子集,模式識別常用實驗數(shù)據(jù)集,圖像屬于灰度圖像。分辨率為8x8四、實驗內(nèi)容及過程使用PyQt4創(chuàng)建windows窗體,并提供可選擇的分類方式:Ø SVM支持向量機算法Ø KNNK鄰近算法Ø Bayes樸素貝葉斯算法Ø TreeC4.5決策樹算法Ø Logis
18、ticLogistic回歸算法可選擇的歸一化方式:Ø Standard-標準歸一化Ø MaxAndMin-最大最小歸一化可選擇的驗證比例Ø 可選范圍(0,1)可調(diào)節(jié)的分類器參數(shù)Ø 根據(jù)具體分類器設(shè)置參數(shù)部分代碼Ø 確認按鈕響應(yīng)事件def OKPushButton_OnClick(self):data_name = self.data_comboBox.currentText()classify_name = self.classify_comboBox.currentText()normalization_name = self.normali
19、zation_comboBox.currentText()parameter_string = self.parameter_text.toPlainText()validation_string = self.validation_text.text()y_test,y_pred=self.load_datasets_and_classify(data_name,classify_name,normalization_name,parameter_string,validation_string)from sklearn.metrics import classification_repor
20、tself.descTextEdit.setText(classification_report(y_test, y_pred)Ø 分類算法執(zhí)行def load_datasets_and_classify(self,data_name,classify_name,normalization_name,parameter_string,validation_string):from sklearn import datasetsfrom sklearn.model_selection import train_test_splitrate=0.2if validation_string !='':try:rate=float(validation_string)except:self.alert_info(u"輸入的數(shù)值必須是01的浮點數(shù)")returnif data_name = 'iris':origin_data=datasets.load_iris()elif data_name = 'digits':origin_data=datasets.load_digits()else:self.alert_in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年云南省安全員C證考試(專職安全員)題庫及答案
- 上海抵押貸款合同范本
- 醫(yī)院被服洗滌合同范本
- 假山工程擔保合同范本
- 代書遺囑委托書
- 二年級口算題總匯100道
- 勞務(wù)合同范本 2014
- 單方投資合同范本
- 北京供暖委托運營合同范本
- 廠家食品合作合同范本
- 項目部崗位廉潔風險情景教育案例
- 小學英語-What a dream教學設(shè)計學情分析教材分析課后反思
- 消防栓定期檢查記錄表
- 員工面試登記表通用模板
- 單位(個人或集體)約談表
- 水質(zhì)檢測實驗室儀器配置
- 犯罪學全套教學課件
- 兒行千里母擔憂(京劇)課件
- 總匯-ssat2400必背類比關(guān)系總結(jié)
- 球墨鑄鐵管道施工的學習課件
- 學習2022《工業(yè)和信息化領(lǐng)域數(shù)據(jù)安全管理辦法(試行)》重點內(nèi)容PPT課件(帶內(nèi)容)
評論
0/150
提交評論