版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
項目1:基于sklearn的數(shù)據(jù)分類挖掘一、項目任務(wù)熟悉sklearn數(shù)據(jù)挖掘的基本功能。進(jìn)行用樸素貝葉斯、KNN、決策樹C4.5、SVM算法進(jìn)行數(shù)據(jù)分類分析。二、項目環(huán)境及條件sklearn-0.18.0python-2.7.13numpy-1.11.3+mkl-cp27-cp27m-win_amd64scipy-0.19.0-cp27-cp27m-win_amd64matplotlib-1.5.3-cp27-cp27m-win_amd64三、實驗數(shù)據(jù)Iris數(shù)據(jù)集Iris數(shù)據(jù)集是常用的分類實驗數(shù)據(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)容及過程讀取數(shù)據(jù)集從sklearn中讀取iris和digits數(shù)據(jù)集并測試打印fromsklearnimportdatasetsiris=datasets.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ù)字圖像的像素值[6.83.25.92.3]![6.73.35.72.5]|[6.73.5.22.3]1[6.32.55.1.9]i[6.53.5.22.]I[e.23.45.42.3]1[5.93.5.11.8]]digits:[[0.9.5?..■J0.9.0J[0-0.0.■■■】10.0.0-][土0.0.■■■】16.9.0-]...1[6?0.1.■■■,S-0.0-][土0.2.■■■,12-0.0-][饑—EB.■■0.t■10.■■■,12.1.0-]]劃分?jǐn)?shù)據(jù)集引入sklearn的model_selection使用train_test_split劃分digits數(shù)據(jù)集,訓(xùn)練集和測試集比例為8:2fromsklearn.model_selectionimporttrain_test_splitx_train,x_test,y_train,y_test=train_test_split(digits.data,digits.target,test_size=0.2)printX_train::x_train,'\nx_test::x_test,'\ny_train::y_train,'\ny_test::y_test
0.2...,,10.1,如][氣y_trainytest:41116463428940473420S46S31733883&57S05024165960122731905399934720579411282668989219546909使用KNN和SVM對digits測試集分類引用sklearn的svm.SVC和neighbors.KNeighborsClassifier模塊調(diào)用算法,使用classification_report查看預(yù)測結(jié)果的準(zhǔn)確率和召回率fromsklearn.metricsimportclassification_reportfromsklearnimportneighborsclf=neighbors.KNeighborsClassifier()clf.fit(x_train,y_train)y_pred=clf.predict(x_test)printclassification_report(y_test,y_pred)fromsklearn.svmimportSVCclf=SVC()clf.fit(x_train,y_train)0.2...,,10.1,如][氣y_trainytest:41116463428940473420S46S31733883&57S05024165960122731905399934720579411282668989219546909precisionrecallfl-scoresupport@1.001.001.003210.951.000.973921.S0l.SSl.SS3231.000.980.994541.001.001.00355。?971.000.99.3561.001.001.0030|70.970.970.9739Si.aaS.95S.973790.970.970.9736avg/totala.99S.990.99360SVM的預(yù)測結(jié)果:對部分?jǐn)?shù)字的預(yù)測誤差較大,基本情況不如KNNprecisionrecallfl-scoresupporta1.000.810.903211.000.380.563921.00e.se0.673231.000.360.524541.003.660.793550.171.000.293561.000.830.913&i71.000.260.413981.000.080.153791.000.580.7436avg/total0.920.530.58360考慮SVM分類器的特性,在分類前對特征值進(jìn)行標(biāo)準(zhǔn)化后再分類:fromsklearnimportpreprocessingmin_max_scaler=preprocessing.MinMaxScaler()x_train=min_max_scaler.fit_transform(x_train)x_test=min_max_scaler.fit_transform(x_test)標(biāo)準(zhǔn)化數(shù)據(jù)后SVM的預(yù)測結(jié)果達(dá)到了KNN的準(zhǔn)度:precisionrecallfl-scoresupport???01.001.001.0034!!119.951.000.9840j20.971.000.9933|||3l.SS0-960.984641.001.001.003451.001.001.0046\\I69.971-000.982$I70.941.000.97348S.94e.89S.923891.000.940.9733avg/total0.98@.980.98366使用貝葉斯和決策樹對iris數(shù)據(jù)集分類fromsklearn.model_selectionimporttrain_test_splitx_train,x_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.4)fromsklearn.metricsimportclassification_reportfromsklearnimportnaive_bayesclf=naive_bayes.GaussianNB()clf.fit(x_train,y_train)y_pred=clf.predict(x_test)printclassification_report(y_test,y_pred)fromsklearnimporttreeclf=tree.DecisionTreeClassifier()clf.fit(x_train,y_train)y_pred=clf.predict(x_test)printclassification_report(y_test,y_pred)決策樹和貝葉斯都有較好的分類效果precisionrecallfl-scoresupport1e1.001.001.0015j10.920.960.9424120.950.900.9321avgftotal0.950.950.9560precisionrecallfl-scoresupport1e1.001.001.0015j10.880.920.9024|20.900.86@.8821avgftotal0.920.920.9263五、實驗結(jié)果分析為什么用svm和knn處理digits數(shù)據(jù)集,用tree和bayes處理iris數(shù)據(jù)集,這是一個經(jīng)驗問題。我們都知道digits數(shù)據(jù)集的每一個特征就是像素點的像素值,他們的維度都是在0~255以內(nèi);像素點之間的維度完全一致,互相沒有優(yōu)先級。這種情況下使用線性分類器如KNN、SVM、Logistic會有更好的效果。而iris數(shù)據(jù)集雖然長度和寬度維度差不多相同,但是兩者之間有優(yōu)先級的區(qū)分,按照人腦分類的思維方式可能是先按照長度判斷再按照寬度等思維方式,很接近決策樹的算法原理,貝葉斯同樣。所以概率性分類器有更好的效果。實際情況也是使用SVM預(yù)測iris的結(jié)果和Bayes預(yù)測digits的結(jié)果不甚理想(雖然也有很高的準(zhǔn)度了)。當(dāng)然,通過調(diào)整分類器的參數(shù),能使各個分類器的預(yù)測結(jié)果都達(dá)到滿意結(jié)果,綜合表現(xiàn)還是KNN更搶眼,能在各種數(shù)據(jù)集面前都有出色表現(xiàn),但KNN在訓(xùn)練樣本數(shù)量達(dá)到一定程度后,有超高的計算復(fù)雜度。所以面對實際情況,選用什么分類器,如何調(diào)節(jié)參數(shù)都是值得深思的問題。項目2:基于sklearn的數(shù)據(jù)聚類挖掘一、實驗任務(wù)熟悉sklearn數(shù)據(jù)挖掘平臺的基本功能。用K-Means進(jìn)行數(shù)據(jù)聚類分析。二、實驗環(huán)境及條件sklearn-0.18.0python-2.7.13matplotlib-1.5.3-cp27-cp27m-win_amd64numpy-1.11.3+mkl-cp27-cp27m-win_amd64scipy-0.19.0-cp27-cp27m-win_amd64三、實驗數(shù)據(jù)隨機(jī)產(chǎn)生的100個坐標(biāo)點,范圍為[0,100]四、實驗內(nèi)容及過程隨機(jī)產(chǎn)生坐標(biāo)值產(chǎn)生的隨機(jī)值在0-100,因為sklearn的k-means模塊要求輸入的坐標(biāo)形式為[[x0,y0],…,[x…,y…],…,[xn,yn]],而實際產(chǎn)生的是[x0,…,xn]和[y0,…,yn],所以還需要對坐標(biāo)進(jìn)行一次轉(zhuǎn)換fromsklearn.clusterimportKMeansimportnumpyasnpimportmatplotlib.pyplotaspltimportrandomdefcreate_coordinate():x,y=[],[]foriinrange(100):append(random.randint(0,100))y.append(random.randint(0,100))returnx,yx,y=create_coordinate()old_coordinate=[[x[i],y[i]]foriinrange(100)]coordinate=np.array(old_coordinate)printold_coordinate產(chǎn)生的隨機(jī)坐標(biāo)值:[[邑19]』[82,21],[27,85],[15,嘰[05,17],[50t3],[94,71]」2』艱L皿日]」[甄34]』[61,96],[95』40]5[88,嘰[23,[91,97],[76,20],[73』33],[75,69],[56,60]f[36,141,[100J20]t[60.48],[61,63],[29,41].[60,100],[8。,95],[94,61][75,1],頃,43],[11,92],[77,100],[&t罰],[86,86],[32,95],[65,7],[98,6],[377&L",5町,[君4],[93,42],[56,52],國,刃,口,有,[1、習(xí),[W,41],[18,87],[31.43],[60.661.[20.741.[37.371.[S3.14].[10.83],[35.251,[9&791.[Slt76],[91』6句』[12,19],[75』39],[40,27],[41,66],[6,25],[56,礎(chǔ)],[51,7],[57,5],[5446]』[74』77],[也91],3,姑],俱53],[跖,4],[24」33],[頃1&],[77』14],[12」341.[35,371.[SB,54],[92,311,[81.42],[15,361,[14,771.[41.56].[S3,591,[21,58],[78,63],皿46],[54.70],[38,33],[99,30]±[66,65],[89±59],[22,7],[96,98],[迅19],[85,11],[93,57],[9%31],[72,8],[83,5時,[15,32],[46,36]]創(chuàng)建做圖函數(shù)使用k-means對坐標(biāo)點分為3類,對0類標(biāo)為紅色,1類標(biāo)為綠色,2類標(biāo)為藍(lán)色。并將三類坐標(biāo)的中心點以‘*’表示在圖中defcreate_chart(x,y,label,center):x_0=[x[i]foriinrange(len(x))iflabel[i]==0]x_1=[x[i]foriinrange(len(x))iflabel[i]==1]x_2=[x[i]foriinrange(len(x))iflabel[i]==2]y_0=[y[i]foriinrange(len(y))iflabel[i]==0]y_1=[y[i]foriinrange(len(y))iflabel[i]==1]y_2=[y[i]foriinrange(len(y))iflabel[i]==2]plt.scatter(x_0,y_0,c='r')plt.scatter(x_1,y_1,c='g')plt.scatter(x_2,y_2,c=b')plt.scatter([i[0]foriincenter],[i[1]foriincenter],c='m:s=600,marker='*‘)plt.grid()plt.show()使用k-means聚類并預(yù)測新增點的類別kmeans=KMeans(n_clusters=3,random_state=0).fit(coordinate)printkmeans.predict([[0,0],[50,50],[100,100]])create_chart(x,y,kmeans.labels_,kmeans.cluster_centers_)對新點的預(yù)測:221
點的聚類情況:五、實驗結(jié)果分析這次試驗,使用sklearn的k-means對100個坐標(biāo)點聚類。K-means因為其本身算法的原因,點數(shù)越多聚類速度越慢。所以在20個點和100個點的聚類時間上有很大差距。聚類問題不同于分類問題,沒有明確的預(yù)測和分類結(jié)果,聚類時對數(shù)據(jù)的邊界可能會各不相同,聚類問題在用戶畫像/個性化推薦等應(yīng)用上有較好地發(fā)揮。實驗3:在Python程序中引用sklearn一、實驗任務(wù)用Python開發(fā)一個綜合部分挖掘算法的演示程序,核心算法來自sklearn類庫。演示程序界面友好。二、實驗環(huán)境及條件sklearn-0.18.0python-2.7.13matplotlib-1.5.3-cp27-cp27m-win_amd64numpy-1.11.3+mkl-cp27-cp27m-win_amd64scipy-0.19.0-cp27-cp27m-win_amd64PyQt4三、實驗數(shù)據(jù)Iris數(shù)據(jù)集Iris數(shù)據(jù)集是常用的分類實驗數(shù)據(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)容及過程使用PyQt4創(chuàng)建windows窗體,并提供可選擇的分類方式:SVM——支持向量機(jī)算法KNN——K鄰近算法Bayes樸素貝葉斯算法?TreeC4.5決策樹算法LogisticLogistic回歸算法可選擇的歸一化方式:?Standard-標(biāo)準(zhǔn)歸一化MaxAndMin-最大最小歸一化可選擇的驗證比例可選范圍一一(0,1)可調(diào)節(jié)的分類器參數(shù)根據(jù)具體分類器設(shè)置參數(shù)部分代碼確認(rèn)按鈕響應(yīng)事件defOKPushButton_OnClick(self):data_name=self.data_comboBox.currentText()classify_name=self.classify_comboBox.currentText()normalization_name=self.normalization_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)fromsklearn.metricsimportclassification_reportself.descTextEdit.setText(classification_report(y_test,y_pred))分類算法執(zhí)行defload_datasets_and_classify\(self,data_name,classify_name,normalization_name,parameter_string,validation_string):fromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_splitrate=0.2ifvalidation_string!=":try:rate=float(validation_string)except:self.alert_info(u輸入的數(shù)值必須是0~7的浮點數(shù))returnifdata_name=='iris':origin_data=datasets.load_iris()elifdata_name=='digits':origin_data=datasets.load_digits()else:self.alert_info(u”未知數(shù)據(jù)集)returndata=origin_data.da
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程建設(shè)項目招標(biāo)合同樣本
- 住宅室內(nèi)設(shè)計施工合同
- 住宅建造合同模板
- 電梯設(shè)備安裝與定期檢修協(xié)議
- 上海市內(nèi)銷商品房出售合同
- 2024年個人土地交易合同模板
- 2024意外傷害賠償協(xié)議書范例
- 影視廣告制作合同
- 合伙協(xié)議與法律規(guī)定沖突時的解決途徑
- 2024年技師合同書
- 大學(xué)動植物檢疫考試(習(xí)題卷7)
- 漢語拼音字母表(A4打印版)
- 幼兒園大班語言《騎著恐龍去上學(xué)》課件
- 無償劃轉(zhuǎn)國有股權(quán)及資產(chǎn)的可行性論證報告(附無償劃轉(zhuǎn)協(xié)議)
- 公務(wù)車司機(jī)年度工作總結(jié) 公務(wù)用車駕駛員個人總結(jié)
- 第二版《高中物理題型筆記》上冊
- 上海市大學(xué)生安全教育(2022級)學(xué)習(xí)通課后章節(jié)答案期末考試題庫2023年
- 蘇軾生平及創(chuàng)作整理
- 柴油發(fā)電機(jī)組應(yīng)急預(yù)案
- 語文《猜猜他是誰》教案
- 繪本:讓誰先吃好呢
評論
0/150
提交評論