機器學習技術任務驅動式教程-課件 模塊6、7 基于貝葉斯理論的分類預測、基于支持向量機的分類預測_第1頁
機器學習技術任務驅動式教程-課件 模塊6、7 基于貝葉斯理論的分類預測、基于支持向量機的分類預測_第2頁
機器學習技術任務驅動式教程-課件 模塊6、7 基于貝葉斯理論的分類預測、基于支持向量機的分類預測_第3頁
機器學習技術任務驅動式教程-課件 模塊6、7 基于貝葉斯理論的分類預測、基于支持向量機的分類預測_第4頁
機器學習技術任務驅動式教程-課件 模塊6、7 基于貝葉斯理論的分類預測、基于支持向量機的分類預測_第5頁
已閱讀5頁,還剩253頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

數(shù)據(jù)探查數(shù)據(jù)可視化文本向量化數(shù)據(jù)轉換貝葉斯分類模型訓練數(shù)據(jù)預測基于貝葉斯理論的分類預測參考書目《機器學習技術任務驅動式教程》模塊6機器學習技術目錄惡性腫瘤預測垃圾郵件預測廣告短信預測小結習題六基于貝葉斯理論的分類預測模塊6機器學習技術breast-cancer-uci.data數(shù)據(jù)庫來自威斯康星大學,記錄了影響惡性癌癥的10個特征信息,應用貝葉斯分類算法歸納出分類規(guī)則,分析特征信息的相關影響關系,最終判斷患者是否患有惡性癌癥。詳細的字段描述見下表。1.1任務描述1惡性腫瘤預測字段字段類型允許為空標簽?例子編號int否否1171845團塊厚度int否否8細胞大小均勻性int否否6細胞形狀均勻性int否否4邊緣附著力int否否31.1任務描述字段字段類型允許為空標簽?例子單層上皮細胞大小int否否5裸核str是否9乏味染色質int否否3正常核仁int否否1線粒體int否否1類別int否是4單層上皮細胞大小int否否5裸核str是否9接上1惡性腫瘤預測注:1.團塊厚度、細胞大小均勻性、細胞形狀均勻性、邊緣附著力、單層上皮細胞大小、裸核、乏味染色質、正常核仁、線粒體字段中,取值均為1-10。2.類別字段中,2表示良性,4表示惡性。1.1任務描述1)在數(shù)據(jù)探查時,將類別分為良性和惡性,分別統(tǒng)計特征分布。2)通過團塊厚度、細胞大小均勻性、細胞形狀均勻性、細胞形狀均勻性、邊緣附著力等特征,預測患者是否會患有惡性腫瘤。3)計算模型預測的準確率。4)特征團塊厚度、細胞大小均勻性、細胞形狀均勻性、邊緣附著力、單層上皮細胞大小、裸核、乏味染色質、正常核仁、線粒體分別分別取值10、10、10、8、6、8、7、10、1,預測良性還是惡性。任務目標1惡性腫瘤預測1.2

任務分解import方式引入依賴的模塊使用Matplotblib以密度圖矩陣、熱力圖形式可視化樣本的空間分布依賴庫導入數(shù)據(jù)探查數(shù)據(jù)可視化從探查數(shù)據(jù)內容開始,經過分析數(shù)據(jù)分布,根據(jù)數(shù)據(jù)特征建立決策樹分類模型,預測結果,計算預測的準確率。檢查樣本分布、特征/標簽類型、空值、重復行、屬性相互關系1惡性腫瘤預測1.2

任務分解轉換Pandas類型到Numpy類型在已知樣本上訓練回歸模型利用已經建立的邏輯貝葉斯模型進行結果預測數(shù)據(jù)轉換模型訓練預測接上模型評估根據(jù)測試集預測得到的label,跟真實label比較,計算預測準確率1惡性腫瘤預測1.3

任務實施1.3.1依賴庫導入步驟1:定義2級標題。##<fontcolor="black">依賴庫導入</font>按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施步驟2:導入依賴庫。importnumpyasnpimportpandasaspdimportmatplotlibasmplimportmatplotlib.pyplotaspltimportseabornassnsfromsklearnimportmodel_selectionfromsklearn.naive_bayesimportGaussianNB按“SHIFT+Enter”,檢查輸出無異常1惡性腫瘤預測1.3

任務實施1.3.2數(shù)據(jù)探查文件讀入DataFrame對象后,需要觀察不同標簽的數(shù)據(jù)特征。步驟1:定義2級標題。##<fontcolor="black">數(shù)據(jù)探查</font>按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施步驟2:讀入數(shù)據(jù)集文件到DataFrame對象。df=pd.read_csv("c:/data/breast-cancer-uci.data",header=0)df.sample(5)按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施步驟3:利用數(shù)據(jù)交叉表進行數(shù)據(jù)字段描述。()按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施步驟4:裸核字段頻數(shù)統(tǒng)計。df["裸核"].value_counts()1惡性腫瘤預測按“SHIFT+Enter”,運行結果如下:1.3

任務實施步驟5:裸核字段填充。df.loc[df["裸核"]=="?","裸核"]=np.nandf["裸核"].fillna(df["裸核"].mode()[0],inplace=True)df["裸核"].value_counts()1惡性腫瘤預測1.3

任務實施按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施步驟6:特征數(shù)據(jù)描述性統(tǒng)計。df.describe()按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施步驟7:標簽字段頻數(shù)統(tǒng)計。label_count=df['類別'].value_counts()label_count按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施步驟8:計算相關系數(shù)。corr_result=df.iloc[:,1:].corr()corr_result1惡性腫瘤預測1.3

任務實施按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施1.3.3數(shù)據(jù)可視化步驟1:定義2級標題。##<fontcolor="black">數(shù)據(jù)可視化</font>按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施步驟2:Matplotlib支持中文字符。mpl.rcParams['font.sans-serif']=['SimHei']按“SHIFT+Enter”,檢查輸出無異常1惡性腫瘤預測1.3

任務實施步驟3:利用條形圖分析標簽字段“類別”分布趨勢。plt.figure(figsize=(6,4))plt.barh(y=label_count.index,width=label_count,height=0.3)plt.yticks([2,4],['良性','惡性'])plt.show()1惡性腫瘤預測1.3

任務實施按“SHIFT+Enter”,運行結果如下:良性的患者多于惡性的患者。1惡性腫瘤預測1.3

任務實施步驟4:繪制密度圖矩陣。df.iloc[:,1:-1].plot(kind='density',subplots=True,layout=(2,4),sharex=False,sharey=False,fontsize=15,figsize=(15,10))1惡性腫瘤預測1.3

任務實施按“SHIFT+Enter”,運行結果如下:大部分字段的頻數(shù)高峰都集中0附近。1惡性腫瘤預測1.3

任務實施知識點:熱力圖熱力圖熱力圖,又名相關系數(shù)圖,根據(jù)熱力圖中不同方塊顏色對應的相關系數(shù)的大小,可以判斷出變量之間相關性的大小。Seaborn模塊提供了heatmap()函數(shù)用來繪制熱力圖,其主要參數(shù)及其作用如下:data:矩形數(shù)據(jù)集。可以強制轉換為ndarray格式數(shù)據(jù)的2維數(shù)據(jù)集,如果提供了PandasDataFrame數(shù)據(jù),索引/列信息將用于標記列和行。annot:布爾值或者矩形數(shù)據(jù)。如果為True,則在每個熱力圖單元格中寫入數(shù)據(jù)值。1惡性腫瘤預測1.3

任務實施熱力圖vmax:浮點型數(shù)據(jù)。用于錨定色彩映射的值,否則它們是從數(shù)據(jù)和其他關鍵字參數(shù)推斷出來。square:布爾值。如果為True,則將坐標軸方向設置為“equal”,以使每個單元格為方形。cmap:顏色列表。表示從數(shù)據(jù)值到顏色空間的映射。接上1惡性腫瘤預測1.3

任務實施1.3.4數(shù)據(jù)轉換步驟1:定義2級標題。##<fontcolor="black">數(shù)據(jù)轉換</font>按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施步驟2:拆分出特征和標簽。X=df.iloc[:,0:-1].valuesy=df.iloc[:,-1]按“SHIFT+Enter”,

檢查輸出無異常1惡性腫瘤預測1.3

任務實施1.3.5模型訓練步驟1:定義2級標題。##<fontcolor="black">模型訓練</font>按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施步驟2:數(shù)據(jù)集拆分成訓練集和測試集。X_train,X_test,y_train,y_test=model_selection.train_test_split(X,y,random_state=4,test_size=0.2)X_train.shape,X_test.shape按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施步驟3:訓練貝葉斯分類模型。nb_model=GaussianNB()nb_model.fit(X_train,y_train)按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施知識點:貝葉斯分類算法貝葉斯分類算法貝葉斯(Bayes)算法是基于貝葉斯定理與特征條件獨立假設的分類方法,該算法是有監(jiān)督的學習算法,解決的是分類問題,是將一個未知樣本分到幾個預先已知類別的過程。最常用的是樸素貝葉斯(Na?veBayes,NB)。樸素貝葉斯的思想就是根據(jù)某些個先驗概率計算Y變量屬于某個類別的后驗概率,也就是根據(jù)先前事件的有關數(shù)據(jù)估計未來某個事件發(fā)生的概率。1惡性腫瘤預測1.3

任務實施貝葉斯分類算法樸素貝葉斯公式P(A|B)=(P(B|A)?P(A))/P(B)。其中,P(A)叫做A事件的先驗概率,即一般情況下,認為A發(fā)生的概率。

P(B|A)叫做似然度,是A假設條件成立的情況下發(fā)生B的概率。P(A|B)叫做后驗概率,在B發(fā)生的情況下發(fā)生A的概率,也就是要求的概率。

P(B)叫做標準化常量,即在一般情況下,認為B發(fā)生的概率。接上1惡性腫瘤預測1.3

任務實施貝葉斯分類算法比如一個單位內有70%的男性員工,30%是女性員工。根據(jù)統(tǒng)計,男性員工總是穿長褲,女性員工則有一半穿長褲,一半穿裙子。假設在單位中隨機抽取一個穿長褲的員工,推斷該員工是女性的概率是多少?已知:P(男)=70%,P(女)=30%,P(長褲|男)=100%,P(長褲|女)=50%,P(裙子|女)=50%。假設該單位總人數(shù)為U,穿長褲人數(shù)=穿長褲的男員工人數(shù)+穿長褲的女員工人數(shù)=U*70%+U*30%*50%,其中,穿長褲女員工的人數(shù)=U*30%*50%。隨機抽取一個穿長褲的員工是女性的概率=穿長褲女生的人數(shù)/穿長褲總人數(shù)=U*30%*50%/(U*70%+U*30%*50%)=0.25接上1惡性腫瘤預測1.3

任務實施貝葉斯分類算法再比如垃圾郵件分類,假設現(xiàn)在有一堆郵件,正常郵件的比例是80%,垃圾郵件的比例是20%,這堆郵件中,5%的郵件中會出現(xiàn)Viagra單詞,其中垃圾郵件中出現(xiàn)Viagra單詞的概率是5/20,如果有一封郵件,這封郵件中包含Viagra單詞,求這封郵件是垃圾郵件的概率是多少?P(spam/Viagra)=(P(Viagra/spam)*P(spam))/P(Viagra)=(5/20*20%)/0.05=80%接上1惡性腫瘤預測1.3

任務實施1.3.6模型評估步驟1:定義2級標題。##<fontcolor="black">模型評估</font>按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施步驟2:計算預測準確率。R2=dt_model.score(X_test,y_test)print("預測準確率=%.2f%%"%(R2*100))按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施1.3.7預測步驟1:定義2級標題。##<fontcolor="black">預測</font>按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測1.3

任務實施步驟2:根據(jù)特征數(shù)據(jù),進行預測。names={2:"良性",4:"惡性"}test_data=np.array([[10,10,10,8,6,8,7,10,1]])pred=nb_model.predict(test_data)names[pred[0]]按“SHIFT+Enter”,運行結果如下:1惡性腫瘤預測本任務基于網(wǎng)絡收集了正常郵件與垃圾郵件兩類數(shù)據(jù),意在實現(xiàn)對未知的郵件進行分類預測,主要思路就是依據(jù)用戶收集的大量已接收到的歷史郵件為載體,將每個有效的單詞在當前郵件中的詞頻做為特征值,將正常郵件與垃圾郵件做為分類,依據(jù)樸素貝葉斯理論進行計算。詳細的字段描述見下表。2.2任務描述2垃圾郵件預測2.2任務描述字段文件文件類型文件內容mail\train\normal文本文件小張,您好!上次您介紹給我的教材,對我很有幫助,于是,希望您能再介紹幾本教材給我,非常感謝。文本文件小李,您好!論文還需要修改,具體情況請在附件中查收。mail\train\spam文本文件***期刊:【主要欄目】:信息技術。文本文件***期刊:【主要欄目】:大數(shù)據(jù)技術。投稿郵箱:mail\test文本文件小林,您好!朋友最近介紹我一本教材,對我很有幫助,于是,也推薦您一本,詳見附錄。文本文件***期刊:【主要欄目】:大數(shù)據(jù)2垃圾郵件預測2.2任務描述1)中文分詞實現(xiàn)與停詞過濾處理。2)獲取郵件高頻單詞集。3)垃圾郵件與正常郵件分類實現(xiàn)。任務目標2垃圾郵件預測2.2

任務分解import方式引入依賴的模塊將正常郵件與垃圾郵件進行合并,構成訓練數(shù)據(jù)集依賴庫導入定義函數(shù)數(shù)據(jù)合并從探查數(shù)據(jù)內容開始,經過分析數(shù)據(jù)分布,根據(jù)數(shù)據(jù)特征建立決策樹分類模型,預測結果,計算預測的準確率。定義通過文件夾讀取文件內容函數(shù),并測試效果2垃圾郵件預測2.2

任務分解文本向量化模型訓練接上預測根據(jù)數(shù)據(jù)預測結果將郵件文本轉化為向量,并構建詞頻統(tǒng)計的計數(shù)矩陣構建貝葉斯分類模型,然后在已知樣本上訓練模型2垃圾郵件預測2.3

任務實施2.3.1依賴庫導入步驟1:定義2級標題。##<fontcolor="black">依賴庫導入</font>按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測2.3

任務實施步驟2:導入依賴庫。importosimportnumpyasnpfromreimportsubfromjiebaimportcutfromsklearn.feature_extraction.textimportCountVectorizerfromsklearn.naive_bayesimportMultinomialNB按“SHIFT+Enter”,檢查輸出無異常2垃圾郵件預測2.3

任務實施2.3.2定義函數(shù)文件讀入DataFrame對象后,需要觀察不同標簽的數(shù)據(jù)特征。步驟1:定義2級標題。##<fontcolor="black">定義函數(shù)</font>按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測2.3

任務實施步驟2:定義讀取文件夾中所有文件的函數(shù),輸出結果為列表,但不含根目錄。deffile_to_txt(file_path):'''文本文件轉換到空格分隔的字符串'''wordLst=[]withopen(file_path,encoding='utf8')asfp:forlineinfp:#去除前后空格

line=line.strip()#過濾干擾字符或無效字符

line=sub(r'[\ufeff:.【】0-9、—。,!~\*]','',line)line=cut(line)wordLst.extend(list(line))return"".join(wordLst)file_to_txt(r"c:\data\mail\train\normal\normal-train1.txt")2垃圾郵件預測2.3

任務實施按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測2.3

任務實施步驟4:定義讀取文件夾中所有文件內容的函數(shù)。defdir_to_txt(root_dir):txtlst=[]filelst=dir_to_file(root_dir)forfileinfilelst:txt=file_to_txt(root_dir+'/'+file)txtlst.append(txt)returntxtlst2垃圾郵件預測2.3

任務實施2.3.3數(shù)據(jù)合并##<fontcolor="black">數(shù)據(jù)合并</font>按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測2.3

任務實施步驟2:轉換訓練集的正常郵件到空格分隔的字符串。root_dir="c:/data/mail/train/normal"train_normal_text=dir_to_txt(root_dir)train_normal_text按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測2.3

任務實施步驟3:轉換訓練集的垃圾郵件到空格分隔的字符串。root_dir="c:/data/mail/train/spam"train_spam_text=dir_to_txt(root_dir)train_spam_text按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測2.3

任務實施步驟4:合并數(shù)據(jù),構建訓練集。X_raw=np.concatenate([train_normal_text,train_spam_text])X_raw按“SHIFT+Enter”,運行結果如下:訓練集一共有4個文件,最后的輸出結果為列表的4個元素。2垃圾郵件預測2.3

任務實施2.3.4文本向量化步驟1:定義2級標題。##<fontcolor="black">文本向量化</font>按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測2.3

任務實施步驟2:讀入停用詞表。stopWordLst=[]withopen("c:/data/stopwords/chinese",'r',encoding='utf-8')asfr:#加載停用詞

forwordinfr.readlines():stopWordLst.append(word.strip())stopWordLst[:10]按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測2.3

任務實施步驟3:訓練詞袋模型。cvt=CountVectorizer(stop_words=stopWordLst)X=cvt.fit_transform(X_raw)按“SHIFT+Enter”,檢查輸出無異常2垃圾郵件預測2.3

任務實施步驟4:顯示文本文件切詞結果。cvt_names=cvt.get_feature_names_out()print(cvt_names)print(cvt_names.shape)按“SHIFT+Enter”,運行結果如下:訓練集一共切出了23個詞匯,詞匯之間默認由空格隔開。2垃圾郵件預測2.3

任務實施生成切詞計數(shù)矩陣print(X.toarray())print(X.shape)按“SHIFT+Enter”,運行結果如下:訓練集4個文件在23個詞匯上的統(tǒng)計結果,最終生成了4*23的計數(shù)二維矩陣。2垃圾郵件預測2.3

任務實施知識點:文本向量化文本向量化文本的向量化,就是將信息數(shù)值化,從而便于進行建模分析。自然語言處理面臨的文本數(shù)據(jù)往往是非結構化雜亂無章的文本數(shù)據(jù),而機器學習算法處理的數(shù)據(jù)往往是固定長度的輸入和輸出。因而機器學習并不能直接處理原始的文本數(shù)據(jù)。必須把文本數(shù)據(jù)轉換成數(shù)字,比如向量。One-hot最早的用于提取文本特征的方法,將文本直接簡化為一系列詞的集合。比如性別sex的取值Male、Female、Female、Male,對其進行one_hot_encoding編碼處理的如下:

2垃圾郵件預測2.3

任務實施知識點:文本向量化文本向量化在One-hot表示法的基礎上,對詞表中的每一個詞在該文本出現(xiàn)的頻次進行記錄,以表示當前詞在該文本的重要程度。CountVectorizer是一個類,通過這一類中的功能,可以很容易地實現(xiàn)文本的詞頻統(tǒng)計與向量化,它主要是把新的文本轉化為特征矩陣,只不過這些特征是已經確定過的。而這個特征序列是前面的fit_transfome()輸入的語料庫確定的特征。2垃圾郵件預測2.3

任務實施2.3.5模型訓練步驟1:定義2級標題。##<fontcolor="black">模型訓練</font>按“SHIFT+Enter”,檢查輸出無異常2垃圾郵件預測2.3

任務實施步驟2:構造訓練集數(shù)據(jù)。X_train=X按“SHIFT+Enter”,檢查輸出無異常2垃圾郵件預測2.3

任務實施步驟3:構造訓練集標簽。0表示正常郵件,1表示垃圾郵件y_train=np.array([0]*len(train_normal_text)+[1]*len(train_spam_text))y_train按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測2.3

任務實施步驟4:訓練多項式貝葉斯模型。nb_model=MultinomialNB()nb_model.fit(X_train,y_train)按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測2.3

任務實施2.3.6預測步驟1:定義2級標題。##<fontcolor="black">預測</font>按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測2.3

任務實施步驟2:將測試郵件轉換到空格分隔的字符串。test_text=file_to_txt("c:/data/mail/test/spam-test.txt")test_text按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測2.3

任務實施步驟3:向量化郵件。test_vector=cvt.transform([test_text])test_vector按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測2.3

任務實施步驟4:預測。label_names=["正常郵件","垃圾郵件"]y_pred=nb_model.predict(test_vector)result=label_names[y_pred[0]]print("預測結果為:%s"%(result))按“SHIFT+Enter”,運行結果如下:2垃圾郵件預測SMSSpamCollection是用于廣告短信識別的經典數(shù)據(jù)集,完全來自真實短信內容,包括4831條正常短信和747條廣告短信。SMS消息通常限制為160個字符,這樣減少了可用于識別消息是否為垃圾的文本數(shù)量。每一個line都表示一段郵件,"ham"和"spam"分別表示郵件的類別“正常短信”和“垃圾短信”。將正常郵件與垃圾郵件進行分類。3.3任務描述3廣告短信預測3.1任務描述1)中文分詞實現(xiàn)與停詞過濾處理。2)獲取短信高頻單詞集。3)垃圾短信與正常短信分類實現(xiàn)。任務目標3廣告短信預測3.2

任務分解import方式引入依賴的模塊替換標簽值,再提取特征和標簽依賴庫導入數(shù)據(jù)探查數(shù)據(jù)轉換從探查數(shù)據(jù)內容開始,使用切詞工具將文本文件轉換為向量,得到切詞計數(shù)矩陣,建立貝葉斯分類模型,通過模型擬合度R2評價模型,最后根據(jù)數(shù)據(jù)預測結果。使用Pandas把使用Pandas把SMSSpamCollection讀入到DataFrame對象3廣告短信預測3.2

任務分解轉換Pandas類型到Numpy類型文本向量化數(shù)據(jù)可視化接上模型訓練構建貝葉斯分類模型,然后在已知樣本上訓練模型使用Matplotblib以餅圖、柱形圖形式可視化標簽及切詞的分布3廣告短信預測3.2

任務分解模型評估預測接上利用已經建立的邏輯回歸模型進行結果預測根據(jù)測試集預測得到的label,跟真實label比較,計算預測準確率3廣告短信預測3.3

任務實施3.3.1依賴庫導入步驟1:定義2級標題。##<fontcolor="black">依賴庫導入</font>按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施步驟2:導入依賴庫。importpandasaspdimportmatplotlibasmplimportmatplotlib.pyplotaspltfromsklearn.feature_extraction.textimportCountVectorizerfromsklearnimportmodel_selectionfromsklearn.naive_bayesimportMultinomialNB按“SHIFT+Enter”,檢查輸出無異常3廣告短信預測3.3

任務實施3.3.2數(shù)據(jù)探查文件讀入DataFrame對象后,需要觀察不同標簽的數(shù)據(jù)特征。步驟1:定義2級標題。##<fontcolor="black">數(shù)據(jù)探查</font>按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施步驟2:讀入數(shù)據(jù)集文件到DataFrame對象。col_names=["label","content"]df=pd.read_csv("c:/data/smsspamcollection",sep='\t',header=None,names=col_names)df.shape,df.head()3廣告短信預測3.3

任務實施按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施步驟3:讀入數(shù)據(jù)集文件到DataFrame對象。label_count=df['label'].value_counts()label_count3廣告短信預測按“SHIFT+Enter”,運行結果如下:3.3

任務實施3.3.3數(shù)據(jù)可視化步驟1:定義2級標題。##<fontcolor="black">數(shù)據(jù)可視化</font>按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施步驟2:替換標簽值。df['label']=df['label'].replace({'ham':0,'spam':1})df.head()按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施步驟3:提取特征和標簽。X_raw=df.loc[:,"content"].valuesy=df.loc[:,"label"].valuesprint("數(shù)據(jù)內容為:\n",X_raw[0:5])print("數(shù)據(jù)標簽為:\n",y[0:5])3廣告短信預測3.3

任務實施按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施3.3.4文本向量化步驟1:定義2級標題。##<fontcolor="black">數(shù)據(jù)可視化</font>按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施步驟2:讀入停用詞表。stopWordLst=[]withopen("c:/data/stopwords/english",'r',encoding='utf-8')asfr:#加載停用詞

forwordinfr.readlines():stopWordLst.append(word.strip())stopWordLst[:10]3廣告短信預測3.3

任務實施按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施步驟3:訓練詞袋模型。cvt=CountVectorizer(stop_words=stopWordLst)X=cvt.fit_transform(X_raw)3廣告短信預測3.3

任務實施文本文件切詞結果,顯示前50個。cvt_names=cvt.get_feature_names_out()print(cvt_names.shape)print(cvt_names[:50])3廣告短信預測3.3

任務實施按“SHIFT+Enter”,運行結果如下:3廣告短信預測訓練集一共切出了8577個詞匯,詞匯之間默認由空格隔開。3.3

任務實施生成切詞計數(shù)矩陣,查看前5行。print(X.shape)print(X.toarray()[:5])3廣告短信預測按“SHIFT+Enter”,運行結果如下:訓練集5572個文件在8577個切詞上的統(tǒng)計結果,最終生成了5572*8577的計數(shù)二維數(shù)組。3.3

任務實施步驟4:查看詞袋模型的出現(xiàn)頻率。cut_count=list(cvt.vocabulary_.items())cut_count[:10]3廣告短信預測按“SHIFT+Enter”,運行結果如下:3.3

任務實施3.3.5數(shù)據(jù)可視化步驟1:定義2級標題。##<fontcolor="black">數(shù)據(jù)轉換</font>按“SHIFT+Enter”,檢查輸出無異常3廣告短信預測3.3

任務實施步驟2:Matplotlib支持中文字符。mpl.rcParams['font.sans-serif']=['SimHei']按“SHIFT+Enter”,檢查輸出無異常3廣告短信預測3.3

任務實施步驟3:利用餅圖分析標簽字段分布趨勢。plt.pie(x=label_count,labels=label_count.index,autopct='%.1f%%',colors=['darkorange','lightgreen'],explode=[0.1,0],radius=0.7)plt.title("標簽取值分布",color='r',size=15)plt.show()3廣告短信預測3.3

任務實施按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施步驟4:利用條形圖分析隨機詞頻統(tǒng)計結果。plt.barh(y=cut_result['word'],width=cut_result['count']/1000)plt.title("隨機詞頻統(tǒng)計",color='r',size=15)plt.show()3廣告短信預測3.3

任務實施按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施3.3.6模型訓練步驟1:定義2級標題。##<fontcolor="black">模型訓練</font>按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施步驟2:構造訓練集數(shù)據(jù)。X_train,X_test,y_train,y_test=model_selection.train_test_split(X,y,random_state=4,test_size=0.2)X_train.shape,X_test.shape按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施步驟3:訓練多項式貝葉斯模型。nb_model=MultinomialNB()nb_model.fit(X_train,y_train)按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施3.3.7模型評估步驟1:定義2級標題。##<fontcolor="black">模型評估</font>按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施步驟2:計算模型擬合度。R2=lr_model.score(X_test,y_test)print("預測準確率=%.2f%%"%(R2*100))按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施3.3.8預測步驟1:定義2級標題。##<fontcolor=“black”>預測</font>按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施步驟2:輸入測試的短信文本。test_msg="in2awklycomptowinFACupfinaltkts21stMay2005.TextFAto87121toreceiveentryquestion(stdtxtrate)T&C'sapply08452810075over18's"按“SHIFT+Enter”,檢查輸出無異常3廣告短信預測3.3

任務實施用之前訓練好的詞袋模型轉換為計數(shù)矩陣test_vector=cvt.transform([test_msg])test_vector.toarray()按“SHIFT+Enter”,運行結果如下:3廣告短信預測3.3

任務實施步驟3:預測。label_names=["ham","spam"]y_pred=nb_model.predict(test_vector)result=label_names[y_pred[0]]print("預測結果為:%s"%(result))3廣告短信預測按“SHIFT+Enter”,運行結果如下:小結密度圖矩陣和熱力圖能幫助理解數(shù)據(jù)分布。處理文本文件過多時,可以先創(chuàng)建文件處理函數(shù)進行數(shù)據(jù)合并。文本輸入貝葉斯模型前需要經過文本向量化,把文本轉化為數(shù)字。One-hot編碼對每段話分詞后,找到每個單詞的編號,建立特征向量。貝葉斯分類算法經常用于預測文本的類型。3廣告短信預測習題六一選擇題1.在Pandas中,describe()函數(shù)不能得到的統(tǒng)計值為()。A.平均值 B.中位數(shù)C.眾數(shù) D.最大值2.以下相關系數(shù)中,錯誤的是()。A.0.2 B.0.88C.0.36 D.1.53.在列表的末尾添加元素,可以使用()。A.append B.extendC.add D.concatenate一選擇題4.利用sns中的heatmap()繪制熱力圖時,用來控制顏色列表的是()。A.data B.cmapC.vmax D.square5.貝葉斯模型通常用來進行()。A.回歸 B.聚類C.降維 D.分類習題六二填空題1.利用.iloc()選取除了第一列以外的列的數(shù)據(jù),可以使用()。2.去掉字符串兩邊的空格,可使用函數(shù)()。3.計算相關系數(shù),可使用函數(shù)()。習題六三

操作題passexam.csv包含期末考試前一周行為的樣本,有三種行為:打游戲、通宵聊天、學習,標簽為期末考試是否掛科(0:不掛科,1:不掛科)。完成下面任務:(1)用“通宵聊天”的中位數(shù)填充該列的缺失值;(2)劃分80%數(shù)據(jù)建立訓練集,20%數(shù)據(jù)建立測試集;(3)建立高斯貝葉斯、多項式貝葉斯兩個模型,并比較其在測試集上的準確率。習題六數(shù)據(jù)觀察數(shù)據(jù)清洗數(shù)據(jù)轉換SVM模型訓練SVM模型預測參考書目《機器學習技術任務驅動式教程》基于支持向量機的分類預測模塊7機器學習技術目錄乳腺癌預測手寫數(shù)字識別傳感器連通預測小結習題七基于支持向量機的分類預測模塊7機器學習技術乳腺癌(breastcarcinoma,BC)是女性最常見的惡性腫瘤之一,據(jù)資料統(tǒng)計,發(fā)病率占全身各種惡性腫瘤的7-10%,因此早期發(fā)現(xiàn)及治療非常重要,對其檢測的關鍵挑戰(zhàn)是如何將腫瘤分為惡性(癌性)或良性(非癌性)。1.1任務描述1

乳腺癌預測breast-cancer-kaggle.csv來自Kaggle網(wǎng)站提供的威斯康星州乳腺癌(診斷)數(shù)據(jù),有569條癌癥病人檢測樣本,其中惡性樣本212條、良性樣本357條,每個樣本有32個字段。詳細的字段描述見下表。1.1任務描述1

乳腺癌預測字段類型允許為空標簽?例子idint否否842302diagnosis(診斷結果)str否是M:Malignant(惡性)B:Benign(良性)radius_mean/se/worst(半徑平均、標準差、最差)float否否17.99texture_mean(紋理平均、標準差、最差)float否否10.38perimeter_mean(周邊平均、標準差、最差)float否否122.80area_mean(面積平均、標準差、最差)float否否1001.0smoothness_mean(平滑度平均、標準差、最差)float否否0.11840compactness_mean(緊密度平均、標準差、最差)float否否0.27760concavity_mean(凹度平均、標準差、最差)float否否0.3001concavepoints_mean(凸度平均、標準差、最差)float否否0.1471symmetry_mean(對稱性平均、標準差、最差)float否否0.2419fractal_dimension_mean(分形維數(shù)平均、標準差、最差)float否否0.07871要求使用SVM和breast-cancer-kaggle.csv建立分類模型,預測病人腫瘤是良性還是惡性。任務目標1

乳腺癌預測1.2

任務分解import方式引入依賴的模塊檢查字段值和類型刪除任務無關或冗余的字段依賴庫導入數(shù)據(jù)探查數(shù)據(jù)清洗從探查數(shù)據(jù)內容開始,通過數(shù)據(jù)清洗和數(shù)據(jù)轉換加工原始數(shù)據(jù),使用SVM模型找到決策函數(shù),最后用實例解析SVM算法原理。1.2

任務分解文本轉換到數(shù)值;數(shù)據(jù)集切分為訓練集和測試集;實施標準化轉換、歸一化轉換和降維在訓練集上訓練SVM模型不同分布的人工數(shù)據(jù)集可視化SVM決策函數(shù)和樣本的空間分布,理解SVM算法思想和超參數(shù)數(shù)據(jù)轉換模型訓練SVM實例解析接上1

乳腺癌預測1.3

任務實施1.3.1依賴庫導入步驟1:定義2級標題。##<fontcolor="black">依賴庫導入</font>按“SHIFT+Enter”,運行結果如下:1

乳腺癌預測1.3

任務實施步驟2:導入依賴庫。importpandasaspdimportnumpyasnpfromsklearn.svmimportSVCfromsklearn.model_selectionimporttrain_test_splitimportmatplotlib.pyplotaspltimportmatplotlibasmplfromsklearn.preprocessingimportStandardScaler,Normalizer,LabelEncoder1

乳腺癌預測1.3

任務實施fromsklearn.decompositionimportPCAfromsklearn.metricsimportroc_auc_score,roc_curve,accuracy_scorefromsklearn.treeimportDecisionTreeClassifierfromsklearn.datasets._samples_generatorimportmake_blobs,make_circles接上1

乳腺癌預測1.3

任務實施1.3.2數(shù)據(jù)探查步驟1:定義2級標題。##<fontcolor="black">數(shù)據(jù)探查</font>按“SHIFT+Enter”,運行結果如下:1

乳腺癌預測1.3

任務實施步驟2:讀入數(shù)據(jù)集文件到DataFrame對象。df_data=pd.read_csv("../data/breast-cancer-kaggle.csv")df_data.shape運行結果如下:1

乳腺癌預測1.3

任務實施步驟3:檢查前5個樣本。df_data.head()運行結果如下:diagnoisis(標簽):M(惡性),B(良性)1

乳腺癌預測1.3

任務實施步驟4:查看數(shù)據(jù)類型。df_()運行結果如下:從上面的輸出可以看出,數(shù)據(jù)集有569條樣本,每個樣本有32個字段。其中字段”id”和預測無關,可以刪除。1

乳腺癌預測1.3

任務實施1.3.3數(shù)據(jù)清洗步驟1:定義2級標題。#<fontcolor=“black”>數(shù)據(jù)清洗</font>按“SHIFT+Enter”,運行結果如下:1

乳腺癌預測1.3

任務實施步驟2:刪除"id"列。all_data=df_data.drop("id",axis=1)all_data.head()運行結果:1

乳腺癌預測1.3

任務實施1.3.4數(shù)據(jù)轉換步驟1:定義2級標題。#<fontcolor="black">數(shù)據(jù)轉換</font>按“SHIFT+Enter”,運行結果如下:1

乳腺癌預測3.3

任務實施步驟2:“diagnosis”字段從文本轉換到數(shù)值。le=LabelEncoder()all_data["diagnosis"]=le.fit_transform(all_data["diagnosis"])all_()運行結果:1

乳腺癌預測1.3

任務實施步驟3:拆分出特征和標簽。X=all_data.iloc[:,1:].valuesy=all_data.iloc[:,0].valuesX.shape,y.shape運行結果:1

乳腺癌預測1.3

任務實施步驟4:數(shù)據(jù)集拆分成訓練集和測試集,測試集占30%。X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=0)X_train.shape,X_test.shape,y_train.shape,y_test.shape運行結果:1

乳腺癌預測1.3

任務實施步驟4:數(shù)據(jù)集拆分成訓練集和測試集,測試集占20%。X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=0)X_train.shape,X_test.shape,y_train.shape,y_test.shape運行結果:1

乳腺癌預測1.3

任務實施,其中x是特征值,xmean是特征平均值,xstd是特征標準偏差。scaler=StandardScaler()X_train_scaled=scaler.fit_transform(X_train)X_test_scaled=scaler.transform(X_test)X_train[0,0:5],X_train_scaled[0][0:5]1

乳腺癌預測步驟5:調用StandardScaler類標準化特征,特征標準化后服從(0,1)正態(tài)分布。標準化公式:

1.3

任務實施1

乳腺癌預測運行結果:,其中x是特征值,|X|是樣本向量大小。步驟6:調用Normalizer類歸一化特征,特征歸一化后樣本向量大小為1。歸一化公式:

1.3

任務實施normalizer=Normalizer()X_train_normalized=normalizer.fit_transform(X_train_scaled)X_test_normalized=normalizer.transform(X_test_scaled)X_train_normalized[0][0:5]運行結果:1

乳腺癌預測1.3

任務實施pca=PCA(n_components=20,random_state=51592)X_train_decomposed=pca.fit_transform(X_train_normalized)X_test_decomposed=pca.transform(X_test_normalized)X_train_normalized.shape,X_train_decomposed.shape1

乳腺癌預測步驟7:調用PCA類降低數(shù)據(jù)維度,避免不相關特征帶來過擬合問題。運行結果:1.3

任務實施1.3.5模型訓練步驟1:定義2級標題。##<fontcolor="black">模型訓練</font>按“SHIFT+Enter”,運行結果如下:1

乳腺癌預測1.3

任務實施步驟2:在訓練集上訓練SVM模型。svm_model=SVC(kernel="linear",random_state=2)svm_model.fit(X_train_decomposed,y_train)運行結果:1

乳腺癌預測1.3

任務實施步驟3:計算測試準確率。y_test_pred=svm_model.predict(X_test_decomposed)test_score=accuracy_score(y_test,y_test_pred)"準確率:{:.2f}".format(test_score*100)運行結果:1

乳腺癌預測1.3

任務實施步驟4:計算置信度(樣本到決策邊界的距離)。大于0預測為1,小于0預測為0,越大或越小表示預測結果越確定。deci=svm_model.decision_function(X_test_decomposed)(deci>0).sum()==(y_test_pred==1).sum()按“SHIFT+Enter”,運行結果如下:上面的結果表明deci>0和y_test_pred==1等價。1

乳腺癌預測支持向量機支持向量機(SupportVectorMachine,SVM)的基本原理:尋找一個分類器使得超平面和最近的數(shù)據(jù)點之間的分類邊緣(超平面和最近的數(shù)據(jù)點之間的間隔被稱為分類邊緣)最大。SVM算法通常認為分類邊緣越大,平面越優(yōu),具有“最大間隔”的決策面就是SVM要尋找的最優(yōu)解。最優(yōu)解對應兩側虛線要穿過的樣本點,稱為“支持向量”。支持向量機kernel=”linear”效果不好時再嘗試kernel=“rbf”,也可以用GridSearchCV嘗試其它的kernel。Sklearn庫的SVC類實現(xiàn)了SVM模型,定義如下:classsklearn.svm.SVC(C=1.0,kernel='rbf',gamma='scale',class_weight=None,**kargs)參數(shù)C:int,默認值1.0懲罰系數(shù)。一般需要通過交叉驗證選擇一個合適的C。kernel:默認值rbf

核函數(shù)。四種選擇:”linear”(線性),“poly”(多項式),“rbf”(高斯),“sigmoid”。gamma:float,默認值auto。核函數(shù)參數(shù)。kernel=“l(fā)inear”時不起作用。class_weight:float

樣本權重。訓練集中某類樣本數(shù)量過多時,建議設置為“balanced”。如果樣本類別分布沒有明顯的偏移,忽略這個參數(shù)。1.3

任務實施1.3.6SVM實例解析SVM根據(jù)數(shù)據(jù)與決策函數(shù)的最大間隔選擇決策函數(shù)。根據(jù)線性可分和線性不可分2種情況,示例SVM算法的設計思路。步驟1:定義2級標題。##<fontcolor="black">SVM實例解析</font>按“SHIFT+Enter”,運行結果如下:1

乳腺癌預測1.3

任務實施步驟2:如果數(shù)據(jù)集可以用線性分類器劃分,稱為線性可分。定義3級標題。###<fontcolor="black">線性可分</font>運行結果:1

乳腺癌預測步驟3:定義4級標題。####<fontcolor="black">硬間隔</font>1.3

任務實施運行結果:1

乳腺癌預測步驟4:構造模擬數(shù)據(jù)。X,y=make_blobs(n_samples=60,centers=2,cluster_std=0.4,random_state=0)plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=plt.cm.Paired)1.3

任務實施運行結果:1

乳腺癌預測1.3

任務實施1

乳腺癌預測步驟5:可視化樣本和分類器(用函數(shù)表示)的最大間隔(分類器和樣本邊界的距離)。#Matplotlib支持中文字符mpl.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False#畫樣本plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=plt.cm.Paired)1.3

任務實施#畫函數(shù)x_fit=np.linspace(0,3,50)y_1=1*x_fit+0.8plt.plot(x_fit,y_1,'-c)#畫邊距plt.fill_between(x_fit,y_1-0.6,y_1+0.6,edgecolor='none',color='#AAAAAA',alpha=0.4)接上1

乳腺癌預測1.3

任務實施#畫函數(shù)y_2=-0.3*x_fit+3plt.plot(x_fit,y_2,'-k')#畫邊距plt.fill_between(x_fit,y_2-0.4,y_2+0.4,edgecolor='none',color='#AAAAAA',alpha=0.4)接上1

乳腺癌預測1.3

任務實施運行結果如下:從圖中看出,藍色線與數(shù)據(jù)集最大間隔大于黑色線的,因此藍色線代表的函數(shù)更優(yōu)。1

乳腺癌預測支持向量機提供了在眾多可能的分類器之間進行選擇的原則,確保對未知數(shù)據(jù)集具有更高的泛化性。1.3

任務實施1

乳腺癌預測步驟6:訓練SVM分類器。svm_model=SVC(kernel='linear')svm_model.fit(X,y)運行結果:1.3

任務實施1

乳腺癌預測步驟7:準備SVM分類器參數(shù)。#最佳函數(shù)w=svm_model.coef_[0]b=svm_ercept_[0]a=-w[0]/w[1]y_3=a*x_fit-b/w[1]1.3

任務實施#最大邊距下界b_down=svm_model.support_vectors_[0]y_down=a*x_fit+b_down[1]-a*b_down[0]#最大邊距上界b_up=svm_model.support_vectors_[-1]y_up=a*x_fit+b_up[1]-a*b_up[0]接上1

乳腺癌預測1.3

任務實施1

乳腺癌預測步驟8:可視化樣本和線性SVM的最大間隔。#畫散點圖plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=plt.cm.Paired)#畫函數(shù)plt.plot(x_fit,y_3,'-c')#畫邊距plt.fill_between(x_fit,y_down,y_up,edgecolor='none',color='#AAAAAA',alpha=0.4)1.3

任務實施#畫支持向量plt.scatter(svm_model.support_vectors_[:,0],svm_model.support_vectors_[:,1],edgecolor='b',s=80,facecolors='none')接上1

乳腺癌預測1.3

任務實施運行結果如下:帶藍邊的點是距離SVM分類器最近的點,稱之為支持向量。1

乳腺癌預測可以看出,SVM分類器有著和數(shù)據(jù)集盡量大的最大間隔。1.3

任務實施1

乳腺癌預測步驟9:定義4級標題。####<fontcolor="black">軟間隔</font>運行結果:軟間隔相比于硬間隔而言,允許個別樣本出現(xiàn)在間隔帶中。如果沒有一個原則進行約束,滿足軟間隔的分類器就會出現(xiàn)很多條。SVC對分錯的數(shù)據(jù)進行懲罰,參數(shù)C就是懲罰參數(shù)。懲罰參數(shù)越小,容忍性就越大。1.3

任務實施1

乳腺癌預測步驟10:構造離散度更大的模擬數(shù)據(jù)。X,y=make_blobs(n_samples=60,centers=2,cluster_std=0.9,random_state=0)plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=plt.cm.Paired)運行結果:1.3

任務實施1

乳腺癌預測步驟11:可視化SVM模型(C=1)。svm_model=SVC(kernel='linear',C=1)svm_model.fit(X,y)#最佳函數(shù)w=svm_model.coef_[0]b=svm_ercept_[0]a=-w[0]/w[1]x_fit=np.linspace(-1.5,4,50)y_3=a*x_fit-b/w[1]1.3

任務實施#最大邊距下界b_down=svm_model.support_vectors_[0]y_down=a*x_fit+b_down[1]-a*b_down[0]#最大邊距上界b_up=svm_model.support_vectors_[-1]y_up=a*x_fit+b_up[1]-a*b_up[0]#畫散點圖plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap=plt.cm.Paired)接上1

乳腺癌預測1.3

任務實施#畫函數(shù)plt.plot(x_fit,y_3,'-c')#畫邊距plt.fill_between(x_fit,y_down,y_up,edgecolor='none',color='#AAAAAA',alpha=0.4)#畫支持向量plt.scatter(svm_model.support_vectors_[:,0],svm_model.support_vectors_[:,1],edgecolor='black',s=80,facecolors='none')接上1

乳腺癌預測1.3

任務實施運行結果如下:懲罰參數(shù)C=0.2時,SVM會更具包容性,從而兼容更多的錯分樣本。1

乳腺癌預測1.3

任務實施1

乳腺癌預測步驟12:進一步放松樣本出現(xiàn)在間隔帶的限制,可視化SVM模型(C=0.2)。svm_model=SVC(kernel='linear',C=0.2)svm_model.fit(X,y)#最佳函數(shù)w=svm_model.coef_[0]b=svm_ercept_[0]a=-w[0]/w[1]y_3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論