版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、教你用R進行數(shù)據(jù)挖掘R是一種廣泛用于數(shù)據(jù)分析和統(tǒng)計計算的強大語言,于上世紀90年代開始發(fā)展起來。得益于全世界眾多 愛好者的無盡努力,大家繼而開發(fā)出了一種基于R但優(yōu)于R基本文本編輯器的R Studio(用戶的界面體驗更好)。也正是由于全世界越來越多的數(shù)據(jù)科學社區(qū)和用戶對R包的慷慨貢獻,讓R語言在全球范圍內(nèi)越來越流行。其中一些R包,例如MASS,SparkR, ggplot2,使數(shù)據(jù)操作,可視化和計算功能越來越強大。我們所說的機器學習和R有什么關(guān)系呢?我對R的第一印象是,它只是一個統(tǒng)計計算的一個軟件。但是后來我發(fā)現(xiàn)R有足夠的能力以一個快速和簡單的方式來實現(xiàn)機器學習算法。這是用R來學習數(shù)據(jù)科學和機器
2、學習的完整教程,讀完本文,你將有使用機器學習的方法來構(gòu)建預(yù)測模型的基本能力。注:這篇文章對于之前沒有很多數(shù)據(jù)科學知識的同學們是特別值得一看的,同時掌握一定的代數(shù)和統(tǒng)計知識將會更有益于您的學習。一、初識R語言1、為什么學R ?事實上,我沒有編程經(jīng)驗,也沒有學過計算機。但是我知道如果要學習數(shù)據(jù)科學,一個人必須學習R或Python作為開始學習的工具。我選擇了前者,同時在學習過程中我發(fā)現(xiàn)了一些使用R的好處: 用R語言編碼非常的簡單; R是一個免費的開源軟件,同時它可以直接在官網(wǎng)上下載; R語言中有來自于全世界愛好者貢獻的即時訪問超過7800個用于不同計算的R包。 R語言還有遍布全世界的學習社區(qū)及論壇,
3、你能很輕松的獲取幫助; 我們憑借R包能夠獲得高性能的計算體驗; 它是,數(shù)據(jù)分析公司高度尋求技能之一。2、如何安裝R / Rstudio?你可以/官網(wǎng)下載并安裝R,需要注意的是R的更新速度很快,下載新版本的體驗會更好一些。另外,我建議你從RStudio開始,因為RStudio的界面編程體驗更好一些。你可以通過 在“支持的平臺上安裝”部分中, 根據(jù)您的操作系統(tǒng)選擇您需要的安裝程序。點擊桌面圖標RStudio,就開始你的編程體驗,如下圖所示:讓我們快速的了解一下R界面 R script::在這個空間里可以寫代碼,要運行這些代碼,只需選擇的代碼行和按下C
4、trl + R即可或者,你可以點擊“運行”按鈕位置在右上角R的腳本。 R console:這個區(qū)域顯示的輸出代碼運行:,同時你可以在控制臺直接寫代碼。但是代碼直接進入R控制臺無法追蹤。 R環(huán)境:這個空間是顯示設(shè)置的外部元素補充道。這里面包括數(shù)據(jù)集、變量向量,還可以檢查R數(shù)據(jù)是否被正確加載。 圖形輸出窗口:這個空間顯示圖表中創(chuàng)建的探索性數(shù)據(jù)分析。不僅僅輸出圖形,您可以選擇包,尋求幫助和嵌入式R的官方文檔。3、如何安裝包?R的計算能力在于它擁有強大的R包。在R中,大多數(shù)數(shù)據(jù)處理任務(wù)可以從兩方面進行,使用R包和基本功能。在本教程中,我們將介紹最方便的和強大的R包。特別的,一般不太建議直接在R軟件的中
5、直接安裝加載包,因為這樣可能會影響你的計算速度。我們建議你直接在R的官網(wǎng)上下載好您所需要的R包,通過本地安裝的形式進行安裝,如下:在軟件中安裝:install.packages(“package name”)本地安裝: install.packages(“E:/r/ggplot2_2.1.0.zip”)4、用R進行基本的統(tǒng)計計算讓我們開始熟悉R的編程環(huán)境及一些基本的計算,在R編程腳本窗口中輸入程序,如下:安裝腳本類似地,您也可以自己嘗試各種組合的計算形式并得到結(jié)果。但是,如果你做了太多的計算,這樣的編程未免過于麻煩,在這種情況下,創(chuàng)建變量是一個有用的方法。在R中,您可以創(chuàng)建變量的形式來簡化。創(chuàng)
6、建變量時使用 -或=符號,例如我想創(chuàng)建一個變量x計算7和8的總和,如下:變量總和特別的,一旦我們創(chuàng)建一個變量,你不再直接得到的輸出,此時我們需要輸入對應(yīng)的變量然后再運行結(jié)果。注意,變量可以是字母,字母數(shù)字而不是數(shù)字,數(shù)字是不能創(chuàng)建數(shù)值變量的、二、編程基礎(chǔ)慨念及R包1、R中的數(shù)據(jù)類型和對象 數(shù)據(jù)類型R中數(shù)據(jù)類型包括數(shù)值型,字符型,邏輯型,日期型及缺省值,這個數(shù)據(jù)類型我們在運用數(shù)據(jù)的過程中,大家很容易可以自行了解,在此不做詳細解釋。數(shù)據(jù)概念 數(shù)據(jù)對象R中的數(shù)據(jù)對象主要包括向量(數(shù)字、整數(shù)等)、列表、數(shù)據(jù)框和矩陣。讓具體的進行了解:1向量正如上面提到的,一個向量包含同一個類的對象。但是,你也可以混合
7、不同的類的對象。當對象的不同的類混合在一個列表中,這種效應(yīng)會導(dǎo)致不同類型的對象轉(zhuǎn)換成一個類。例如:數(shù)據(jù)對象注:1、檢查任何對象的類,使用class()函數(shù)的功能。2、轉(zhuǎn)換一個數(shù)據(jù)的類,使用as.()函數(shù)使用函數(shù)類似地,您可以自己嘗試改變其他任何的類向量2列表一個列表是一種包含不同的數(shù)據(jù)類型的元素特殊類型的向量。例如02列表可以看出,,列表的輸出不同于一個向量。這是因為不同類型的所有對象。第一個雙括號1顯示了第一個元素包括的索引內(nèi)容,依次類推。另外的,您自己還可以嘗試:嘗試3矩陣當一個向量與行和列即維度屬性,它變成了一個矩陣。一個矩陣是由行和列組成的,讓我們試著創(chuàng)建一個3行2列的矩陣:矩陣正如你
8、所看到的,一個矩陣的維度你可以通過dim()或attributes()命令獲得,從一個矩陣中提取一個特定元素,只需使用上面矩陣的形式。例如矩陣形式同樣的,,您還可以從個一個向量開始創(chuàng)建所需要的矩陣,我們,需要做的是利用dim()分配好維度。如下所示:分配維度另外,你也可以加入兩個向量使用cbind()和rbind()函數(shù)。但是,需要確保兩向量相同數(shù)量的元素。如果沒有的話,它將返回NA值。數(shù)量元素4數(shù)據(jù)框這是最常用的一種數(shù)據(jù)類型,它是用來存儲列表數(shù)據(jù)的。它不同于矩陣,在一個矩陣中,每一個元素必須有相同的類。但是,在一個數(shù)據(jù)框里你可以把向量包含不同類別的列表。這意味著,每一列的數(shù)據(jù)就像一個列表,每
9、次你在R中讀取數(shù)據(jù)將被存儲在一個數(shù)據(jù)框中。例如:數(shù)據(jù)框讓我們解釋一下上面的代碼。df是數(shù)據(jù)框的名字。dim()返回數(shù)據(jù)框的規(guī)格是4行2列,str()返回的是一個數(shù)據(jù)框的結(jié)構(gòu),nrow()和ncol()返回是數(shù)據(jù)框的行數(shù)和列數(shù)。特別的,我們需要理解一下R中缺失值的概念,NA代表缺失值,這也是預(yù)測建模的關(guān)鍵部分?,F(xiàn)在,我們示例檢查是否一個數(shù)據(jù)集有缺失值。缺失值2 jane NA缺失值的存在嚴重阻礙了我們正常計算數(shù)據(jù)集。例如,因為有兩個缺失值,它不能直接做均值得分。例如:janena.rm = TRUE告訴R計算時忽略缺失值,只是計算選定的列中剩余值的均值(得分)。刪除在數(shù)據(jù)中的行和NA,您可以使用
10、na.omit忽略缺失值2、R中的控制語句正如它的名字一樣,這樣的語句在編碼中起控制函數(shù)的作用,寫一個函數(shù)也是一組多個命令自動重復(fù)編碼的過程。例如:你有10個數(shù)據(jù)集,你想找到存在于每一個數(shù)據(jù)集中的“年齡”列。這可以通過兩種方法,一種需要我們運行一個特定的程序運行10次,另外一種就需要通過編寫一個控制語句來完成。我們先了解下R中的控制結(jié)構(gòu)簡單的例子:If.else,這個結(jié)構(gòu)是用來測試一個條件的,下面是語法:控制語句例子:例子For語句,這個結(jié)構(gòu)是當一個循環(huán)執(zhí)行固定的次數(shù)時使用。下面是語法:forwhile,語句它首先測試條件,并只有在條件是正確的時才執(zhí)行,一旦執(zhí)行循環(huán),條件是再次測試,直到滿足指
11、定的條件然后輸出。下面是語法while當然,還有其他的控制結(jié)構(gòu),但不太常用的比上面的解釋。例如: Repeat 它執(zhí)行一個無限循環(huán) break它打破循環(huán)的執(zhí)行 next它允許跳過一個迭代循環(huán) return它幫助退出函數(shù)注意:如果你發(fā)現(xiàn)這部分的控制結(jié)構(gòu)難以理解,不用擔心。R語言中來自于眾多人貢獻的包,會幫助你很多。3、常用的R包在R的鏡像(CRAN)中,有超過7800個包可供大家調(diào)用,其中很多包可以用來預(yù)測建模在本文中,我們在下面會簡單的介紹其中幾個。之前,我們已經(jīng)解釋了安裝包的方法,大家可以根據(jù)自己的需要去下載安裝。導(dǎo)入數(shù)據(jù)R為數(shù)據(jù)的導(dǎo)入進口提供了廣泛的包,并且可以接入任何格式的數(shù)據(jù)。如txt
12、,csv,sql等均可快速導(dǎo)入大文件的數(shù)據(jù),。數(shù)據(jù)可視化R同樣可以用來構(gòu)建繪圖命令并且是創(chuàng)建簡單的圖表非常好用。但是,當創(chuàng)建的圖形變得較為復(fù)雜時,你應(yīng)該安裝ggplot2。數(shù)據(jù)操作R中有很多關(guān)于數(shù)據(jù)操作集合的包,他們可以做基本的和先進的快速計算、例如dplyr,plyr ,tidyr,lubricate,stringr等。建模學習/機器學習對于模型學習,caret包是強大到足以滿足大多創(chuàng)建機器學習模型的必要。當然,您也可以安裝算法包,例如對于隨機森林,決策樹等等。到這里為止,你會覺得對于R的相關(guān)組件都相對熟悉啦,從現(xiàn)在開始我們開始介紹一些關(guān)于模型預(yù)測的知識。三、用R進行數(shù)據(jù)預(yù)處理從這一節(jié)開始,
13、我們將深入閱讀預(yù)測建模的不同階段。對于數(shù)據(jù)的預(yù)處理是非常重要的,這一階段學習將強化我們的對數(shù)據(jù)操作的應(yīng)用,讓我們在接下來的R中去學習和應(yīng)用一下。在本教程中,我們以這個大市場銷售預(yù)測數(shù)據(jù)集為例。首先,我們先理解一下數(shù)據(jù)結(jié)構(gòu),如下圖:數(shù)據(jù)處理1、數(shù)據(jù)集中基礎(chǔ)概念1最后一列ItemOutlet_Sales為響應(yīng)變量(因變量y),是我們需要做出預(yù)測的。前面的變量是自變量xi,是用來預(yù)測因變量的。2數(shù)據(jù)集預(yù)測模型一般是通過訓練數(shù)據(jù)集建立,訓練數(shù)據(jù)總是包括反變量;測試數(shù)據(jù):一旦模型構(gòu)建,它在測試數(shù)據(jù)集中的測試是較為準確的,這個數(shù)據(jù)總是比訓練數(shù)據(jù)集包含更少數(shù)量的觀察值,而且是它不包括反應(yīng)變量的。數(shù)據(jù)的導(dǎo)入和
14、基本探索1在使用R語言時一個重要設(shè)置是定義工作目錄,即設(shè)置當前運行路徑(這樣你的全部數(shù)據(jù)和程序都將保存在該目錄下)數(shù)據(jù)導(dǎo)入一旦設(shè)置了目錄,我們可以很容易地導(dǎo)入數(shù)據(jù),使用下面的命令導(dǎo)入csv文件:導(dǎo)入文件通過R環(huán)境檢查數(shù)據(jù)是否已成功加載,然后讓我們來探討數(shù)據(jù)探討數(shù)據(jù)從結(jié)果我們可以看到訓練集有8523行12列數(shù)據(jù),測試集有5681行和11列訓練數(shù)據(jù),并且這也是正確的。測試數(shù)據(jù)應(yīng)該總是少一列的。現(xiàn)在讓我們深入探索訓練數(shù)據(jù)集訓練數(shù)據(jù)集2、圖形表示當使用圖表來表示時,我想大家會更好的了解這些變量。一般來講,我們可以從兩個方面分析數(shù)據(jù):單變量分析和雙變量分析。對于單變量分析來講較為簡單,在此不做解釋。我們
15、本文以雙變量分析為例:(對于可視化,我們將使用ggplot2包。這些圖可以幫助我們更好理解變量的分布和頻率的數(shù)據(jù)集)首先做出Item_Visibility和Item_Outlet_Sales兩個變量的散點圖1ggplot(train, aes(x= Item_Visibility, y = Item_Outlet_Sales) + geom_point(size = 2.5, color=”navy”) + xlab(“Item Visibility”) + ylab(“Item Outlet Sales”) + ggtitle(“Item Visibility vs Item Outlet
16、Sales”)散點圖從圖中,我們可以看到大多數(shù)銷售已從產(chǎn)品能見度小于0.2。這表明item_visibility summary(train)推論從圖中,我們可以看到每列的最小值,最大值,中位數(shù),平均值,缺失值的信息等等。我們看到變量Item_Weight中有缺失值,而且Item_Weight是一個連續(xù)變量。因此,在這種情況下,我們一般用樣本中變量的均值或中位數(shù)賦值給缺失值。計算變量item_weight的均值和中位數(shù),這是最常用處理缺失值的的方法,其他的方法在此不贅述。我們可以先把兩個數(shù)據(jù)集合并,這樣就不需要編寫?yīng)毩⒕幋a訓練和測試數(shù)據(jù)集,這也會節(jié)省我們的計算時間。但是合并結(jié)合兩個數(shù)據(jù)框,我們
17、必須確保他們相同的列,如下:合并我們知道,測試數(shù)據(jù)集有個少一列因變量。首先來添加列,我們可以給這個列賦任何值。一個直觀的方法是我們可以從訓練數(shù)據(jù)集中提取銷售的平均值,并使用$Item_Outlet_Sales作為測試變量的銷售列。不過,在此,我們讓它簡單化給最后一列賦值為1。簡化接下來我們先來計算中位數(shù),選用中位數(shù)是因為它在離散值中很有代表性。代表性4、連續(xù)變量和分類變量的處理在數(shù)據(jù)處理中,對連續(xù)數(shù)據(jù)集和分類變量的非別處理是非常重要的。在這個數(shù)據(jù)集,我們只有3個連續(xù)變量,其他的是分類變量。如果你仍然感到困惑,建議你再次使用str()查看數(shù)據(jù)集。對于變量Item_Visibility,在上面的圖
18、中可以看到該項中有的能見度為零值,這幾乎是不可行的。因此,我們考慮將它看成缺失值,用中位數(shù)來處理。連續(xù)變量現(xiàn)在讓我們繼續(xù)處理一下分類變量。在初步的數(shù)據(jù)探索中,我們看到有錯誤的水平變量需要糾正。糾正使用上面的命令,我們指定的名稱“others”為其他未命名的變量,簡要劃分了Item_Fat_Content的等級。5、特征值變量計算現(xiàn)在我們已經(jīng)進入了大數(shù)據(jù)時代,很多時候需要大量的數(shù)據(jù)算法計算,但是之前所選出的變量不一定會和模型擬合的效果很好。,所以我們需要提取新的變量,提供盡可能多的“新”的信息來幫助模型做出更準確的預(yù)測。以合并后的數(shù)據(jù)集為例,你覺得哪些因素)可能會影響Item_Outlet_Sa
19、les?關(guān)于商店種類變量計算在源數(shù)據(jù)中有10個不同的門店,門店的數(shù)目越多,說明某種商品更容易在這個商店中售出。變量計算注:管道函數(shù)的思路,將左邊的值管道輸出為右邊調(diào)用的函數(shù)的第一個參數(shù)。商品種類計算同樣的,我們也可以計算商品種類的信息,這樣我們可以通過結(jié)果看到商品在各家商店出現(xiàn)的頻率。商品種類計算商店的成立時間的變量探索我們假設(shè)商店的成立時間越久,該商店的客流量和產(chǎn)品銷量越會越多。商店的成立時間的變量探索以第一個年份為例,這表明機構(gòu)成立于1999年,已有14年的歷史(以2013年為截止年份)。注:mutate函數(shù),是對已有列進行數(shù)據(jù)運算并添加為新列。商品所屬類型的相關(guān)計算通過對商品所屬類型的計
20、算,我們可以從其中發(fā)現(xiàn)人們的消費趨勢。從數(shù)據(jù)中們可以看出仔細看商品標注DR的,大多是可以吃的食物。對于FD,大多是屬于飲品類的。同樣的我們注意到到NC類,可能是生活用品(非消耗品),但是NC類中的所標注較為復(fù)雜。于是,我們將把這些變量提取出來,并放到一個新變量中。在這里我將使用substr()和gsub()函數(shù)來實現(xiàn)提取和重命名變量。商品所屬類型的相關(guān)計算當然,你也可以試著去增加一些新變量幫助構(gòu)建更好的模型,但是,增加新變量時必須使它與其他的變量之間是不相關(guān)的。如果你不確定與其他變量之間是否存在相關(guān)關(guān)系,可以通過函數(shù)cor()來進行判斷。對字符變量進行編碼1標簽編碼這一部分的任務(wù)是將字符型的標
21、簽進行編碼,例如在在我們的數(shù)據(jù)集中,變量Item_Fat_Content有2個級別低脂肪和常規(guī),我們將低脂編碼為0和常規(guī)型的編碼為1 。因為這樣能夠幫助我們進行定量的分析。 我們可以通過ifelse語句來實現(xiàn)。1 combi$Item_Fat_Content library(dummies)combi combi str(combi)在本節(jié)中,我將介紹回歸、決策樹和隨機森林等算法。這些算法的詳細解釋已經(jīng)超出了本文的范圍,如果你想詳細的了解,推薦大家看機器學習的相關(guān)書籍。現(xiàn)在我們要將兩個數(shù)據(jù)集分開,以便我們來進行預(yù)測建模。如下:預(yù)測建模1、多元線性回歸使用多元回歸建模時,一般用于響應(yīng)變量(因變量
22、)是連續(xù)型和可供預(yù)測變量有很多時。如果它因變量被分類,我們一般會使用邏輯回歸。在我們做回歸前,我們先來了解一些回歸的基本假設(shè): 在響應(yīng)變量和自變量之間存在某種線性關(guān)系; 各個自變量之間是不相關(guān)的,如果存在相關(guān)關(guān)系,我們稱這個模型出現(xiàn)了多重共線性。 誤差項也是要求不相關(guān)的。否則,它將導(dǎo)致模型出現(xiàn)自相關(guān)。 誤差項必須有恒定方差。否則,它將導(dǎo)致模型出現(xiàn)異方差性。在R中我們使用lm()函數(shù)來做回歸,如下:機器學習回歸調(diào)整后的R可以很好的衡量一個回歸模型的擬合優(yōu)度。R越高說明模型擬合的越好從上圖可以看出adjusted R= 0.2084。這意味著我們擬合的這個模型很不理想。而且可以p值看出這些新變量例
23、如Item count, Outlet Count 和 Item_Type_New.對于我們的模型構(gòu)造而言并沒有什么幫助,因為它們的sign.遠小于0.05的顯著性水平。對模型重要的變量是p值小于0.05的變量,也就是上圖中后面帶有*的變量。另外,我們知道變量之間存在相關(guān)性,會影響模型的準確性,我們可以利用cor()函數(shù)來看一下各變量之間的相關(guān)關(guān)系。如下:cor(new_train)另外,您還可以使用corrplot包來做相關(guān)系數(shù),如下的程序就幫助我們找到一個共線性很強的兩個變量相關(guān)系數(shù)可以看出變量Outlet_Count與變量Outlet_Type_Grocery Store成高度負相關(guān)關(guān)系
24、。另外,我們通過剛才的分析發(fā)現(xiàn)了模型中的一些問題: 模型中有相關(guān)關(guān)系的變量存在; 我們做了獨熱編碼編碼和標簽編碼,但從結(jié)果來看,通過創(chuàng)建虛擬變量對于這個線性回歸模型的創(chuàng)建意義不大。 創(chuàng)建的新變量對于回歸模型的擬合也沒有很大影響。接下來,我們嘗試創(chuàng)建不含編碼和新變量的較大的回歸模型。如下:回歸模型模型上圖中可以看到,調(diào)整后的R= 0.5623。這告訴我們,有時只需你的計算過程簡單一些可能會得到更精確的結(jié)果。讓我們從一些回歸圖中去發(fā)現(xiàn)一些能夠提高模型精度的辦法。提高精度結(jié)果從左上的第一個殘差擬合圖中我們可以看出實際值與預(yù)測值之間殘差不是恒定的,這說明該模型中存在著異方差。解決異方差性的一個常見的做
25、法就是對響應(yīng)變量取對數(shù)(減少誤差)。方差一方差可以看出調(diào)整后的R= 0.72,說明模型的構(gòu)建有了顯著的改善,我們可以再做一次擬合回歸圖擬合回歸上圖中,殘差值與擬合值之間已經(jīng)沒有了長期趨勢,說明該模型的擬合效果理想。我們也經(jīng)常用RMSE來衡量模型的好壞,并且我們可以通過這個值與其他算法相比較。如下所示殘差值接下來讓我們進行決策樹算法來改善我們的RMSE得分2、決策樹決策樹算法一般優(yōu)于線性回歸模型,我們簡單介紹一下 ,在機器學習中決策樹是一個預(yù)測模型。他代表的是對象屬性與對象值之間的一種映射關(guān)系。樹中每個節(jié)點表示某個對象,而每個分叉路徑則代表的某個可能的屬性值,而每個葉結(jié)點則對應(yīng)從根節(jié)點到該葉節(jié)點
26、所經(jīng)歷的路徑所表示的對象的值。在R中,決策樹算法的實現(xiàn)可以使用rpart包。此外,我們將使用caret包做交叉驗證。通過交叉驗證技術(shù)來構(gòu)建較復(fù)雜的模型時可以使模型不容易出現(xiàn)過度擬合的情況。(關(guān)于交叉驗證讀者可自行查閱)另外,,決策樹使用參數(shù)CP來衡量訓練集的復(fù)雜性和準確性。參數(shù)較小的CP值可能將導(dǎo)致更大的決策樹,這也可能會出現(xiàn)過度擬合的模型。相反,參數(shù)大的CP值也導(dǎo)致擬合不充分的模型,也就是我們不能準確的把握所需變量的信息。以下我們選用五折交叉驗證法來找出具有最優(yōu)CP的模型。決策樹決策樹的從上圖可以看出,參數(shù)cp = 0.01所對應(yīng)的RMSE最小,在此我們只提供了部分的數(shù)據(jù),你可以在R consle中查詢到更多信息。1main_tree - rpart(Item_Outlet_Sales ., data = new_train, control = rpart.control(cp=0.01)#在cp=0.01下構(gòu)造決策樹prp(main_tree
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城軌未來:智·綠·安
- 外債借款合同范例
- 自然災(zāi)害教育探索
- ??漆t(yī)學實踐之路
- 土建政府合同范例
- 智能家居:未來展望
- 商家送貨合同范例
- 實木教具柜采購合同范例
- 中石油員工演講稿
- 工位搬遷合同范例
- GB/T 7909-2017造紙木片
- GB/T 25217.6-2019沖擊地壓測定、監(jiān)測與防治方法第6部分:鉆屑監(jiān)測方法
- 中醫(yī)學課件 治則與治法
- GB/T 17643-1998土工合成材料聚乙烯土工膜
- GB/T 14337-1993合成短纖維斷裂強力及斷裂伸長試驗方法
- GB/T 10001.4-2021公共信息圖形符號第4部分:運動健身符號
- 我最喜歡的建筑
- 《競爭法學》課程教學大綱
- 疼痛的評估方法課件
- 修剪指甲培智五年級上冊生活適應(yīng)教案
- 煙花爆竹安全管理條例課件
評論
0/150
提交評論