本文目錄一覽:
- 1、數據來源與處理
- 2、HWSD土壤數據集(v1.2)的土壤類型代碼
- 3、Python數據分析(八):農糧組織數據集探索性分析(EDA)
- 4、請問誰有復活節三句半的文字資料?(這兩天就需要用的,多謝啦!)
- 5、普洱茶哪個牌子最好
- 6、用python實現紅酒數據集的ID3,C4.5和CART算法?
數據來源與處理
區域地殼穩定性基礎數據來源於中國地質科學院地質力學研究所主編的《中國區域地殼穩定性圖(1∶500萬)》,1997年由地質出版社出版[19]。基於ArcGIS平台,將中國區域地質穩定性圖數字化,並對柵格化後的數據統計分析。
斷裂活動性基礎數據來源於鄧啟東主編的《中國活動構造圖(1∶400萬)》,2007年由地震出版社出版[20]。
海拔與地表起伏度基礎數據來源於美國太空總署(NASA)和國防部國家測繪局(NIMA)聯合測量的數字地表高程模型SRTM DEM,數據精度為3弧秒(90×90m),由中國科學院資源環境數據中心提供。基於SRTM DEM數據,利用ArcGIS空間分析模塊Spatial Analyst中鄰域統計工具Neighbor-hood Statistics,以4×4像元的矩形作為模版算子對整個研究區進行遍歷計算,分別提取各區域最高海拔和最低海拔數據,運用柵格計算器calculator,將兩者求差,得到一個新柵格圖層,其每個柵格的值是以這個柵格為中心的確定領域的地形起伏度值。
植被覆蓋度基礎數據來源於2009年全球旬NDVI數據集,空間分辨率:0.05°×0.05°,坐標系統:WGS1984,NDVI值域為[-1,+1],由地球系統科學數據共享平台提供。旬NDVI數據均通過國際通用的可以進一步消除雲、大氣、太陽高度角等部分干擾的最大合成法獲得,利用像元二分模型估算植被覆蓋度。
岩溶發育程度基礎數據來源於中國地質調查局發展研究中心「區域地質調查跟蹤與部署研究項目」(1212011121130)。
地表濕潤指數基礎數據來源於1961~2013年中國地面降水月值0.5°×0.5°格點數據集(V2.0)數據、1961~2013年中國地面氣溫月值0.5°×0.5°格點數據集(V2.0)和日照時數數據,由中國氣象科學數據共享服務網提供。地表濕潤指數計算公式為:
W=P/ET0
式中:W為濕潤指數;P為降水量(mm);ET0為潛在蒸散量(mm)。ET0採用Thornthwaite模型計算。
土壤可蝕性基礎數據來源於世界土壤數據庫(HWSD v1.1),由地球系統科學數據共享平台提供。數據比例尺為1km格網,數據格式為Geotiff,時間為2009年。該數據庫由聯合國糧農組織(FAO)、國際應用系統分析研究所(IIASA)、荷蘭ISRIC-World Soil Information、中國科學院南京土壤研究所(ISSCAS)、歐洲委員會聯合研究中心(JRC)於2009年3月共同發佈。數據庫提供了各個格網點的土壤類型(FAO-74、85、90)、土壤相位、土壤(0~100cm)理化性狀(16個指標)等信息。採用在我國廣泛使用的EPIC模型,利用土壤有機質和顆粒組成因子(粘粒、粉粒、砂粒)進行估算土壤可蝕性因子K。
土壤侵蝕強度基礎數據來源於中國1∶10萬土壤侵蝕強度等級圖(1997~2000年),由地球系統科學數據共享平台黃土高原科學數據共享平台提供。數據內容覆蓋1997~2000年1∶10萬各省土壤侵蝕強度等級數據,包括水力侵蝕、風力侵蝕、凍融侵蝕、重力侵蝕、工程侵蝕5個一級類別;微度、輕度、中度、強度、極強度、劇烈6個二級另類別,由第二次全國遙感水土流失普查獲得。
社會經濟數據採用的是全國千米網格GDP分佈數據集和全國千米網格人口分佈數據集,由國家科技基礎條件平台:地球系統科學數據共享平台()提供。
土地覆被數據採用的是地球系統科學數據共享平台提供的2009年全球1km土地覆被數據集(GlobCover)。GlobCover是歐洲空間局(European Space Agency)建立的全球土地覆被數據集,數據集是根據UNLCCS分類標準,綜合採用監督分類和非監督分類兩種方法對多時相的MERIS L1B數據進行分類而得到的。GlobCover數據集空間分辨率5°×5°。根據需要,本書將土地覆被類型合併為耕地、林地、草地、水域、未利用地、城鄉工礦居民用地等6種土地覆被類型。
本書柵格圖層統一重採樣為1km×1km的格網,各圖層投影參數統一設定為:Projection: Albers;False_Easting: 0.000000;False_Northing: 0.000000;Central_Meridian: 105.000000;Standard_Parallel_1:25.000000;Standard_Parallel_2: 47.000000;Latitude_Of_ Origin: 0.000000;Linear Unit: Meter(1.000000);Geographic Coordinate System: GCS_WGS_1984。
HWSD土壤數據集(v1.2)的土壤類型代碼
HWSD土壤數據集(v1.2)的土壤類型代碼數據來源於聯合國糧農組織(FAO)和維也納國際應用系統研究所(IIASA)所構建的世界土壤數據庫(Harmonized World Soil Database version 1.1 )(HWSD). 中國境內數據源為第二次全國土地調查南京土壤所所提供的1:100萬土壤數據。 該數據可為建模者提供模型輸入參數,農業角度可用來研究生態農業分區,糧食安全和氣候變化等。數據格式:grid柵格格式,投影為WGS84。採用的土壤分類系統主要為FAO-90。
Python數據分析(八):農糧組織數據集探索性分析(EDA)
這裡我們用 FAO(Food and Agriculture Organization) 組織提供的數據集,練習一下如何利用python進行探索性數據分析。
我們先導入需要用到的包
接下來,加載數據集
看一下數據量,
看一下數據的信息,
我們先來看一下variable,variable_full這兩列的信息,
看一下統計了多少國家,
看一下有多少個時間周期,
看一下時間周期有哪些,
我們看一下某一列某個指標的缺失值的個數,比如variable是total_area時缺失值的個數,
我們通過幾個維度來進行數據的分析:
我們按照上面的處理繼續,現在我們想統計一下對於一個時間周期來說,不同國家在這個周期內的變化情況,
我們也可以按照國家分類,查看某個國家在不同時期的變化,
我們還可以根據屬性,查看不同國家在不同周期內的變化情況,
我們還可以給定國家和指標,查看這個國家在這個指標上的變化情況,
我們還有region(區域)沒有查看,我們來看一下:
通過上圖可以看出,區域太多,不便於觀察,我們可以將一些區域進行合併。減少區域數量有助於模型評估,可以創建一個字典來查找新的,更簡單的區域(亞洲,北美洲,南美洲,大洋洲)
我們來看一下數據變化,
緊接着上面的數據處理,我們重新導入一下包,這次有一些新包,
我們看一下水資源的情況,
通過上圖可以看出只有一小部分國家報告了可利用的水資源總量,這些國家中只有極少數國家擁有最近一段時間的數據,我們將刪除變量,因為這麼少的數據點會導致很多問題。
接下來我們看一下全國降雨指數,
全國降雨在2002年以後不再報到,所以我們也刪除這個數據,
我們單獨拿出一個洲來進行分析,舉例南美洲,我們來看一下數據的完整性,
我們也可以指定不同的指標,
接下來,我們使用 pandas_profiling 來對單變量以及多變量之間的關係進行統計一下,
這裡我們要計算的是,比如
我們按照 rural_pop 從小到大進行排序,發現的確有幾個國家的農村人口是負數,
人口數目是不可能小於0,所以這說明數據有問題,存在臟數據,如果做分析預測時,要注意將這些臟數據處理一下。
接下來我們看一下偏度,我們規定,
正態分佈的偏度應為零,負偏度表示左偏,正偏表示右偏。
偏度計算完後,我們計算一下峰度, 峰度也是一個正態分佈,峰度不能為負,只能是正數 ,越大說明越陡峭,
接下來我們看一下,如果數據分佈非常不均勻該怎麼辦呢,
上圖是2013-2017年國家總人數的分佈,通過上圖我們發現,人口量少於200000(不考慮單位)的國家非常多,人口大於1200000的國家非常少,如果我們需要建模的話,這種數據我們是不能要的。這個時候我們應該怎麼辦呢?
通常,遇到這種情況,使用 log變換 將其變為正常。 對數變換 是數據變換的一種常用方式,數據變換的目的在於使數據的呈現方式接近我們所希望的前提假設,從而更好的進行統計推斷。
接下來,我們用log轉換一下,並看一下它的偏度和峰值,
可以看出偏度下降了很多,減少了傾斜。
可以發現峰度也下降了,接下來我們看一下經過log轉換後的數據分佈,
雖然數據還有一些偏度,但是明顯好了很多,呈現的分佈也比較標準。
首先我們先來看一下美國的人口總數隨時間的變化,
接下來,我們查看北美洲每個國家人口總數隨着時間的變化,
這個時候我們發現,一些國家由於人口數量本身就少,所以整個圖像顯示的不明顯,我們可以改變一下參照指標,那我們通過什麼標準化?我們可以選擇一個國家的最小、平均、中位數、最大值…或任何其他位置。那我們選擇最小值,這樣我們就能看到每個國家的起始人口上的增長。
我們也可以用熱度圖來展示,用顏色的深淺來比較大小關係,
接下來我們分析一下水資源的分佈情況,
我們可以進行一下log轉換,
我們用熱度圖畫一下,
連續值可以畫成散點圖,方便觀看,
我們來看一下隨着季節變化,人均GDP的變化情況,
相關程度:
相關度量兩個變量之間的線性關係的強度,我們可以用相關性來識別變量。
現在我們單獨拿出來一個指標分析是什麼因素與人均GDP的變化有關係,正相關就是積極影響,負相關就是消極影響。
當我們在畫圖的時候也可以考慮一下利用bined設置一下區間,比如說連續值我們可以分成幾個區間進行分析,這裡我們以人均GDP的數量來進行分析,我們可以將人均GDP的數據映射到不同的區間,比如人均GDP比較低,比較落後的國家,以及人均GDP比較高,比較發達的國家,這個也是我們經常需要的操作,
做一下log變換,這裡是25個bin
我們指定一下分割的標準,
我們還可以看一下人均GDP較低,落後國家的內部數據,下面我們看一下內部數據分佈情況,用boxplot進行畫圖,
對於這部分的分佈,我們還可以統計看一下其他指標,如下圖所示,我們還可以看一下洪水的統計信息,
請問誰有復活節三句半的文字資料?(這兩天就需要用的,多謝啦!)
XX村,真正的永生神的讚美,而不是非常熟悉的程序,請大家多多包涵。
階段站的喜悅,興奮之情難以開口問我們說什麼,三句半。
聽着,聽着,但記住這一點,如果你不能集中精力,不能聽到。
耶穌來到這個世界的福音,為要拯救罪人一塊你儘快悔改,並迅速。
耶穌的醫療服務創造了一個奇蹟,人們的精神和快件的時候真的很驚訝。
33歲的被釘在十字架上顯着不同的寶血洗凈一切的罪,我真的不值得。
他釘在十字架上,三天復活,先知是好的,坐在寶座上,與真理,復活和升天。
天堂,天堂在我們的家庭力量雄厚,有「聖經」的天堂,是不??會說謊的。
天堂千里,多維數據集的長度和寬度的天國之門寶石牆。
天不作難,坐飛船太慢了,只要耶穌的話,一眨眼的功夫。
天堂是不尋常的,港區的音樂天使唱歌,一桌豐盛的酒席,我的口味。
不斷流動的生命之水,在12個月的生活果樹上雙方的氣味。
太陽和月亮,天上的榮耀,也沒有進一步的疾病和死亡,常健康。
天堂是一個很好的地方,這是我們的家,只要信心在耶穌,悔改。
聰明的童女迎新郎,油充滿了光,準備看主面,阿門。
三句半來完成,這是很好的建議,而不是讚美,再看看。
撲(4):經典三句半
1,我們四個人玩,有趣的手掌鼓,具有諷刺意味的???,不要哭
2,在西北五省遊戲清華大學,蘭州大學TKK外國人,我們的評價是非常好的
3榆中校區是真的寬敞,綠色,綠樹成蔭的校園建築之旅住宿是很好的教學樓,廁所電話和電視網絡
5,超市的蘋果是甜的和堅定的,價格是有點貴,結果逛了一圈明亮的
BR BR /
寬敞的星級酒店累人的到隊列/ 6,小區域醫院,服務態度也不好,藥物的種類是沒有疾病的情況下,最好是
/亞特蘭大總部轉一轉,很常見的,下降的陰影的角落噓聲!
8校園是非常漂亮的女孩是不容易被發現,更何況個子不高,她是一個很好的人!
9,真的累了很長的路要走鞋浪費每餐跑斷腿的減肥
10個女孩去食堂部分零食,你可以看到各種口味的吃了一遍又一遍,你只是吃
輪胎的牛肉麵11,防盜門,您的安全,以防止一季度,你想要去的海關行政
12也難以重要的瘋狂英語李楊贊學校是如此受歡迎,不怕害羞的天才嗷嗷叫
13,在今天上午的例行操作必須早黑燈瞎火的跑了一眼在旁邊無一下跌, BR /「14,有些學生真的很不錯,在黎明之前去上課,卷子存儲多個表占坐
15,人人都說大學擠這一點,我們不同意廣闊的校園法律提三畝山
16雨軍事訓練交叉很酷的大汗淋漓,如果不是在床上
17,聯誼寢室,吃一個人的遊戲,一個女人是不是累了,男孩總是覺得有點不對勁太多的錢
18,我們說,這是不完全正確的,也得罪
貓現在已準備就緒退(5):
(足協)
足協:中國足球中國足球經典三句半老闆
俱樂部:我問你害怕 BR /
球員:不精的人關心他
球迷繼續批評
2(超)
足協:新聯盟被稱為超級
俱樂部:尚未開始混亂
球員:牛奶母親
球迷的黑色和白色的貓嗎?
3(A)
足協:兩個聯盟中的一個
俱樂部:重命名絕對的黑色假的?
玩家:我的收入也不能少
球迷:黑盒子
(假球)
足球協會:假球需要證據
/俱樂部:足協通報比
球員:白花花的銀子誰不
球迷:所有
5(黑哨)
足協:俱樂部黑哨俺就抓
:一切都只是一個西瓜嗎?
球員:什麼是地獄,你吹啥啊
風扇(聯盟):罌粟
足協聯盟基礎
俱樂部:不幸的是,足協愛賭博 BR /
/
球員:間歇性的,你踢啊球迷:沒譜!
7(俱樂部)
足協:你是我所有的下屬
俱樂部:我的法律,我自己
/球員:球,,依靠我踢
球迷:國家倉鼠
8(IOC)
足協:提起奧運淚漣漣
俱樂部:
玩家責怪球員太多的錢:人是一個玩命踢
球迷:犯賤…… / 9(阿里漢)
足協:外國人阿里漢
俱樂部:「行,還得看
播放器為什麼西班牙
球迷無法忍受看到
10(中國隊)
足協:亞洲杯追求冠軍
/黃金
玩傢具樂部:土壤簽署獎金肯定是不年輕了,老
球迷:幾兩幾斤幾?
11(限薪)
足協文件安科發出
俱樂部:泥濘的水不能攪拌
/球員:我是誰限薪,誰是你的生活
球迷:投機取巧
12(閆珠利率)
足協:他說我的頭
俱樂部:躺在空說,眼淚嘩嘩的移動非常
玩家的球迷
:傻
BR / 13(世界盃)
足協:善惡進入世界盃
俱樂部的幾個鴨背背
球員:羅納爾多·迪尼奧地利衣服改變BR /
球迷傷心
14(米盧)
足協:老男人有一手
俱樂部:他急忙保持運行
球員:他能進入世界盃
球迷:真逗
15(長春亞泰)
BR /足球協會:
失敗,他們不會做的:黑色的行規是無情
播放器:使勁部門
球迷:怎樣才能公平
16(反射)
足協:失敗後的反思
俱樂部的苦果誰吃
球員:燈紅酒綠髮揮足夠的IT
粉絲:17(女)
足協感謝人死亡
女子足球…… / a
俱樂部:無論是燕子的頭哭
播放器是:通常是你
球迷:
足協
a
18(Konghan
播放器):誰說男人Konghan
俱樂部不亮:叫道:額外的獎勵嘗試
球迷:嚇死
19(培養年輕人)
足協:這件事情是非常重要的… / a
俱樂部:光
球員的唇直跳投票:錢或
球迷對我說:你高調
足球協會
(足球)
:這個任務是非常光榮
俱樂部:如何去像蠕蟲一樣
了輝煌的球員值得幾個錢啊
球迷:
毀了撲(6):
回復:要打開黨
B:你回到舞台
C:和金鑼打鼓
D:充電口
A:周末也起了個大早作為
B:穿着明星高中的 BR / C:課間休息干點啥
D:睡眠
A:加班至90.1
B:有沒有工作,渴望
C:紙堆腕錶完成
D:不要偷懶!
A:整天連軸轉
B:不這樣做的洗衣做飯
C:感謝我的另一半
E:永遠愛你!
A:02課程結束:03被埋沒的干
C:04每天成果的希望
D:保??羅?幫我過線
A:IT牛講課
B:通道路上的吝嗇
C:學會提出更多的建議
D:不要害羞 BR / A:
學生白骨精B:白領骨幹和精英
C:多點溝通和互動
D:所有的樂趣!
A:學院一直在發展
B:為學生團團轉
C:有什麼新的舉措
D的要求學院:網站
A:教師真的很不錯
B:認真,負責的頂級
C:眼睛的孩子,我不得不說
D:老師,辛苦!
A:快進到學習了一年多
B:多少歡樂和持久
C:未來的畢業測試他們的技能
D:大控股我! 。所取得的成就
了一定的成績。「 (三句半)酒店
美食吃一遍又一遍,
出現頭暈,耳熱酒酣
—什麼樹!
成果,麻將遊戲,
卡已滿,失去了更多更好的,有沒有觸摸
—藏拙。
圓珠筆頭的成就
如Mo軟心潑墨水
如果太少的數字圈
—高達蒂姆。
成果,在會議之間,制定措施,以文件章,
各級—誰做的?
成就一個紅包,
領先的家庭,為了找到問題的答案,
機會參加婚禮和葬禮
—更多發送。
成就流行的修辭風格,
的臨時混合以良好的信譽,
認真研究它,
—空!
產前和產後護理(三句半)
我們四個人來,
鑼鼓傢伙敲一,我不知道說什麼是錯的。
嘗試。
農田
糧食生產的高峰期,
無盡的人口增長並沒有增加,
差。唯一的孩子是一個很好
根據國家的有關政策,在
養老保險,
不壞。
給孩子吃,喝,
妻子,修房,
盲目的生殖損害的,
罪。
阿爾茨海默氏症,而不是婚姻,
近親繁殖的後果,
非法婚姻封鎖嚴,
檢查。
黨的政策
提高人們的生活
每家每戶成為一個
舒適。
一對夫婦一個孩子
少生孩子,節省更多的錢
為祖國的建設,貢獻
大。
計劃生育是國策,
少生孩子CAFE DE珊瑚,
的重男輕女的舊觀念,
來擺脫。
營養的兒童生活豐富的知識
環境優美,不孕不育新苗
聯營公司。
多子多福的舊觀念的
擔心吃擔心
磨損差異不吸收這個教訓,
危險的的。
一個新的時尚,新的社會
出生的男孩或女孩
男到女家落戶,
真棒。
的計劃生育政策,
品質的,人口的增加,
少了,但多沒用的,
多好。
計劃生育優生寶寶,
愛她的丈夫和妻子像蜜一樣甜,
要求召開的黨的指導
少生孩子。
今天的觀眾很多錢,
男人,婦女和兒童,領導能力,
如果不周到,
更多的指導。
三句半 – 咱士兵
局中的明星很多老師,今晚我們必須跑一跑,和你看到的,以及
語音和沒有前面的三句半,不管時,他說,一點都沒有。
生活是很不錯的,考試突擊測試數據湊錯了,重做,
其實,我們不懶,天明去上學,佔得一席課本上的存儲多個表;
打開英語書背,整個身體也感覺不到合適的,然後睡在宿舍里開了
進入休眠狀態,直到的天Ganghei千年門口排隊一日三餐,吃減肥。結束
一眨不眨的眼睛,什麼都沒有學習怎麼過臨時的熱捧頭髮熱,淡淡的。
為什麼繁忙的便衣起飛的整個行李改變制服,
刪除八達嶺長城,的教練走進軍營,從不當軍隊
,收集清晨起身,急急忙忙隊站,總是冒泡報告;
烈日滿頭大汗,刻苦的訓練和意圖,鵝打得非常艱苦痙攣;
晚餐非常積極的軍事訓練,一頓飯很快盆碗洗多水少,干清洗
棧一床被子好,累了,明天疊被側身睡不下的成本和努力,我發現
3天洗洗澡,衝進小噴嘴,清洗衣服不能發現有趣的;
偉大的軍營歌曲,二連戰獲獎歌曲的幸福九 – 九
流血流汗不流淚削減和淡出的肉沒有落後,摸爬滾打全不畏,人民軍隊;
在隊列中,有計劃,給他們一個機會,不要浪費寶貴的戰略撤退點;
這是一段
我們四個人站在階段,鼓
鑼沒有三句半
(鐺)麻煩!
早叫早的公雞揚聲器
無法運行,操作延遲,
終於
(clang!)!肉的
家禽
每個茅台三箱億元,終端補貼,隨便吃,
(clang!)廢話!
服務態度黑社會,
麵包半拉
(clang!)的真黑食堂擁擠的大米累人的!
62米32
砂接縫的麵包葛齒,在
飯菜變味你去退任八嘎
(鐺) 過去的好時光,四年的大學
喝酒泡妞麻將
周六,無處可去,
(嘿!)視頻!
書價飛漲,繁重的功課學習厭煩了你,
點蠟熬夜,化妝,
鐺!
教室陰潮不亮,佔領一個的座位點(兒童)沒有一個地方
東方商廈明年,
(clang!)不堪忍受!味道
音樂聊天打瞌睡沒有怎麼辦?
(clang!)一份!
畢業分配到
跨省您要支付的部分,
也是一個很好的出路,
(clang!)考研真的很難!累了
教師努力工作,
教育的靈魂之美,
其中考試沒考
(嘿!)慚愧!
吃的喝的葡萄酒消費量高,一個
食物的味道
校園酒店太暗而不能玩
(clang!)!
上面所說的,
理論校園完成校園與錯,?
鏟子呢?
(clang!)社會!
沒有犯謀殺
肝不對勁
你的胃攜帶的的屍體遠,
(Hmm!)支付!
第一任行政司司長,很多
群眾到底聽誰的呢?
終於統一
(pan!)會議!
河濱兒童
兩個人吃的有滋味的孩子,
不開燈,在黑暗中跳動
(PAN),整個事情!
站健康是非常緊張的,
扔果皮處以罰款
你為什麼要10?
(clang!)吐「鐵飯碗」的國有單位
天的破產是非常差的,
一起吃大
(鐺!)的老闆!
的豪華城市有一個真正的嗡嗡聲,兩毛
廁所找不到!
不要擔心你擔心多少
(嘿!)/準備今晚的晚會,
好節目
(clang!)撤退!
親愛的朋友們,新年是指日可待,我們幾個參與的樂趣,好哭的!
通常是太累了困擾壓力獎金太少,競爭有更多的機會更小的昏了過去!
工作流程,真鬧心,老闆生氣扣獎金,為生存而掙扎的出路!
你看起來更憔悴,臉色蒼白,烏黑的眼睛是黑色的,他是一個工作狂,你是誰!
每天昏昏欲睡簽署了一份非停止,結束加班,趕緊跑睡覺!
一個月,並期待着獲得資金,這些錢只夠填補她的肚子,做夢是脂,純天然,豐富的!
家庭和夫妻吵架,其實,不能只怪的文章,文章和更多的錢,這些錢是這麼好!
獨立作為一個陌生人在異鄉,孤獨,寂寞,每逢節日,我們應該努力被折磨!
工作一下午,我煮即食麵,我很想念很堅硬的土壤!
中午打飯的人太多了,我看到了頭,但沒有鍋。啥時候排到撤!
原來的餐點,大家都知道,一個良好的心情,突然同志要減半FAINT!
三天兩頭市中心發熱,頭暈,視力模糊,座頭鯨都知道,如果沒有體檢,三高!
肝細胞脂肪變性和一個較小的機構體重增加過少的運動,和運動活動,也建立更多,好嗎!
心情不好的時候少的皺紋多皺眉引進對象,運行,幫助!
除了工作就是睡覺,吃飯,撒尿單單調的節奏,不要笑!
很高興看到大家都笑開顏下表演,恭祝大家新年快樂,再見!
長期繁榮鐺一斤,一斤,長期的繁榮鐺磅,長期的繁榮,英鎊的長期繁榮英鎊,咚的一聲!
自由貿易區?的家人,當然,你放棄家庭,兄弟和姐妹,快樂鍾,哈哈。 :)
從此定居在免費版本中,每天早上急於瀏覽器打開電腦前的鞋穿反:(
要問什麼樣的自由,好男人!總計不斷,偶爾有人來搗亂,打翻了!:
環境很漂亮,有才華的美國一個人扔深情的羨煞,口水?:P
在 /「無言的旗幟始終遵循轉移的敘述,,有時提醒的意見,我愛你。:
齊的兄弟和姐妹心,力挽狂瀾的危險,一直在尋找的家庭感到不舒服一目了然?:)
免費醫療,禁止寫在牆壁上的混亂,隨地亂吐痰,鄙視!
英鎊的長期繁榮和長期繁榮磅鐺鐺磅重的長期繁榮,英鎊的長期繁榮,的長期繁榮磅鐺!
MM的照片,難壞了的歷史最悠久的老人們,它是沒有生命的光澤醜陋。 (
,砸,搶,能寫收回去壯志未酬,嘆了口氣,看着我的妹妹還取決於在月球上?:
貽貝一直不敢水的賭徒,這是不是一個賭徒,從那時起,當掌柜,躊躇滿志?:P
rechmond幕後,不戴戒指表面不暴露,和誰去掀起紅蓋頭,瞅瞅?:/
鳳凰不死的老兵偶像廚師行了,不用做,只要你敢公布就死定了!
/晏淤夢想愛夢想,做你的人龍,鳳,龍和鳳夢幻舞步,共同:)
英鎊英鎊的長期繁榮鐺龍咚鏘磅的長期繁榮和長期繁榮咚咚咚咚,咚的一聲長!
領導人唱作家,文學人才是大如斗,項目繼續表一表,離開了嗎?:P
排名很難蝦泄漏我記得你呢?送酒。 :P
作家水手和雜項兩個是什麼是什麼是什麼,不打?
條貫通古往今來的收益和損失的大濮存昕也是不確定的,如果不是,天都峰:(
說到侵入寫下半身假的,真正的,你偷偷飽眼福?人!:BR / 個人感情是好是壞,意識流是非常糟糕的,的成品酒寫入咖啡,我的愛!:
政治北方和南方,東方和西方,自然和人為災害,我是窮人,我捐的錢印泥?夢?:
/小說詩歌也歡迎,字字珠璣足夠的水平,兩個讀汗ing:(/ A
的嘣嘣隆咚鏘,咚咚,長期繁榮的長期繁榮鐺磅磅重的長期繁榮,長期繁榮磅的鍋!
如何去免費新年已經計劃今年年底江東紮實工作報告,股息!
誰說我就不多說了股息對我的愛一直偷懶了,為何在白天,但不是嗎?夜班。:|,春來自希望的中國新年好運身體小心喝假酒放倒?:(
老人從未受到黑客的攻擊,只是想有一個真正的展覽。暈倒了一大閃光…… /
英鎊龍咚鏘隆咚鏘,咚咚的長期繁榮和長期繁榮,英鎊英鎊的長期繁榮鐺英鎊!
昨晚,我唱三句半,潛水在現場看到,華傑,我問MM可能是太忙了?珍娜??:)
三一重工線程最勤奮後,看到真正的有能力持有美國是誰?小髮夾?:)
傷心的不是藍色的眼淚,為什麼碧藍如玉的眼淚嗎?因為海決堤,灌溉,! :)
錯誤的爆炸聲惡作劇,水不閃回以保持四竄的老人,叫凄慘的呢? }:
雪蓮,如果新的外語密碼是假的,問被譽為嘿,啊哈哈? :)
笑嘻嘻的,瀟洒的風度沒有敵人,這樣一個美妙的GG,下降一笑而過? :)
可見的令人難以置信的美麗的WTA乘客在哪裡可以找到?也決定了,我泡在一點點。 (
美麗的色彩,日餐,但遺憾的是沒有人看到他的臉的老頭走近過獎了,找到一個。:(
/磅長長期繁榮的熱潮鐺,鐺磅的長期繁榮,英鎊,長期的繁榮,香港的長期繁榮,英鎊,英鎊鐺!
WLS的異性戀世俗的,九天仙女做凡人,讓每個人都喝醉了,失去了靈魂唱腔的球迷嗎?
一個西周時期的古董,背心款式,優良品種,晃老人股份作戰墊湯姆?:( / /碎草咪咪愛嘟囔着,沒有一個人敢結婚的女兒,只有傻大膽的老鼠。:)
漂亮的小髮夾放棄了白天和晚上的互聯網,提示失敗的兄弟頻率的騷擾,這是值得:)
既可以用來建立高層建築,也可以用來拍攝頭的事的人都知道,磚?:}
忽忽悠悠忽忽油,突然一個長期的,長期忽悠乎乎的是什麼?忽悠忽悠忽悠!
除夕在水面上,一個80歲的新郎說廢話嗎?長?:)
你卑微的僕人,總是大家山區農村花都,小樓,佔主導地位的「空中國王」慎獨:
/長期繁榮鏗英鎊英鎊隆的咚鏘,英鎊的長期繁榮,香港的長期繁榮,英鎊,英鎊咚的一聲!
看看她千百度,玉蘭花園的樹香,混淆香香好聞莫貪婪氣味:(
威望動不動地顫抖冷,冷,冷麒麟,做更多的運動防感冒,請注意:{
功能更熔點越南,厚厚的黑色,而不是厚黑學,死纏爛打Kedang,必須的!
開心羅漢是一個和尚,愛酒愛吃肉愛的姑娘說,保持繼電器演示:}
葉埡嗯飄飄飄,如葉,伏特加酒似火烈,給你帶來溫暖感謝你呢? )
Ousuomiluo楊女孩禮服背心T台秀表演深深一鞠躬 – 三江源
雨後的陽光玫瑰紅,勝利局灶性弱的晚風,人不能明天再說 – 愛儂:)
寬鬆的年輕女孩鬼小丫,不伴夜間窗口家政服務,抓住你能打敗可怕?}:
南門車輛南瓜車,慢慢地唱悲傷的歌,我問你哭什麼樣的車?沒轍了:(
普洱茶哪個牌子最好
如今的普洱茶市場,雖然不能說如日中天,卻也勢頭正猛。從雲南省老國營四大茶廠開始,發展到如今的普洱茶品牌遍地開花,普洱茶確實經歷了十分漫長的成長過程。伴隨着消費者品飲需求的多樣化,各大普洱茶品牌如雨後春筍般出現在市場上。然而,品牌雖多,口碑卻參差不一,產品差異等因素直接影響着各品牌的發展。今天我們就一起盤點市場上那些脫穎而出的普洱茶品牌,看看消費者口口相傳的品牌都有哪些?
一、大益
大益集團的前身為雲南省原國營茶廠之一的勐海茶廠,這個光輝的歷史前身讓大益集團添色不少。近年來,大益的茶品在市場上得到很大的反響。它成熟而穩定的制茶工藝,尤其是在熟茶的發酵方面頗有建樹。比較魔性的是,大益出產的產品既能滿足大眾的品飲需求,在高端茶的發展方面也毫不示弱。如我們熟知的「7542」熟茶和「7542」生茶,因物美價廉,基本滿足了大眾的要求,頗受歡迎。在高端茶方面,大益的熱門茶品也不少,如金大益、軒轅號,以及最近大熱的「千羽孔雀」等,都是如今普洱茶市場上被炒得很熱的產品。
二、下關
如今的下關沱茶集團,前身是成立於1941年的雲南省國營茶廠——下關茶廠。既然以「沱茶」二字作為該集團名字的元素之一,可想而知下關的沱茶最為出名。其中創製於1902年的「松鶴」下關沱茶,是擁有百年歷史的知名茶品。關於下關的沱茶,這裡還有句俗語,「生喝下關,熟飲勐海」,這裡的下關指的便是「下關沱」。此外,下關的一大特色便是 「煙味」,有些老茶客的眼裡,煙味是普洱茶的標配,因此煙味也成了下關的一大標籤。近年來,比較熱門的產品有:2009綠大樹十年經典回顧、下關五大金剛以及不久前發佈的藍印等。
三、陳升號
「陳升號」是雲南勐海陳升茶業有限公司於2009註冊成功的商標,發展至今,已成長為普洱茶中大樹茶領導品牌,該商標於2011年被認定為雲南省著名商標。俗話說,「班章為王」,它的獨特與霸氣使之別具一格。也因此,班章造就了陳升號,陳升號以班章聞名。在眾多產品之中,老班章是陳升號的標杆產品,此外,陳升號的霸王青餅和陳升一號也令眾多茶友競相追捧,且好評不斷。
四、福今
作為「班章普洱茶」概念的初創者,福今的名聲自然不會弱勢。令福今名聲大燥的是「大白菜」和「孔雀」班章等生態系列普洱茶品。雖然在「大白菜」和「孔雀」初創期間是在勐海茶廠與興海茶廠的生產車間製作的,但並未絲毫影響何氏兄弟創立福今的念頭。而後福今自立茶廠,推出福今普洱茶茶品,生產出標杆產品茶王青餅及特製系列,受到了消費者深深的喜愛。
五、瀾滄古茶
瀾滄古茶的前身是始建於1966年的景邁茶廠,成立至今,一直以芒景·景邁山的千年萬畝古茶園和邦崴古茶樹群為原料。作為高端熟茶的鼎鼎大名者,瀾滄古茶俘獲了不少熟茶愛好者的芳心。烏金號、0081和0085都是瀾滄古茶的熟茶明星,獨得消費者芳心。
六、斗記
斗記的好口碑首先來源於斗記品牌創始人陳海標,僅僅是為了一個產品包裝,他自創了十八褶疊法、泥鰍邊來包裹茶品,每七餅一提,筍殼包之,竹篾扎之,放入手提箱,只為了保證茶品在運輸途中的安全。其次是斗記的產品,無論是大小樹還是春秋茶,都會在茶品的包裝上清晰的表明。最後,斗記的茶品以大斗、金斗、顛峰之斗最為出名,吸粉無數。
七、寶和祥
寶和祥,源於雲南普洱茶歷史上著名老茶莊共同的集團品牌稱號,有「寶和祥」標識,便為雲南普洱茶的一線產品。如今的勐海寶和祥茶葉有限公司,成立於2012年,李文華為創始人。近年來,寶和祥膾炙人口的茶葉經典產品有紀廿,2012布易班、烏金號、易武秋蘭、蘭亭熟等。
八、合和昌
勐海合和昌茶業有限公司於2010年在勐海成立,是普洱茶中的一個高端品牌,以拼配高品質普洱茶而出名。合和昌產品經過積累,基本形成了:「星系列」、「潤系列」「藏系列」、「熟茶系列」等四大系列十二款產品。其中,星系列產品包括:合和昌四星、合和昌五星和合和昌六星;潤系列產品包括:合和昌和潤、合和昌厚潤、合和昌圓潤;藏系列包括:合和昌珍藏;熟茶系列包括:合和昌精品、合和昌老茶頭,均獲市場高度認可。2010六星,三載朝陽為合和昌的知名產品。
九、雨林古茶坊
雨林古茶坊全稱為勐海雨林古茶坊茶葉有限責任公司。該公司成立於2012年,以專註手工制古樹普洱茶的聞名,真正古樹、傳統手工是雨林古茶坊的理念。在大多數消費者的眼裡,雨林古茶坊給人的感受一直都是「大氣和時尚」,騰蛟成鳳一直是眾多消費者眼中高高在上的茶品。此外,精美的包裝、舒適的滋味和精美的雨林海報,贏得了不少年輕消費者的青睞。
十、潤元昌
潤元昌——雲南省勐海潤元昌茶廠的旗下品牌。專註於高端、專業級普洱茶的開發,以布朗山茶區普洱茶為原料。近年來,潤元昌的茶品在市場上持續走俏,贏得了不少忠實粉絲。作為一個典型的茶品驅動型品牌,潤元昌以春茶發酵的熟茶深受業界好評。從新產品上來說,潤元昌的陳皮普洱茶和單泡裝普洱茶也在不斷發展壯大。
十一、黎明八角亭
雲南農墾集團勐海八角亭茶業有限公司,簡稱八角亭茶業,原黎明茶廠位於雲南省西雙版納傣族自治州勐海縣勐遮鎮,隸屬於雲南省農墾集團公司。或許是因為老國營茶廠發展至今的緣故,讓大家信賴它的制茶技術,加之八角亭的茶品種類豐富,餅茶、沱茶、磚茶、散茶皆有生產,為消費者提供了更為豐富的選擇。因此,八角亭的產品也深受消費者的青睞。另外一個消費者青睞八角亭產品的原因是價格性價比。八角亭的產品基本定位於中下端,深受普通消費者的喜愛,再加上八角亭中期茶的熱度,口碑自然不會太差。
十二、老同志
老同志是雲南海灣茶葉公司旗下的一個知名品牌,榮獲「雲南省著名品牌」、「普洱茶十大知名品牌」的稱號。老同志的茶以名山系列為尊,如班章、冰島等。各大名山之中,以班章王最貴,新茶基本過萬一餅。也有價格比較實惠的茶品,五年熟茶從幾十到幾百元不等,放置幾年之後味道更佳。
十三、中茶
「中茶」商標可以說是新中國成立以來最悠久的商標之一了。2006年,中國茶葉股份有限公司(註冊商標:中茶)經過國家商務部的審批,被認定為第一批「中華老字號」。近年來,茶界出了許多孔雀,中茶也不示弱,而且出的是六星。作為一家老字號,或者可以說是普洱熟茶的啟蒙商標之一,中茶的茶品自然也得到了不少消費者的喜愛。
【免費派送茶品】 4份茶樣品鑒裝(2生,2熟)
【茶品重量】8-10克
【派茶備註】本次派茶,一人一份,免費包郵寄送,樂意喝的請關注我,或者私信哈!
祝大家在新的一年裡身體健康,平安幸福,牛轉乾坤!
用python實現紅酒數據集的ID3,C4.5和CART算法?
ID3算法介紹
ID3算法全稱為迭代二叉樹3代算法(Iterative Dichotomiser 3)
該算法要先進行特徵選擇,再生成決策樹,其中特徵選擇是基於「信息增益」最大的原則進行的。
但由於決策樹完全基於訓練集生成的,有可能對訓練集過於「依賴」,即產生過擬合現象。因此在生成決策樹後,需要對決策樹進行剪枝。剪枝有兩種形式,分別為前剪枝(Pre-Pruning)和後剪枝(Post-Pruning),一般採用後剪枝。
信息熵、條件熵和信息增益
信息熵:來自於香農定理,表示信息集合所含信息的平均不確定性。信息熵越大,表示不確定性越大,所含的信息量也就越大。
設x 1 , x 2 , x 3 , . . . x n {x_1, x_2, x_3, …x_n}x
1
,x
2
,x
3
,…x
n
為信息集合X的n個取值,則x i x_ix
i
的概率:
P ( X = i ) = p i , i = 1 , 2 , 3 , . . . , n P(X=i) = p_i, i=1,2,3,…,n
P(X=i)=p
i
,i=1,2,3,…,n
信息集合X的信息熵為:
H ( X ) = − ∑ i = 1 n p i log p i H(X) =- \sum_{i=1}^{n}{p_i}\log{p_i}
H(X)=−
i=1
∑
n
p
i
logp
i
條件熵:指已知某個隨機變量的情況下,信息集合的信息熵。
設信息集合X中有y 1 , y 2 , y 3 , . . . y m {y_1, y_2, y_3, …y_m}y
1
,y
2
,y
3
,…y
m
組成的隨機變量集合Y,則隨機變量(X,Y)的聯合概率分佈為
P ( x = i , y = j ) = p i j P(x=i,y=j) = p_{ij}
P(x=i,y=j)=p
ij
條件熵:
H ( X ∣ Y ) = ∑ j = 1 m p ( y j ) H ( X ∣ y j ) H(X|Y) = \sum_{j=1}^m{p(y_j)H(X|y_j)}
H(X∣Y)=
j=1
∑
m
p(y
j
)H(X∣y
j
)
由
H ( X ∣ y j ) = − ∑ j = 1 m p ( y j ) ∑ i = 1 n p ( x i ∣ y j ) log p ( x i ∣ y j ) H(X|y_j) = – \sum_{j=1}^m{p(y_j)}\sum_{i=1}^n{p(x_i|y_j)}\log{p(x_i|y_j)}
H(X∣y
j
)=−
j=1
∑
m
p(y
j
)
i=1
∑
n
p(x
i
∣y
j
)logp(x
i
∣y
j
)
和貝葉斯公式:
p ( x i y j ) = p ( x i ∣ y j ) p ( y j ) p(x_iy_j) = p(x_i|y_j)p(y_j)
p(x
i
y
j
)=p(x
i
∣y
j
)p(y
j
)
可以化簡條件熵的計算公式為:
H ( X ∣ Y ) = ∑ j = 1 m ∑ i = 1 n p ( x i , y j ) log p ( x i ) p ( x i , y j ) H(X|Y) = \sum_{j=1}^m \sum_{i=1}^n{p(x_i, y_j)\log\frac{p(x_i)}{p(x_i, y_j)}}
H(X∣Y)=
j=1
∑
m
i=1
∑
n
p(x
i
,y
j
)log
p(x
i
,y
j
)
p(x
i
)
信息增益:信息熵-條件熵,用于衡量在知道已知隨機變量後,信息不確定性減小越大。
d ( X , Y ) = H ( X ) − H ( X ∣ Y ) d(X,Y) = H(X) – H(X|Y)
d(X,Y)=H(X)−H(X∣Y)
python代碼實現
import numpy as np
import math
def calShannonEnt(dataSet):
“”” 計算信息熵 “””
labelCountDict = {}
for d in dataSet:
label = d[-1]
if label not in labelCountDict.keys():
labelCountDict[label] = 1
else:
labelCountDict[label] += 1
entropy = 0.0
for l, c in labelCountDict.items():
p = 1.0 * c / len(dataSet)
entropy -= p * math.log(p, 2)
return entropy
def filterSubDataSet(dataSet, colIndex, value):
“””返回colIndex特徵列label等於value,並且過濾掉改特徵列的數據集”””
subDataSetList = []
for r in dataSet:
if r[colIndex] == value:
newR = r[:colIndex]
newR = np.append(newR, (r[colIndex + 1:]))
subDataSetList.append(newR)
return np.array(subDataSetList)
def chooseFeature(dataSet):
“”” 通過計算信息增益選擇最合適的特徵”””
featureNum = dataSet.shape[1] – 1
entropy = calShannonEnt(dataSet)
bestInfoGain = 0.0
bestFeatureIndex = -1
for i in range(featureNum):
uniqueValues = np.unique(dataSet[:, i])
condition_entropy = 0.0
for v in uniqueValues: #計算條件熵
subDataSet = filterSubDataSet(dataSet, i, v)
p = 1.0 * len(subDataSet) / len(dataSet)
condition_entropy += p * calShannonEnt(subDataSet)
infoGain = entropy – condition_entropy #計算信息增益
if infoGain = bestInfoGain: #選擇最大信息增益
bestInfoGain = infoGain
bestFeatureIndex = i
return bestFeatureIndex
def creatDecisionTree(dataSet, featNames):
“”” 通過訓練集生成決策樹 “””
featureName = featNames[:] # 拷貝featNames,此處不能直接用賦值操作,否則新變量會指向舊變量的地址
classList = list(dataSet[:, -1])
if len(set(classList)) == 1: # 只有一個類別
return classList[0]
if dataSet.shape[1] == 1: #當所有特徵屬性都利用完仍然無法判斷樣本屬於哪一類,此時歸為該數據集中數量最多的那一類
return max(set(classList), key=classList.count)
bestFeatureIndex = chooseFeature(dataSet) #選擇特徵
bestFeatureName = featNames[bestFeatureIndex]
del featureName[bestFeatureIndex] #移除已選特徵列
decisionTree = {bestFeatureName: {}}
featureValueUnique = sorted(set(dataSet[:, bestFeatureIndex])) #已選特徵列所包含的類別, 通過遞歸生成決策樹
for v in featureValueUnique:
copyFeatureName = featureName[:]
subDataSet = filterSubDataSet(dataSet, bestFeatureIndex, v)
decisionTree[bestFeatureName][v] = creatDecisionTree(subDataSet, copyFeatureName)
return decisionTree
def classify(decisionTree, featnames, featList):
“”” 使用訓練所得的決策樹進行分類 “””
classLabel = None
root = decisionTree.keys()[0]
firstGenDict = decisionTree[root]
featIndex = featnames.index(root)
for k in firstGenDict.keys():
if featList[featIndex] == k:
if isinstance(firstGenDict[k], dict): #若子節點仍是樹,則遞歸查找
classLabel = classify(firstGenDict[k], featnames, featList)
else:
classLabel = firstGenDict[k]
return classLabel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
下面用鳶尾花數據集對該算法進行測試。由於ID3算法只能用於標稱型數據,因此用在對連續型的數值數據上時,還需要對數據進行離散化,離散化的方法稍後說明,此處為了簡化,先使用每一種特徵所有連續性數值的中值作為分界點,小於中值的標記為1,大於中值的標記為0。訓練1000次,統計準確率均值。
from sklearn import datasets
from sklearn.model_selection import train_test_split
iris = datasets.load_iris()
data = np.c_[iris.data, iris.target]
scoreL = []
for i in range(1000): #對該過程進行10000次
trainData, testData = train_test_split(data) #區分測試集和訓練集
featNames = iris.feature_names[:]
for i in range(trainData.shape[1] – 1): #對訓練集每個特徵,以中值為分界點進行離散化
splitPoint = np.mean(trainData[:, i])
featNames[i] = featNames[i]+’=’+'{:.3f}’.format(splitPoint)
trainData[:, i] = [1 if x = splitPoint else 0 for x in trainData[:, i]]
testData[:, i] = [1 if x = splitPoint else 0 for x in testData[:, i]]
decisionTree = creatDecisionTree(trainData, featNames)
classifyLable = [classify(decisionTree, featNames, td) for td in testData]
scoreL.append(1.0 * sum(classifyLable == testData[:, -1]) / len(classifyLable))
print ‘score: ‘, np.mean(scoreL)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
輸出結果為:score: 0.7335,即準確率有73%。每次訓練和預測的準確率分佈如下:
數據離散化
然而,在上例中對特徵值離散化的劃分點實際上過於「野蠻」,此處介紹一種通過信息增益最大的標準來對數據進行離散化。原理很簡單,當信息增益最大時,說明用該點劃分能最大程度降低數據集的不確定性。
具體步驟如下:
對每個特徵所包含的數值型特徵值排序
對相鄰兩個特徵值取均值,這些均值就是待選的劃分點
用每一個待選點把該特徵的特徵值劃分成兩類,小於該特徵點置為1, 大於該特徵點置為0,計算此時的條件熵,並計算出信息增益
選擇信息使信息增益最大的劃分點進行特徵離散化
實現代碼如下:
def filterRawData(dataSet, colIndex, value, tag):
“”” 用於把每個特徵的連續值按照區分點分成兩類,加入tag參數,可用於標記篩選的是哪一部分數據”””
filterDataList = []
for r in dataSet:
if (tag and r[colIndex] = value) or ((not tag) and r[colIndex] value):
newR = r[:colIndex]
newR = np.append(newR, (r[colIndex + 1:]))
filterDataList.append(newR)
return np.array(filterDataList)
def dataDiscretization(dataSet, featName):
“”” 對數據每個特徵的數值型特徵值進行離散化 “””
featureNum = dataSet.shape[1] – 1
entropy = calShannonEnt(dataSet)
for featIndex in range(featureNum): #對於每一個特徵
uniqueValues = sorted(np.unique(dataSet[:, featIndex]))
meanPoint = []
for i in range(len(uniqueValues) – 1): # 求出相鄰兩個值的平均值
meanPoint.append(float(uniqueValues[i+1] + uniqueValues[i]) / 2.0)
bestInfoGain = 0.0
bestMeanPoint = -1
for mp in meanPoint: #對於每個劃分點
subEntropy = 0.0 #計算該劃分點的信息熵
for tag in range(2): #分別劃分為兩類
subDataSet = filterRawData(dataSet, featIndex, mp, tag)
p = 1.0 * len(subDataSet) / len(dataSet)
subEntropy += p * calShannonEnt(subDataSet)
## 計算信息增益
infoGain = entropy – subEntropy
## 選擇最大信息增益
if infoGain = bestInfoGain:
bestInfoGain = infoGain
bestMeanPoint = mp
featName[featIndex] = featName[featIndex] + “=” + “{:.3f}”.format(bestMeanPoint)
dataSet[:, featIndex] = [1 if x = bestMeanPoint else 0 for x in dataSet[:, featIndex]]
return dataSet, featName
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
重新對數據進行離散化,並重複該步驟1000次,同時用sklearn中的DecisionTreeClassifier對相同數據進行分類,分別統計平均準確率。運行代碼如下:
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt
scoreL = []
scoreL_sk = []
for i in range(1000): #對該過程進行1000次
featNames = iris.feature_names[:]
trainData, testData = train_test_split(data) #區分測試集和訓練集
trainData_tmp = copy.copy(trainData)
testData_tmp = copy.copy(testData)
discritizationData, discritizationFeatName= dataDiscretization(trainData, featNames) #根據信息增益離散化
for i in range(testData.shape[1]-1): #根據測試集的區分點離散化訓練集
splitPoint = float(discritizationFeatName[i].split(‘=’)[-1])
testData[:, i] = [1 if x=splitPoint else 0 for x in testData[:, i]]
decisionTree = creatDecisionTree(trainData, featNames)
classifyLable = [classify(decisionTree, featNames, td) for td in testData]
scoreL.append(1.0 * sum(classifyLable == testData[:, -1]) / len(classifyLable))
clf = DecisionTreeClassifier(‘entropy’)
clf.fit(trainData[:, :-1], trainData[:, -1])
clf.predict(testData[:, :-1])
scoreL_sk.append(clf.score(testData[:, :-1], testData[:, -1]))
print ‘score: ‘, np.mean(scoreL)
print ‘score-sk: ‘, np.mean(scoreL_sk)
fig = plt.figure(figsize=(10, 4))
plt.subplot(1,2,1)
pd.Series(scoreL).hist(grid=False, bins=10)
plt.subplot(1,2,2)
pd.Series(scoreL_sk).hist(grid=False, bins=10)
plt.show()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
兩者準確率分別為:
score: 0.7037894736842105
score-sk: 0.7044736842105263
準確率分佈如下:
兩者的結果非常一樣。
(但是。。為什麼根據信息熵離散化得到的準確率比直接用均值離散化的準確率還要低啊??哇的哭出聲。。)
最後一次決策樹圖形如下:
決策樹剪枝
由於決策樹是完全依照訓練集生成的,有可能會有過擬合現象,因此一般會對生成的決策樹進行剪枝。常用的是通過決策樹損失函數剪枝,決策樹損失函數表示為:
C a ( T ) = ∑ t = 1 T N t H t ( T ) + α ∣ T ∣ C_a(T) = \sum_{t=1}^TN_tH_t(T) +\alpha|T|
C
a
(T)=
t=1
∑
T
N
t
H
t
(T)+α∣T∣
其中,H t ( T ) H_t(T)H
t
(T)表示葉子節點t的熵值,T表示決策樹的深度。前項∑ t = 1 T N t H t ( T ) \sum_{t=1}^TN_tH_t(T)∑
t=1
T
N
t
H
t
(T)是決策樹的經驗損失函數當隨着T的增加,該節點被不停的劃分的時候,熵值可以達到最小,然而T的增加會使後項的值增大。決策樹損失函數要做的就是在兩者之間進行平衡,使得該值最小。
對於決策樹損失函數的理解,如何理解決策樹的損失函數? – 陶輕鬆的回答 – 知乎這個回答寫得挺好,可以按照答主的思路理解一下
C4.5算法
ID3算法通過信息增益來進行特徵選擇會有一個比較明顯的缺點:即在選擇的過程中該算法會優先選擇類別較多的屬性(這些屬性的不確定性小,條件熵小,因此信息增益會大),另外,ID3算法無法解決當每個特徵屬性中每個分類都只有一個樣本的情況(此時每個屬性的條件熵都為0)。
C4.5算法ID3算法的改進,它不是依據信息增益進行特徵選擇,而是依據信息增益率,它添加了特徵分裂信息作為懲罰項。定義分裂信息:
S p l i t I n f o ( X , Y ) = − ∑ i n ∣ X i ∣ ∣ X ∣ log ∣ X i ∣ ∣ X ∣ SplitInfo(X, Y) =-\sum_i^n\frac{|X_i|}{|X|}\log\frac{|X_i|}{|X|}
SplitInfo(X,Y)=−
i
∑
n
∣X∣
∣X
i
∣
log
∣X∣
∣X
i
∣
則信息增益率為:
G a i n R a t i o ( X , Y ) = d ( X , Y ) S p l i t I n f o ( X , Y ) GainRatio(X,Y)=\frac{d(X,Y)}{SplitInfo(X, Y)}
GainRatio(X,Y)=
SplitInfo(X,Y)
d(X,Y)
關於ID3和C4.5算法
在學習分類回歸決策樹算法時,看了不少的資料和博客。關於這兩個算法,ID3算法是最早的分類算法,這個算法剛出生的時候其實帶有很多缺陷:
無法處理連續性特徵數據
特徵選取會傾向於分類較多的特徵
沒有解決過擬合的問題
沒有解決缺失值的問題
即該算法出生時是沒有帶有連續特徵離散化、剪枝等步驟的。C4.5作為ID3的改進版本彌補列ID3算法不少的缺陷:
通過信息最大增益的標準離散化連續的特徵數據
在選擇特徵是標準從「最大信息增益」改為「最大信息增益率」
通過加入正則項係數對決策樹進行剪枝
對缺失值的處理體現在兩個方面:特徵選擇和生成決策樹。初始條件下對每個樣本的權重置為1。
特徵選擇:在選取最優特徵時,計算出每個特徵的信息增益後,需要乘以一個**「非缺失值樣本權重佔總樣本權重的比例」**作為係數來對比每個特徵信息增益的大小
生成決策樹:在生成決策樹時,對於缺失的樣本我們按照一定比例把它歸屬到每個特徵值中,比例為該特徵每一個特徵值占非缺失數據的比重
關於C4.5和CART回歸樹
作為ID3的改進版本,C4.5克服了許多缺陷,但是它自身還是存在不少問題:
C4.5的熵運算中涉及了對數運算,在數據量大的時候效率非常低。
C4.5的剪枝過於簡單
C4.5隻能用於分類運算不能用於回歸
當特徵有多個特徵值是C4.5生成多叉樹會使樹的深度加深
————————————————
版權聲明:本文為CSDN博主「Sarah Huang」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/236226.html