




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第6章決策樹預測NBA獲勝球隊2025/1/4
NBA比賽結果預測31加載數(shù)據(jù)集4決策樹應用2隨機森林目錄NBA比賽通常是難分勝負,有些時候會在最后一刻才會決出勝負,因此,預測哪支球隊最后獲勝會非常困難。通常你看好的球隊恰恰在這場比賽中就會輸給比它弱的球隊。許多預測比賽勝負的研究往往會有準確率上限,根據(jù)不同的比賽,準確率一般會在70%~80%之間,體育賽事的預測一般使用數(shù)據(jù)挖掘和統(tǒng)計學習方法。在此,我們將用到?jīng)Q策樹和隨機森林來預測誰是某場NBA比賽的獲勝隊,決策樹有兩個主要的優(yōu)勢:(1)決策過程易于機器和人類理解(2)能處理不同類型的特征案例背景我們將使用NBA2015-2016賽季的比賽數(shù)據(jù)。http://Basketball-R網(wǎng)站提供了NBA及其他賽事的大量資料和統(tǒng)計數(shù)據(jù)??梢酝ㄟ^第三章介紹的網(wǎng)絡爬蟲知識從指定網(wǎng)站中爬取比賽數(shù)據(jù)。通過爬蟲采集數(shù)據(jù)的過程可以分為兩個過程。(1)第一個過程是根據(jù)NBA比賽情況及網(wǎng)站URL變化情況獲取帶有比賽數(shù)據(jù)的頁面,并在此基礎上爬取整個賽季中每個月份的比賽數(shù)據(jù),最后將其匯總輸出。加載數(shù)據(jù)集-網(wǎng)絡爬蟲采集數(shù)據(jù)我們將使用NBA2015-2016賽季的比賽數(shù)據(jù)。http://Basketball-R網(wǎng)站提供了NBA及其他賽事的大量資料和統(tǒng)計數(shù)據(jù)??梢酝ㄟ^第三章介紹的網(wǎng)絡爬蟲知識從指定網(wǎng)站中爬取比賽數(shù)據(jù)。通過爬蟲采集數(shù)據(jù)的過程可以分為兩個過程。(1)第一個過程是根據(jù)NBA比賽情況及網(wǎng)站URL變化情況獲取帶有比賽數(shù)據(jù)的頁面,并在此基礎上爬取整個賽季中每個月份的比賽數(shù)據(jù),最后將其匯總輸出。(具體數(shù)據(jù)見basketball.csv,具體代碼見C6_Spideri.py)加載數(shù)據(jù)集(2)爬取到的數(shù)據(jù)保存為CSV格式,CSV為簡單的文本格式文件,每行為一條用逗號分隔的數(shù)據(jù)(文件格式的名字就是這么來的)。在記事本里輸入內(nèi)容,保存時使用.csv擴展名,也能生成CSV文件。只要能閱讀文本文件的編輯器,就能打開CSV文件,也可以用Excel把它作為電子表格打開。(3)第二個過程是獲取standing,這是為了在預測比賽結果的過程中加入歷史比賽數(shù)據(jù),以求后續(xù)獲得更好的預測效果。(4)由于網(wǎng)站自身的原因,爬取數(shù)據(jù)過程相對緩慢,在具體爬蟲的過程可以自行選擇感興趣的網(wǎng)站修改爬蟲代碼完成爬蟲任務。爬取到的數(shù)據(jù)保存為CSV格式,包含了2015-2016賽季NBA常規(guī)賽季的1320場比賽。加載數(shù)據(jù)集從上面的輸出結果中,我們發(fā)現(xiàn)了以下幾個問題。日期是字符串格式,而不是日期對象。第一行沒有數(shù)據(jù)。從視覺上檢查結果,發(fā)現(xiàn)表頭不完整或者不正確。這些問題來自數(shù)據(jù)本身,在具體操作的過程中有些同學會直接修改數(shù)據(jù)表,不過這樣工作量非常大,并且不可復原,落下步驟或是弄錯哪一步,就會造成沒法還原之前的結果,因此采用pandas對原始數(shù)據(jù)進行預處理。pandas.read_csv函數(shù)提供了可用來修復數(shù)據(jù)的參數(shù),導入文件時指定這幾個參數(shù)就好。數(shù)據(jù)清洗我們還可以創(chuàng)建一些特征用于數(shù)據(jù)挖掘。有時候,只要把原始數(shù)據(jù)丟給分類器就行了,但通常需要先抽取數(shù)值型或類別型特征。創(chuàng)建兩個能幫助我們進行預測的特征,分別是這兩支隊伍上場比賽的勝負情況。贏得上場比賽,大致可以說明該球隊水平較高。遍歷訪問每一行數(shù)據(jù),記錄獲勝球隊。當?shù)竭_一行新數(shù)據(jù)時,分別查看該行數(shù)據(jù)中的兩支球隊在各自的上一場比賽中有沒有獲勝的。找出主場獲勝的球隊:data['HomeWin']=data['VisitorPts']<data['HomePts']我們把主場獲勝球隊的數(shù)據(jù)保存到NumPy數(shù)組里,稍后要用scikit-learn分類器對其進行處理。當前pandas和scikit-learn并沒有進行整合,但是借助NumPy數(shù)組,它們配合地很好。我們用pandas抽取特征后再用scikit-learn抽取特征具體的值。提取新特征
NBA比賽結果預測31加載數(shù)據(jù)集4決策樹應用2隨機森林目錄決策樹應用小案例首先是訓練階段,用訓練數(shù)據(jù)構造一棵樹。在前面介紹分類與預測算法的過程中已有詳細介紹,相反,決策樹跟大多數(shù)機器學習方法類是一種積極學習的算法,在訓練階段完成模型的創(chuàng)建。其次是預測階段,用訓練好的決策樹預測新數(shù)據(jù)的類別。圖例["israining","veryhot"]的預測結果為“Bad”(壞天氣)。決策樹應用介紹創(chuàng)建決策樹的算法有多種,大都通過迭代生成一棵樹。它們從根節(jié)點開始,選取最佳特征,用于第一個決策,到達下一個節(jié)點,選擇下一個最佳特征,以此類推。當發(fā)現(xiàn)無法從增加樹的層級中獲得更多信息時,算法啟動退出機制。scikit-learn庫實現(xiàn)了分類回歸樹(ClassificationandRegressionTrees,CART)算法并將其作為生成決策樹的默認算法,它支持連續(xù)型特征和類別型特征。決策樹中創(chuàng)建決策的標準及參數(shù)退出準則是決策樹的一個重要特性。構建決策樹時,最后幾步?jīng)Q策僅依賴于少數(shù)個體,隨意性大。使用特定節(jié)點作出推測容易導致過擬合訓練數(shù)據(jù),而使用退出準則可以防止決策精度過高。除了設定退出準則外,也可以先創(chuàng)建一棵完整的樹,再對其進行修剪,去掉對整個過程沒有提供太多信息的節(jié)點。這個過程叫作剪枝(pruning)。scikit-learn庫中實現(xiàn)的決策樹算法給出了退出方法,使用下面這兩個選項就可以達到目的。min_samples_split:指定創(chuàng)建一個新節(jié)點至少需要的個體數(shù)量。min_samples_leaf:指定為了保留節(jié)點,每個節(jié)點至少應該包含的個體數(shù)量。第一個參數(shù)控制著決策節(jié)點的創(chuàng)建,第二個參數(shù)決定著決策節(jié)點能否被保留。決策樹中的參數(shù)決策樹的另一個參數(shù)是創(chuàng)建決策的標準,常用的有以下兩個。基尼不純度(Giniimpurity):用于衡量決策節(jié)點錯誤預測新個體類別的比例。信息增益(Informationgain):用信息論中的熵來表示決策節(jié)點提供多少新信息。使用決策樹決策樹1從scikit-learn庫中導入DecisionTreeClassifier類,用它創(chuàng)建決策樹。fromsklearn.treeimportDecisionTreeClassifierclf=DecisionTreeClassifier(random_state=14)說明:我們再次設定random_state的值為14。本書中凡是用到random_state的地方,我們都用該值。使用相同的隨機種子(randomseed),能夠保證幾次實驗結果相同。然而,在以后自己的實驗中,為保證算法的性能不是與特定的隨機狀態(tài)值相關,在前后幾次實驗中,需使用不同的隨機狀態(tài)。使用決策樹決策樹2現(xiàn)在我們從pandas數(shù)據(jù)框中抽取數(shù)據(jù),以便用scikit-learn分類器處理。指定需要的列,使用數(shù)據(jù)框的values屬性,就能獲取到每支球隊的上一場比賽結果。X_previousWins=data[['HomeLastWin','VisitorLastWin']].values對于決策樹算法來說,它與其它分類算法一樣都可以看出是一種估計器,因此它同樣有fit和predict方法。我們?nèi)匀豢梢杂胏ross_val_score方法來求得交叉檢驗的平均正確率:scores=cross_val_score(clf,X_previousWins,y_true,scoring='accuracy')mean_score=np.mean(scores)*100print('theaccuracyis%0.2f'%mean_score+'%')正確率為59.42%,我們應該可以做得更好。從數(shù)據(jù)集中構建有效特征(FeatureEngineering,特征工程)是數(shù)據(jù)挖掘的難點所在,好的特征直接關系到結果的正確率——甚至比選擇合適的算法更重要!
NBA比賽結果預測31加載數(shù)據(jù)集4決策樹應用2隨機森林目錄NBA比賽預測結果嘗試使用不同的特征,我們應該能做得更好。cross_val_score方法可用來測試模型的正確率。有了它,我們就可以嘗試其他特征的分類效果。好多潛在特征都可以拿來用。就我們這個挖掘任務而言,具體怎么選擇特征呢?我們嘗試問自己以下兩個問題。一般而言,什么樣的球隊水平更高?兩支球隊上一次相遇時,誰是贏家?我們還將加入新球隊的數(shù)據(jù),以檢測算法是否能得到一個用來判斷不同球隊比賽情況的模型。NBA預測結果對于上面第一個特征,我們創(chuàng)建一個叫作“主場隊是否通常比對手水平高”的特征,并使用2015賽季的戰(zhàn)績作為特征取值來源。如果一支球隊在2015賽季排名在對手前面,我們就認為它的水平更高,本章在數(shù)據(jù)爬取的過程中已經(jīng)獲取2015賽季戰(zhàn)績數(shù)據(jù),此處直接使用即可。standings_filename=r'standings.csv'standings=pd.read_csv(standings_filename)print(data.loc[:4])NBA比賽預測結果接接下來,創(chuàng)建一個新特征,創(chuàng)建過程與上個特征類似。遍歷每一行,查找主場隊和客場隊兩支球隊的戰(zhàn)績。代碼如下:data['HomeTeamRanksHigher']=0forindex,rowindata.iterrows():home_team=row['HomeTeam']visitor_team=row['VisitorTeam']現(xiàn)在就能得到兩支球隊的排名,比較它們的排名,更新特征值。#比較排名,更新特征值home_rank=standings[standings['Team']==home_team]['Rk'].values[0]visitor_rank=standings[standings['Team']==visitor_team]['Rk'].values[0]row['HomeTeamRanksHigher']=int(home_rank>visitor_rank)data.loc[index]=rowNBA比賽預測結果接下來,我們來統(tǒng)計兩支球隊上場比賽的情況,作為另一個特征。雖然球隊排名有助于預測(排名靠前的勝算更大),但有時排名靠后的球隊反而能戰(zhàn)勝排名靠前的。原因有很多,例如,排名靠后的球隊某些打法恰好能擊中強者的軟肋。該特征的創(chuàng)建方法與前一個特征類似,首先創(chuàng)建字典,保存上場比賽的獲勝隊伍,在數(shù)據(jù)框中建立新特征。代碼如下:last_match_winner=defaultdict(int)data['HomeTeamWonLast']=0然后,遍歷每條數(shù)據(jù),取到每場賽事的兩支參賽隊伍。forindex,rowindata.iterrows():home_team=row['HomeTeam']visitor_team=row['VisitorTeam']NBA比賽預測結果不用考慮哪支球隊是主場作戰(zhàn),我們想看一下這兩支球隊在上一場比賽中到底誰是贏家。因此,按照英文字母表順序對球隊名字進行排序,確保兩支球隊無論主客場作戰(zhàn),都使用相同的鍵。teams=tuple(sorted([home_team,visitor_team]))通過查找字典,找到兩支球隊上次比賽的贏家。然后,更新數(shù)據(jù)框中這條數(shù)據(jù)。row['HomeTeamWonLast']=1iflast_match_winner[teams]==row['HomeTeam']else0data.loc[index]=row最后,更新last_match_winner字典,值為兩支球隊在當前場次比賽中的勝出者,兩支球隊再相逢時可將其作為參考。winner=row['HomeTeam']ifrow['HomeWin']elserow['VisitorTeam']last_match_winner[teams]=winnerNBA比賽預測結果下面,用新抽取的兩個特征創(chuàng)建數(shù)據(jù)集。觀察不同特征組合的分類效果。代碼如下:X_lastwinner=data[['HomeTeamWonLast','HomeTeamRanksHigher']]clf2=DecisionTreeClassifier(random_state=14)scores=cross_val_score(clf2,X_lastwinner,y_true,scoring='accuracy')mean_score2=np.mean(scores)*100print('theaccuracyis%.2f'%mean_score2+'%')正確率為63.30%。最后我們來看一下,決策樹在訓練數(shù)據(jù)量很大的情況下,能否得到有效的分類模型。我們將會為決策樹添加球隊,以檢測它是否能整合新增的信息。NBA比賽預測結果雖然決策樹能夠處理特征值為類別型的數(shù)據(jù),但scikit-learn庫所實現(xiàn)的決策樹算法要求先對這類特征進行處理。用LabelEncoder轉換器就能把字符串類型的球隊名轉化為整型。代碼如下:fromsklearn.preprocessingimportLabelEncoderencoding=LabelEncoder()將主場球隊名稱轉化為整型:encoding.fit(data['HomeTeam'].values)#將主隊名稱轉換成整型接下來,抽取所有比賽的主客場球隊的球隊名(已轉化為數(shù)值型)并將其組合(在NumPy中叫作“stacking”,是向量組合的意思)起來,形成一個矩陣。代碼如下:home_teams=encoding.transform(data['HomeTeam'].values)visitor_teams=encoding.transform(data['VisitorTeam'].values)X_teams=np.vstack([home_teams,visitor_teams]).TNBA比賽預測結果決策樹可以用這些特征值進行訓練,但DecisionTreeClassifier仍把它們當作連續(xù)型特征。例如,編號從0到16的17支球隊,算法會認為球隊1和2相似,而球隊4和10不同。但其實這沒意義,對于兩支球隊而言,它們要么是同一支球隊,要么不同,沒有中間狀態(tài)!為了消除這種和實際情況不一致的現(xiàn)象,我們可以使用OneHotEncoder轉換器把這些整數(shù)轉換為二進制數(shù)字。每個特征用一個二進制數(shù)字1來表示。例如,LabelEncoder為芝加哥公牛隊分配的數(shù)值是7,那么OneHotEncoder為它分配的二進制數(shù)字的第七位就是1,其余隊伍的第七位就是0。NBA比賽預測結果每個可能的特征值都這樣處理,而數(shù)據(jù)集會變得很大。代碼如下:fromsklearn.preprocessingimportOneHotEncoderonehot=OneHotEncoder()在相同的數(shù)據(jù)集上進行預處理和訓練操作,將結果保存起來備用。X_teams_expanded=onehot.fit_transform(X_teams).todense()接著,像之前那樣在新數(shù)據(jù)集上調(diào)用決策樹分類器。clf3=DecisionTreeClassifier(random_state=14)onehot=OneHotEncoder()scores=cross_val_score(clf3,X_teams_expanded,y_true,scoring='accuracy')mean_score3=np.mean(scores)*100print('theaccuracyis%.2f'%mean_score3+'%')正確率為62.77%,比基準值要高,但是沒有之前的效果好。原因可能在于特征數(shù)增加后,決策樹處理不當。鑒于此,我們嘗試修改算法,看看會不會起作用。數(shù)據(jù)挖掘有時就是不斷嘗試新算法、使用新特征這樣一個過程。
NBA比賽結果預測31加載數(shù)據(jù)集4決策樹應用2隨機森林目錄隨機森林介紹棵決策樹可以學到很復雜的規(guī)則。然而,很可能會導致過擬合問題——學到的規(guī)則只適用于訓練集。解決方法之一就是調(diào)整決策樹算法,限制它所學到的規(guī)則的數(shù)量。例如,把決策樹的深度限制在三層,只讓它學習從全局角度拆分數(shù)據(jù)集的最佳規(guī)則,不讓它學習適用面很窄的特定規(guī)則,這些規(guī)則會將數(shù)據(jù)集進一步拆分為更加細致的群組。使用這種折中方案得到的決策樹泛化能力強,但整體表現(xiàn)稍弱。為了彌補上述方法的不足,我們可以創(chuàng)建多棵決策樹,用它們分別進行預測,再根據(jù)少數(shù)服從多數(shù)的原則從多個預測結果中選擇最終預測結果。這正是隨機森林的工作原理。但上述過程有兩個問題。一是創(chuàng)建的多棵決策樹在很大程度上是相同的——每次使用相同的輸入,將得到相同的輸出。我們只有一個訓練集,如果嘗試創(chuàng)建多棵決策樹,它們的輸入就可能相同(因此輸出也相同)。解決方法是每次隨機從數(shù)據(jù)集中選取一部分數(shù)據(jù)用作訓練集。這個過程叫作裝袋(bagging)。隨機森林介紹第二個問題是用于前幾個決策節(jié)點的特征非常突出。即使我們隨機選取部分數(shù)據(jù)用作訓練集,創(chuàng)建的決策樹相似性仍舊很大。解決方法是,隨機選取部分特征作為決策依據(jù)。然后,使用隨機從數(shù)據(jù)集中選取的數(shù)據(jù)和(幾乎是)隨機選取的特征,創(chuàng)建多棵決策樹。這就是隨機森林,雖然看上去不是那么直觀,但這種算法在很多數(shù)據(jù)集上效果很好。決策樹的集成效果如何隨機森林算法內(nèi)在的隨機性讓人感覺算法的好壞全靠運氣。然而,通過對多棵幾乎是隨機創(chuàng)建的決策樹的預測結果取均值,就能降低預測結果的不一致性。我們用方差來表示這種不一致。方差是由訓練集的變化引起的。決策樹這類方差大的算法極易受到訓練集變化的影響,從而產(chǎn)生過擬合問題。說明:對比來說,偏誤(bias)是由算法中的假設引起的,而與數(shù)據(jù)集沒有關系。比如,算法錯誤地假定所有特征呈正態(tài)分布,就會導致較高的誤差。通過分析分類器的數(shù)據(jù)模型和實際數(shù)據(jù)集的匹配情況,就能降低偏誤問題的負面影響。對隨機森林中大量決策樹的預測結果取均值,能有效降低方差,這樣得到的預測模型的總體正確率更高。一般而言,決策樹集成做出了如下假設:預測過程的誤差具有隨機性,且因分類器而異。因此,使用由多個模型得到的預測結果的均值,能夠消除隨機誤差的影響——只保留正確的預測結果。本書中會介紹更多用集成方法消除誤差的例子。隨機森林算法的參數(shù)scikit-learn庫中的RandomForestClassifier就是對隨機森林算法的實現(xiàn),它提供了一系列參數(shù)。因為它使用了DecisionTreeClassifier的大量實例,所以它倆的很多參數(shù)是一致的,比如決策標準(基尼不純度/信息增益)、max_features和min_samples_split。當然,集成過程還引入了一些新參數(shù)。n_estimators:用來指定創(chuàng)建決策樹的數(shù)量。該值越高,所花時間越長,正確率(可能)也越高。oob_score:如果設置為真,測試時將不使用訓練模型時用過的數(shù)據(jù)。n_jobs:采用并行計算方法訓練決策樹時所用到的內(nèi)核數(shù)量。scikit-learn庫提供了用于并行計算的Joblib庫。n_jobs指定所用的內(nèi)核數(shù)。默認使用1個內(nèi)核——如果CPU是多核的,可以多用幾個,或者將其設置為1,開動全部馬力。隨機森林算法應用-僅替換分類器scikit-learn庫實現(xiàn)的隨機森林算法使用估計器接口,用交叉檢驗方法調(diào)用它即可,代碼跟之前大同小異。fromsklearn.ensembleimportRandomForestClassifierrf=RandomForestClassifier(random_state=14,n_jobs=-1)rf_scores=cross_val_score(rf,X_teams,y_true,scoring='accuracy')mean_rf_score=np.mean(rf_scores)*100print('therandforestclassifieraccuracyis%.2f'%mean_rf_score+'%')只是靠更換分類器,正確率達到了61.47%。隨機森林算法應用--多參數(shù)應用隨機森林使用不同的特征子集進行學習,應該比普通的決策樹更為高效。下面來看一下多用幾個特征效果如何。X_all=np.hstack([X_homehigher,X_teams])rf_clf2=RandomForestClassifier(random_state=14,n_jobs=-1)rf_scores2=cross_val_score(rf_clf2,X_all,y_true,scoring='accuracy')mean_rf_score2=np.mean(rf_scores2)*100print('theaccuracyis%.2f'%mean_rf_score2+'%')正確率為59.35%——正確率反而降低了。說明在選擇的參數(shù)可能不是最優(yōu)組合隨機森林應用--最佳參數(shù)搜索使用GridSearchCV類搜索最佳參數(shù),代碼如下:fromsklearn.model_selectionimportGridSearchCVparam_grid={'max_features':[2,3,'auto'],'n_estimators':[100,110,120],'criterion':['gini','entropy'],"min_samples_leaf":[2,4,6]}clf=RandomForestClassifier(random_state=14,n_jobs=-1)grid=GridSearchCV(clf,param_grid)grid.fit(X_all,y_true)score=grid.best_score_*100print('theaccuracyis%.2f'%score+'%')這次正確率提升較大,達到了63.53%!隨機森林應用--最佳參數(shù)搜索使用GridSearchCV類搜索最佳參數(shù),代碼如下:fromsklearn.model_selectionimportGridSearchCVparam_grid={'max_features':[2,3,'auto'],'n_estimators':[100,110,120],'criterion':['gini','entropy'],"min_samples_leaf":[2,4,6]}clf=RandomForestClassifier(random_state=14,n_jobs=-1)grid=GridSearchCV(clf,param_grid)grid.fit(X_all,y_true)score=grid.best_score_*100print('theaccuracyis%.2f'%score+'%')這次正確率提升較大,達到了63.53%!隨機森林應用--輸出最佳模型輸出用網(wǎng)格搜索找到的最佳模型,查
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版?zhèn)鶆兆穬攬?zhí)行程序合同文本規(guī)范
- 2025年度債權債務委托轉讓與執(zhí)行專業(yè)服務協(xié)議
- 安全承建合同范本
- 第11課《玩磁鐵》教學設計-2024-2025學年科學一年級上冊青島版
- 2025年棉紗襪子項目投資可行性研究分析報告
- 昆明2025年云南昆明理工大學附屬中學招聘工作人員筆試歷年參考題庫附帶答案詳解-1
- 2025年免燒磚機項目建議書
- 無錫江蘇無錫江陰市教育系統(tǒng)面向普通高校2025屆畢業(yè)生招聘教師105人筆試歷年參考題庫附帶答案詳解
- 2025年退火帶項目可行性研究報告
- 2025至2030年亞麻針織衫項目投資價值分析報告
- 放射診療設備清單
- 供應鏈中的社會責任
- HDPE纏繞-B型結構壁管施工方案
- 汽車發(fā)動機構造與維修中職PPT完整全套教學課件
- 養(yǎng)老院管理-考核考評
- 人美版四年級書法下冊《第6課 豎心旁》教學設計
- 二年級綜合實踐活動課件-我與蔬菜交朋友-全國通(41張)
- 血型與輸血檢驗-臨床輸血(臨床檢驗課件)
- 按摩師培訓協(xié)議書
- 落地式腳手架安全技術措施
- 開心麻花《白蛇前傳》劇本
評論
0/150
提交評論