分類
發燒車訊

什麼車最實惠?這些優質國貨車型只要6-7萬 真不錯!_台中搬家公司

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

還在煩惱搬家費用要多少哪?台中大展搬家線上試算搬家費用,從此不再擔心「物品怎麼計費」、「多少車才能裝完」

吉利遠景指導價格:5。39-6。79萬吉利不僅僅有博瑞博越,接地氣的車型也有吉利遠景,儘管遠景定位是一款稍顯低端的入門級家用轎車,但是也可以看到吉利品牌目前對於自身產品的把控力度掌握的非常到位。遠景的進氣格柵有標誌性的家族回紋設計和黑色條幅風格,在細節處理上做了更細緻的優化,看上去質感提升了不少,而在內飾方面,相較於上一款的遠景,2016款的遠景採用了大量的軟質材料對內飾進行包裹,車內駕乘感受更加舒適。

已經不止一次有人問小編,想在六七萬左右買一台城市代步用車,但是又不想要兩廂車顯得不太夠“范兒”,有沒有什麼好的選擇?其實這個價位的車型由於成本的控制,多數以手動擋為主,但是優點就是自主品牌在這個細分市場的成熟度較高,而且手動擋的可靠性也更好,其實還是有不錯的車型可供參考。

長安悅翔V7

指導價格:5.99-8.79萬

悅翔V7在自主品牌轎車市場陣營裏面算是知名度非常高的一款產品,近期更是推出了1.0T渦輪增壓的配置車型豐富自身產品線。但是悅翔V7更多的還是用於家用代步,1.6L的自然吸氣車型已經完全可以滿足日常通勤需要。

2016款的悅翔V7外觀設計更加成熟,風格也逐漸趨向年輕化,對於購車預算不太充裕而且注重車型時尚感的年輕人來說非常具有吸引力。

內飾整體視覺感觀上看精緻度很高,功能性按鍵布局也是符合人體工程學設計,實用性和溝通感都不錯。作為悅翔V7來說,推薦2016款 1.6L手動 樂動型 ,指導價格6.59萬,車內配置較為豐富,而且帶有ESp穩定系統。

吉利遠景

指導價格:5.39-6.79萬

吉利不僅僅有博瑞博越,接地氣的車型也有吉利遠景,

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

擁有後台管理系統的網站,將擁有強大的資料管理與更新功能,幫助您隨時新增網站的內容並節省網站開發的成本。

儘管遠景定位是一款稍顯低端的入門級家用轎車,但是也可以看到吉利品牌目前對於自身產品的把控力度掌握的非常到位。

遠景的進氣格柵有標誌性的家族回紋設計和黑色條幅風格,在細節處理上做了更細緻的優化,看上去質感提升了不少,而在內飾方面,相較於上一款的遠景,2016款的遠景採用了大量的軟質材料對內飾進行包裹,車內駕乘感受更加舒適。

吉利遠景小編推薦的是可以直接考慮6.69萬元的自動幸福版,車內配置使用,而且整車檔次感也有着非常不錯的表現。

海馬M3

指導價格:5.58-8.18萬

海馬品牌雖然關注度不算高,但是其實旗下還是有些性價比不錯的車型,定位緊湊型的家用轎車海馬M3就是其中之一。

海馬前臉的設計非常出彩,豐富的線條設計將前臉的層次感營造得挺棒,配合上俯衝式的車側,海馬M3身上還是體現出一定的運動氛圍。

內飾中控的設計感也挺豐富,整體使用黑色的色調,配以銀色的鍍鉻裝飾,保證了視覺衝擊力的同時也提升了整車檔次感,海馬M3推薦的是2016款,1.5L手動智能舒適型,6.48萬的指導價格可以有皮質座椅以及更豐富的配置,性價比還是不錯。

全文總結,目前來說十萬以內的緊湊型轎車陣營是自主品牌成熟度較高的細分市場之一;但是六萬左右又是一個較大的售價門檻,低於六萬的車型配置普遍着實太低,實用性和功能性都不大,所以還是將預算稍微提高,所購買車輛才有更多的保障,畢竟汽車消費市場里,一分錢一分貨的老話還是真理。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※推薦台中搬家公司優質服務,可到府估價

台中搬鋼琴,台中金庫搬運,中部廢棄物處理,南投縣搬家公司,好幫手搬家,西屯區搬家

分類
發燒車訊

3萬塊首付買車?這三款體面的轎車和SUV首付3萬就可以開走_網頁設計公司

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

透過資料庫的網站架設建置,建立公司的形象或購物系統,並提供最人性化的使用介面,讓使用者能即時接收到相關的資訊

99萬長安逸動的外觀十分時尚,這也吸引了許多人關注逸動,逸動的車身尺寸為4620*1820*1490mm,軸距2660mm,尺寸表現在緊湊型轎車中還是很不錯的,尤其是1820mm的寬度甚至超越了許多日系中級車型。逸動的內飾設計經過改款之後也提升了不少,內飾的立體感和層次感好了不少,用料上也比較厚道,全新的儀錶盤显示效果更好,中央液晶屏的加入給車內的科技感提升了不少。

江淮汽車-瑞風S3

指導價:6.58-9.58萬

瑞風S3剛剛經歷中期改款,外觀設計煥然一新,重新設計過的前臉和大燈比老款時尚一些,只是不協調的感覺還是存在,側面來說S3仍然不算好看,感覺S3在視覺上仍然是又高又窄。S3的尺寸為4345*1765*1615mm,尺寸在小型SUV中屬於偏大的。

內飾上S3的變化可就大很多了,重新設計的中控台和儀錶盤時尚了很多,尤其是儀錶盤重新設計之後立體感和層次感更強,

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

當全世界的人們隨著網路時代而改變向上時您還停留在『網站美醜不重要』的舊有思維嗎?機會是留給努力改變現況的人們,別再浪費一分一秒可以接觸商機的寶貴時間!

讀數更加清晰而且显示的信息更加豐富,瑞風S3採用1.5L 1.6L兩種發動機,匹配手動/無級自動變速箱,動力表現剛好夠用。

長安汽車-逸動

指導價:7.49-24.99萬

長安逸動的外觀十分時尚,這也吸引了許多人關注逸動,逸動的車身尺寸為4620*1820*1490mm,軸距2660mm,尺寸表現在緊湊型轎車中還是很不錯的,尤其是1820mm的寬度甚至超越了許多日系中級車型。

逸動的內飾設計經過改款之後也提升了不少,內飾的立體感和層次感好了不少,用料上也比較厚道,全新的儀錶盤显示效果更好,中央液晶屏的加入給車內的科技感提升了不少。

上汽大眾-桑塔納

指導價:8.49-13.89萬

對於喜歡合資品牌的朋友大眾桑塔納就不得不看了,這款入門級合資緊湊型轎車外觀平平,但是大眾套娃的外觀使得駕駛者開着桑塔納也比較有面子,4475*1706*1469mm的尺寸還是屬於偏小的。

桑塔納的內飾也是大眾套娃設計風格,儀錶盤比較精緻這是自主車型比不上的地方,整個車內空間也比較的不錯,坐在車內感覺很寬敞,動力上桑塔納使用1.4L/1.4T/1.6L三種發動機搭配5MT/6AT/7擋雙離合三種變速箱。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※想知道最厲害的網頁設計公司嚨底家"!

RWD(響應式網頁設計)是透過瀏覽器的解析度來判斷要給使用者看到的樣貌

分類
發燒車訊

《見字如面4》先導片催淚上線_潭子電動車

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

日本、大陸,發現這些先進的國家已經早就讓電動車優先上路,而且先進國家空氣品質相當好,電動車節能減碳可以減少空污

“我是菲利普,菲利普的眼睛;我是菲利普,菲利普的肝;我是菲利普,菲利普的腎……”日前,令人期待已久的《見字如面》第四季上線了公益先導片,一名西南大學外教菲利普跨國捐獻器官的故事溫暖到了網友,著名音樂人小柯現場朗讀捐贈者父親寫的一封信,也令無數網友感動流淚。

怎麼證明一個人還活着?一封澳大利亞首位在華器官捐獻者菲利普的父親寫給兒子的信《你的離去是父母永難痊癒的傷》,讓觀眾體會到生命延續的感動。喜歡彈吉他唱歌的菲利普,因為深愛中國這片土地,在大學畢業後來到中國,成了重慶西南大學的一名外教。然而就在去年的5月9日,27歲的菲利普卻因病醫治無效,不幸離世。按照菲利普的遺願,他的父母捐獻了他的多個器官,這讓三名中國人的生命得到挽救,兩位中國人的眼睛重獲光明。

菲利普生前極其熱愛音樂,五位受捐者為了實現他的夢想,組建了視頻中的“一個人的樂隊”。這支特殊樂隊的成員來到了《見字如面》的現場,他們身穿印着菲利普名字的隊服,讓人感受到菲利普的生命仍然還在,在五个中國人的身上得到了延續。

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

有別於一般網頁架設公司,除了模組化的架站軟體,我們的營業主軸還包含:資料庫程式開發、網站建置、網頁設計、電子商務專案開發、系統整合、APP設計建置、專業網路行銷。

在這一切發生18個月後,當得知接受兒子捐獻器官挽救的五位移植受者為了完成菲利普的音樂夢想,組成了“一個人的樂隊”,菲利普63歲的父親彼得·漢考克先生按捺不住自己激動的心情,連夜寫了一封家書給陰陽兩隔的愛子。深受感動的音樂人小柯來到《見字如面》現場,替老人家把信讀給天堂里的菲利普和各位觀眾。

父親彼得在信中說:“你走了,留給這個世界最珍貴的禮物是希望,是五個等待已久的生命,因你重獲新生。我和你母親知道你還活着,從未離開,空氣中還有你的氣息,你還在親歷這個精彩的世界。你就是他們,他們和你一個樣,我們失去了一個菲利普,卻獲得了五個菲利普……”

當得知接受菲利普捐獻器官的5位移植受者想組建樂隊,為菲利普圓一場音樂夢時,彼得說:“我和你母親激動了好幾天,看到‘一個人的樂隊’,印着菲利普名字的隊服,我們一家人也要一人一件,想穿上它去給你鼓掌、吶喊。菲兒,你就是我們的王子。”

菲利普已逝,他的生命不僅在五位移植受者身上得到了延續,他身上散發的人間大愛也永遠閃耀着人道主義的光輝,使得越來越多的人關注器官捐獻這一公益行為,更促使更多的人成為了器官捐獻登記者。(記者 祖薇)

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※超省錢租車方案

商務出差、學生出遊、旅遊渡假、臨時用車!GO 神州租賃有限公司!合法經營、合法連鎖、合法租賃小客車!

分類
發燒車訊

話劇《什剎海》講述超前老故事_包裝設計

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

上新台中搬家公司提供您一套專業有效率且人性化的辦公室搬遷、公司行號搬家及工廠遷廠的搬家服務

說起京味兒,“什剎海”是繞不過的關鍵詞,這個區域的變遷也牽扯着許多人的心。話劇《什剎海》就講述了時代變遷中這裏發生的一段故事。

故事發生在什剎海邊上一座歷史悠久的老四合院“關家老宅”內。關家三代人以及什剎海周邊的住戶們經歷着時代變化給這塊古老土地帶來的巨大變化。兩種思想的差異、兩種觀念的衝突隨着時代的變化愈演愈烈,引發重重矛盾。該劇力圖透過關家三代人以及周邊居民的生活經歷、各個階層的心路歷程,深入探討傳統文化保護與經濟發展的關係,展現老北京人和新北京人的整體精神風貌。

※產品缺大量曝光嗎?你需要的是一流包裝設計!

窩窩觸角包含自媒體、自有平台及其他國家營銷業務等,多角化經營並具有國際觀的永續理念。

話劇《什剎海》是北京文化藝術基金2019年度的資助項目。其實這並不是一部新戲,由北京人藝著名編劇藍蔭海、王志安(執筆)於多年前共同創作。從創作之初到如今搬上舞台,足足有十幾年之久,其間編劇不斷地修改打磨劇本。兩位編劇對北京的歷史、文化傳統、風俗風物都極為熟悉,具有深厚的生活基礎和文化積澱。

該劇由北京人藝著名導演顧威與韓清共同執導。談到劇中所探討的主題,顧威認為故事中的矛盾,當下依然存在,“編劇十餘年前通過劇中人物提出的問題,在當下正好得到了回答,故事的主題看似過時,實則超前。”該劇將於2020年1月17日至19日,在中國人民大學如論講堂首演。(記者 牛春梅)

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網動廣告出品的網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上她。

分類
發燒車訊

老樹畫畫展出60餘件畫作_台中搬家

台中搬家公司費用怎麼算?

擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司

“難得幾個好友,江湖相扶行走。平時兩條微信,見面一杯薄酒。”畫中幾名男子身着長衫、頭戴寬檐帽倚樹而立,在層林盡染的林中小聚,畫面上還配有這首詼諧幽默的小詩。1月3日,“大風吹”老樹畫畫個展在榮寶齋當代藝術館開展,共展出60餘幅老樹的畫作。

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

作為近年來微博上的紅人畫家,本名劉樹勇的老樹畫畫並非專職畫家,卻吸引了大量網友的喜愛,目前他的微博粉絲多達248萬。老樹畫畫是中央財經大學文化與傳媒學院藝術設計系主任、教授,主要工作是從事視覺語言形態的研究、影像的媒介傳播研究與具體實踐。從2007年提起畫筆到現在,劉樹勇已經斷斷續續畫了十多年,一張張親切自然的水墨小畫配上風趣哲理的打油詩,總能引發人們的共鳴。

“這個小畫展一開始的名字叫風乍起,因為展覽定在初秋。結果一拖再拖,到了年底。昨日大風,被吹得一屁股坐在地上,就改叫大風吹吧。畫畫,或者說活着,只是一件很私人的事兒。盡量畫得好一點,把畫畫得有意思一些,就很不容易了。”對於此次展覽,老樹畫畫的介紹依舊雲淡風輕。他希望好好做自己的事,把畫畫得再誠懇一點。展覽持續至1月9日。(記者 王廣燕)

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

台中搬家公司推薦超過30年經驗,首選台中大展搬家

分類
發燒車訊

vivo 台南體驗店 12/25 盛大登場!買一送二開幕限定優惠等您來搶_網頁設計

台北網頁設計公司這麼多該如何選擇?

網動是一群專業、熱情、向前行的工作團隊,我們擁有靈活的組織與溝通的能力,能傾聽客戶聲音,激發創意的火花,呈現完美的作品

最近相當認真在台灣經營的手機品牌 vivo 將於本周五(12/25)在台南佔地最大購物商場「南紡購物中心」開設體驗店,開幕當天將推出買一機送兩機、指定機種送穩定器等限定優惠,下午1:30還可排隊領取市價超過千元vivo聖誕驚喜福袋(限量100個),推薦台南在地鄉親不要錯過!

vivo 台南體驗店 12/25 盛大登場!推買一送二開幕限定優惠

為歡慶 vivo 全台第四間體驗店正式進駐南紡購物中心,vivo祭出歷來最殺開幕限定優惠,凡於開幕首三日 (12/25-12/27)現場入手vivo最新X50 Pro旗艦機,就送價值6,389元vivo Y12和vivo HP2055無線藍牙耳機,等於「買一機送兩機」;買vivo X50則可將市價3,990元DJI OM4穩定器免費帶回家;凡購買X全系列加碼延長保固至24個月、螢幕意外保障12個月、2021限定桌曆和vivo原廠33W閃充組,上網登錄再送全聯禮券900元,最高現省超過萬元。

此外,因開幕當天適逢聖誕佳節,vivo 也準備了限量100個價值千元聖誕福袋,消費者只要在下午1:30至體驗店排隊並加入指定粉絲團(https://www.facebook.com/VIVOTainan )和Line@即可獲得;此外,凡於明年1/3前加入體驗店粉絲團留言並完成指定任務,還有機會獲得 Y12手機(1名)和vivo HP2055無線藍牙耳機(3名),共計抽出4名幸運得主。

※推薦評價好的iphone維修中心

擁有專業的維修技術團隊,同時聘請資深iphone手機維修專家,現場說明手機問題,快速修理,沒修好不收錢

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

網頁設計最專業,超強功能平台可客製化

窩窩以「數位行銷」「品牌經營」「網站與應用程式」「印刷品設計」等四大主軸,為每一位客戶客製建立行銷脈絡及洞燭市場先機。

分類
發燒車訊

傳明年中 Apple 將推出更便宜的 AirPods Max Sport 運動版,售價 400 美元_貨運

※回頭車貨運收費標準

宇安交通關係企業,自成立迄今,即秉持著「以誠待人」、「以實處事」的企業信念

AirPods Max 的價格將近快要 2 萬台幣,很多人都認為非常貴,但國外開賣之後一樣被搶購一空,現在都需要等到明年 2 月才能拿到,就連台灣月初開賣也只能預定。以高端耳罩耳機來說,AirPods Max 說實在沒有非常貴,就普通但不便宜而已,當然,並不是每個用戶都有這麼高的預算買耳機,如果你想入手 AirPods Max,但價格實在讓人難以下手,沒關係,可以等等看明年,稍早國外就有人爆料明年中 Apple 可能會推出一款更便宜的 AirPods Max Sport 版本。

傳明年中 Apple 將推出更便宜的 AirPods Max Sport 運動版

根據 Wccftech 的報導,稍早一位專門爆料 Apple 產品的 Apple RUMORS 用戶,於 Twitter 上透露明年中將會有一款 AirPods Max Sport 運動版亮相,重量大約是 290 公克,採矽膠材質設計,價格部分為 400 美元,約台幣 12,000 元:

Over-ear AirPods, $400, coming in the middle of next year. Sports silicone material, weighs about 290g, slightly smaller earpads.

— Apple RUMORs (@a_rumors1111) December 22, 2020

另外也提到,耳墊部分相較於現行 AirPods Max 還要小一點,對於耳朵較大的人來說,這可能需要注意。

至於硬體規格部分,文中就沒有特別說明,不過從 400 美元的售價來看,比 AirPods Max 的 549 美元還便宜 149 美元,光金屬材質改成矽膠,不太可能就降價這麼多,代表說一定還有地方降級。此外,名字叫做 Sport 運動版,續航力應該不能太差才對,甚至要比現在的 AirPods Max 還要多,才能滿足戶外使用。

※評比南投搬家公司費用收費行情懶人包大公開

搬家價格與搬家費用透明合理,不亂收費。本公司提供下列三種搬家計費方案,由資深專業組長到府估價,替客戶量身規劃選擇最經濟節省的計費方式

不過有一個規格猜測還會延續,就是 “主動式降噪”,當然,Apple 也可能會採用更低階的技術來滿足這功能。

無論如何,離 2021 年中還有半年多的時間,如果真有這款產品,明年過年後應該有機會看到更多傳言現身。覺得 AirPods Max 貴的人也不用急著訂購,反正現在訂也必須等到明年 2 月,到時看 AirPods Max Sport  消息再做決定也不遲。

現在 AirPods Max 要等到 2021/02/23 以後才能收到:

資料來源:Wccftech

AirPods Max 各種顏色耳罩搭配看起來如何?試試這網站,自由搭配出個人專屬配色耳機

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

※智慧手機時代的來臨,RWD網頁設計為架站首選

網動結合了許多網際網路業界的菁英共同研發簡單易操作的架站工具,及時性的更新,為客戶創造出更多的網路商機。

分類
發燒車訊

iOS 14 提示應用程式與網站追蹤許可功能陸續釋出_網頁設計公司

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

自從幾年前力抗繞過設備安全和隱私措施的壓力之後,Apple 一直在努力建立自家捍衛消費者隱私與安全宣導的形象,這也表示對於一些常見但可疑的商業行為(特別是廣告追蹤)經常持反對態度,而最新追蹤許可功能的釋出毫無意外地又引起了爭議,至少對一些大型廣告商來說不是個好事,正如部分用戶發現的一樣, Apple 正在迫使這些廣告商遵守規則以保護使用者的隱私安全。

iOS 14 提示應用程式與網站的追蹤許可功能陸續釋出

雖然行動裝置上的追蹤行為可能不像電腦網頁那麼離譜,但追蹤使用者這件事即便是在智慧型手機的應用程式和網站上都是非常常見的事情,大多數時候用戶甚至不知道應用程式在背後做了些什麼,而這就是 Apple 最新追蹤許可提醒功能所要解決的事情。簡言之,開發者如果想在自家應用外對使用者追蹤,必須先徵得用戶的許可。

這一個功能被推延到 2021 年初,以便使開發者與內容發布者有彈性調整時間,似乎已經有些公司已經開始遵守規則,從網友向 MacRumors 展示的截圖裡面, NBA 的官方應用程式已經開始響應要求追蹤許可。雖說這個功能是在 iOS 14.4 測試版上被發現,但該網站也注意到這提示已經開始出現在較舊版本的 iOS 14 中。追蹤提示是 Facebook 一直在爭論的功能,指責 Apple 終結了我們所認為的免費,但 Apple 認為,該公司並沒有禁止廣告商進行追蹤,這個新功能只是給了用戶選擇是否願意被追蹤的權力。

這項提示功能會有多大的效果,以及大多數 iPhone 和 iPad 使用者是否會傾向於拒絕跨應用程式和跨網站追蹤,會不會變成 Facebook 正在描繪的世界末日情景還有待觀察。應用程式和網站擁有者肯定會辯白說這種追蹤是提供「更好和個人化服務」的必要行為,但使用者絕對有權力選擇一道據稱美味到極點的菜上桌後是否要吃它。

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

◎資料來源:SlashGear、MacRumors

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

分類
發燒車訊

【Python】基礎總結_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

輸入

input("提示性信息")

如:
input("請輸入数字")

評估函數

因為 Python 沒有特別人為規定數據類型,數據類型是由計算機進行判定,所以我們 input() 輸入的數據均默認作為字符串處理,而如果要輸入一些数字,着需要 eval() 評估函數對字符串進行評估,化為語句(数字)。

評估函數:去掉參數最外側引號並執行餘下語句的函數,即 字符串 → 語句。

例如:eval("1") → 1
eval("1+2") → 3
eval('"1+2"') → ‘1+2’
eval('print("hello")') → hello

輸出

print(...)
默認空一行,如果想不空行,則
print(...., end = "")

数字類型

整數類型

與數學中整數的概念一致。

特性:

  • 可正可負,沒有取值範圍限制
  • pow(x, y) 函數:計算\(x^y\),想算多大算多大

進制:

  • 十進制:1010,99,-217
  • 二進制:以 0b 或 0B 開頭:0b010,-0B101
  • 八進制:以 0o 或 0O 開頭:0o123,-0O456
  • 十六進制:以 0x 或 0X 開頭:0x9a,-0X89

浮點數類型

與數學中實數的概念一致。

特性:

  • 帶有小數點及小數的数字
  • 浮點數取值範圍和小數精度都存在限制,但常規計算可忽略
  • 取值範圍數量級約為\(-10^{307}\)\(10^{308}\),精度數量級\(10^{-16}\)
  • 浮點數間運算存在不確定尾數,不是 bug

不確定尾數

浮點數間運算存在不確定尾數,不是 bug
如:0.1+0.3 → 0.4
0.1+0.2 → 0.30000000000000004

這是由於在計算機中一切數據都是化為二進制進行存儲的,而有的浮點數並不能完全化為相等的二進制數,只能無限趨近於二進制數。
如:0.1 →

  • 二進製表示:0.00011001100110011001100110011001100…等 53位二進製表示小數部分,約 \(10^{-16}\)
  • 十進製表示:0.10000000000000000555111512312578270…

    注意:二進製表示小數,可以無限接近,但不完全相同。
    例如,0.1+0.2 結果無限趨近 0.3,但是可能存在尾數。

四舍五入

解決方法:

  • 0.1+0.2 == 0.3 → False
  • round(0.1+0.2, 1) == 0.3 → True

四舍五入:

  • round(x, d):對 x 四舍五入,d 是小數截取位數。
  • 浮點數間運算與比較用 round() 函數輔助
  • 不確定尾數一般發生在 \(10^{-16}\) 左右,round() 十分有效

科學計數法

浮點數可以採用科學計數法表示

  • 使用字母 e 或 E 作為冪的符號,以 10 為基數,格式如下:
    <a>e<b> 表示 \(a*10^b\)

    例如:4.3e-3 值為 0.0043
    9.6E5 值為 960000.0

複數類型

與數學中複數的概念一致,\(j^2\) = -1

例如:z = 1.23e-4 + 5.6e+89j
z.real 獲得實部,z.imag 獲得虛部

數值運算操作符

操作符及使用 描述 備註
x // y 整數除 x 與 y之整數商 10//3 結果是 3
x % y 餘數,模運算 10%3 結果是 1
x ** y 冪運算,x的y次冪,\(x^y\) 也可以進行開方
+x x 的本身
-x x 的負值

数字類型的關係

類型間課進行混合運算,生成結果為“最寬”類型

三種類型存在一種逐漸“擴展”或“變寬”的關係:
整數 → 浮點數 → 複數

例如:123+4.0 = 127.0(整數 + 浮點數 = 浮點數)

數值運算函數

函數及使用 描述 備註
abs(x) 絕對值,x 的絕對值 abs(-10.01) 結果為 10.01
divmod(x, y) 商余,(x//y, x%y),同時輸出商和餘數 divmod(10, 3) 結果為 (3,1)
pow(x, y[,z]) 冪余,(x**y%z),[]表示參數z可省略 pow(3, pow(3,99),10000) 結果為 4587
round(x[,d]) 四舍五入,d 是保留小數位數,默認值為 0 round(-10.123,2) 結果為 -10.12
max(x1,x2,…,xn) 最大值,返回 x1,x2,…,xn 中的最大值,n 不限 max(1,9,5,4,3) 結果為 9
min(x1,x2,…,xn) 最小值,返回 x1,x2,…,xn 中的最小值,n 不限 min(1,9,5,4,3) 結果為 1
int(x) 將 x 變成整數,捨棄小數部分 int(123.45)結果為123;
int(“123”)結果為123
float(x) 將 x 變成浮點數,增加小數部分 float(12)結果為12.0;
float(“1.23”)結果為1.23
complex(x) 將 x 變成複數,增加虛數部分 complex(4)結果為4+0j

字符串類型

字符串類型的表示

字符串:由 0 個或多個字符組成的有序字符序列。

特點:

  • 字符串由一對單引號或一對雙引號表示

    例如:“請輸入帶有符號的溫度值:” 或者 ‘C’

  • 字符串是字符的有序序列,可以對其中的字符進行索引

    例如:“請”是”請輸入帶有符號的溫度值:”的第 0 個字符

字符串有 2 類共 4 種表示方法:

  • 由一對單引號或雙引號表示,僅表示單行字符串

    例如:“請輸入帶有符號的溫度值:” 或者 ‘C’

  • 由一對三單引號或三雙引號表示,課表示多行字符串

    例如:
    ”’
    python
    語言
    ”’

擴展:

  • 如果希望在字符串中包含雙引號或單引號呢?
    ‘這裡有個雙引號(“)’ 或者 “這裡有個單引號(‘)”
  • 如果希望在字符串中既包括單引號又包括雙引號呢?
    ”’這裏既有單引號(‘)又有雙引號(“)”’

字符串的序號

字符串的使用

使用[]獲取字符串中一個或多個字符

  • 索引:返回字符串中單個字符。 [M]

    例如:“請輸入帶有符號的溫度值:”[0] 或者 TempStr[-1]

  • 切片:返回字符串中一段字符子串。 [M:N]

    例如:“請輸入帶有符號的溫度值:”[1:3] 或者 TempStr[0:-1]

字符串切片高級用法

使用[M:N:K]根據步長對字符串切片

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

  • [M:N], M 缺失表示 至開頭N 缺失表示 至結尾

    例如:“零一二三四五六七八九十”[:3] 結果是 “零一二”

  • [M:N:K],根據步長 K 對字符串切片

    例如:“零一二三四五六七八九十”[1:8:2] 結果是 “一三五七”
    “零一二三四五六七八九十”[::-1] 結果是 “十九八七六五四三二一零”

字符串操作符

操作符及使用 描述
x + y 連接兩個字符串 x 和 y
x*n 或 n*x 複製 n 次字符串 x
x in s 如果 x 是 s 的子串,返回 True,否則返回 False

字符串處理函數

函數及使用 描述 備註
len(x) 長度,返回字符串 x 的長度 len(“一二三456”)結果為6
str(x) 任意類型 x 所對應的字符串形式 str(1.23)結果為”1.23″
str([1,2])結果為”[1,2]”
oct(x) 整數 x 的八進制小寫形式字符串 oct(425)結果為”0o651″
hex(x) 整數 x 的十六進制小寫形式字符串 hex(425)結果為”0x1a9″
chr(u) x 為 Unicode 編碼,返回其對應的單字符
ord(x) x 為字符,返回其對應的 Unicode編碼

字符串處理方法

方法及使用 描述 備註
str.lower() 返回字符串的副本,全部字符小寫 “AbCdEfGh”.lower()結果為”abcdefgh”
str.upper() 返回字符串的副本,全部字符大寫
str.split(sep=None) 返回一個列表,由 str 根據 sep 被分隔的部分組成 “A,B,C”.split(“,”)結果為[‘A’,’B’,’C’]
str.count(sub) 返回子串 sub 在 str 中出現的次數 “an apple a day”.count(“a”)結果為4
str.replace(old, new) 返回字符串 str 副本,所有 old 子串被替換為 new “python”.replace(“n”, “n123.io”)結果為”python123.io”
str.center(width[,fillchar]) 字符串 str 根據寬度 width 居中,fillchar 可選 “python”.center(20,”=”)結果為”=======python=======”
str.strip(chars) 從 str 中去掉在其左側和右側 chars中列出的字符 “= python=”.strip(” =np”)結果為”ytho”
str.join(iter) 在 iter 變量除最後元素外每個元素后增加一個 str “,”.join(“12345″)結果為”1,2,3,4,5”

字符串類型的格式化

格式化是對字符串進行格式表達的方式

  • 字符串格式化使用.format()方法,用法如下:
    .format( )

槽內部對格式化的配置方式

{ : }

: <,> <.精度>
引號符號 用於填充的單個字符 < 左對齊
> 右對齊
^ 居中對齊
槽設定的輸出寬度 数字的千位分隔符 浮點數小數精度 或 字符串最大輸出長度 整數類型
b,c,d,o,x,X
浮點數類型
e,E,f,%

填充、對齊、寬度這三個一組,例如:
"{0:=^20}".format("PYTHON")
→ ‘=======PYTHON=======’
"{0:*>20}".format("BIT")
→ ‘*****************BIT’
"{:10}".format("BIT")
‘BIT ‘

剩下的三個一組,例如:
"{0:,.2f}".format(12345.6789)
→ ‘12,345.68’
"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}x".format(425)
→ ‘110101001,Σ,425,651,1a9,1A9’
"{0:e},{0:E},{0:f},{0:%}".format(3.14)
‘3.140000e+00,3.140000E+00,3.140000,314.000000%’

異常處理

try:
    # 執行1
    <語句塊1>
except [<異常類型>]:
    # 如果出現異常執行2
    <語句塊2>
[else:]
    # 否則,不發生異常執行3
    <語句塊3>
[finally:]
    # 最後執行4,一定執行
    <語句塊4>

使用 raise 語句拋出一個指定的異常。
raise [Exception [, args [, traceback]]]

分支結構

二分支結構

緊湊形式:適用於簡單表達式的二分支結構
<表達式1> if <條件> else <表達式2>

例如:

guess = eval(input())
print("猜{}了".format("對" if guess==99 else "錯"))

多分支結構

if 
elif
else

循環結構

遍歷循環

for <循環變量> in <遍歷結構> :
    <語句塊> 
  • 從遍歷結構中逐一提取元素,放在循環變量中
  • 由保留字for和in組成,完整遍歷所有元素后結束
  • 每次循環,所獲得元素放入循環變量,並執行一次語句塊

計數循環(N次)

for i in range(N) :
    <語句塊> 
  • 遍歷由range()函數產生的数字序列,產生循環

例如:

for i in range(5):
    print("Hello:",i)

運行結果:

Hello: 0
Hello: 1
Hello: 2
Hello: 3
Hello: 4

計數循環(特定次)

for i in range(M,N,K) : 
    <語句塊> 
  • 遍歷由range()函數產生的数字序列,產生循環

例如:

for i in range(1,6,2):
    print("Hello:",i)

運行結果:

Hello: 1
Hello: 3
Hello: 5

字符串遍歷循環

for c in s : 
    <語句塊> 
  • s是字符串,遍歷字符串每個字符,產生循環

例如:

for c in "Python123":
print(c, end=",")

運行結果:

P,y,t,h,o,n,1,2,3,

列表遍歷循環

for item in ls : 
    <語句塊> 
  • ls是一個列表,遍歷其每個元素,產生循環

例如:

for item in [123, "PY", 456] :
print(item, end=",")

運行結果:

123,PY,456,

文件遍歷循環

for line in fi : 
    <語句塊> 
  • fi是一個文件標識符,遍歷其每行,產生循環

例如:

for line in fi :
print(line)

運行結果:

優美勝於醜陋
明了勝於隱晦
簡潔勝於複雜

無限循環

由條件控制的循環運行方式

while <條件> : 
    <語句塊> 
  • 反覆執行語句塊,直到條件不滿足時結束

例如:

a = 3
while a > 0 :
    a = a - 1
    print(a)

運行結果:

2
1
0

擴展

for <變量> in <遍歷結構> : 
    <語句塊1>
else :
    <語句塊2>
while <條件> : 
    <語句塊1>
else :
    <語句塊2>
  • 當循環沒有被break語句退出時,執行else語句塊
  • else語句塊作為”正常”完成循環的獎勵
  • 這裏else的用法與異常處理中else用法相似

例如:

for c in "PYTHON" :
    if c == "T" :
        continue
    print(c, end="")
else:
    print("正常退出")

運行結果:

PYHON正常退出

例如:

for c in "PYTHON" :
    if c == "T" :
        break
    print(c, end="")
else:
    print("正常退出")

運行結果:

PY

函數

  • 函數定義時可以為某些參數指定默認值,構成可選參數
  • 函數定義時可以設計可變數量參數,即 不確定參數總數量
  • 函數調用時,參數可以按照位置名稱方式傳遞,如 f(1, 2) → f(m=1, n=2)
  • 函數可以返回 0 個或多個結果(元組類型)
def <函數名>(<非可選參數> [,<可選參數>, <可變參數>]) : 
    <函數體>
    return <返回值>

可選參數例如:

def f(m, n=1)
    return m+n

print(f(1))

運行結果:

2

可變參數例如:

def f(*b):
    sum = 0
    for item in b:
        sum += item
    return sum

print(f(1,2,3,4,5))

運行結果:

15

在函數定義中,經常會碰到 *args(arguments) 和作為參數 **kwargs(keyword arguments)。
(事實上在函數中,和才是必要的,args 和 kwargs 可以用其他名稱代替)
*args 是指不定數量的非鍵值對參數。
**kwargs 是指不定數量的鍵值對參數。

*args 作為作為元組匹配沒有指定參數名的參數。而 **kwargs 作為字典,匹配指定了參數名的參數。
*args 必須位於 **kwargs 之前。

*args(*通常緊跟一個標識符,你會看到a或者args都是標識符)是python用於接收或者傳遞任意基於位置的參數的語法。當你接收到一個用這種語法描敘參數時(比如你在函數def語句中對函數簽名使用了星號語法),python會將此標識符綁定到一個元祖,該元祖包含了所有基於位置的隱士的接收到的參數。當你用這種語法傳遞參數時,標識符可以被綁定到任何可迭代對象(事實上,它也可以是人和表達式,並不必須是一個標識符),只要這個表達式的結果是一個可迭代的對象就行。

**kwds(標識符可以是任意的,通常k或者kwds表示)是python用於接收或者傳遞任意基於位置的參數的語法。(python有時候會將命名參數稱為關鍵字參數,他們其實並不是關鍵字–只是用他們來給關鍵字命名,比如pass,for或者yield,還有很多,不幸的是,這種讓人疑惑的術語目前仍是這門語言極其文化根深蒂固的一個組成部分。)當你接收到用這種語法描敘的一個參數時(比如你在函數的def語句中對函數簽名使用了雙星號語法)python會將標識符綁定到一個字典,該字典包含了所有接收到的隱士的命名參數。當你用這種語法傳遞參數時,標識符只能被綁定到字典(我ID號I它也可以是表達式,不一定是一個標識符,只要這個表達式的結果是一個字典即可)。

當你在定義或調用一個函數的時候,必須確保a和k在其他所有參數之後。如果這兩者同時出現,要將k放在a之後。

局部變量和全局變量

  • 基本數據類型,無論是否重名,局部變量與全局變量不同
  • 可以通過 global 保留字在函數內部聲明全局變量
  • 組合數據類型,如果局部變量未真實創建,則是全局變量

    解釋:組合數據類型是用指針來指明位置的,所以若局部變量未真實創建組合數據類型,它使用的變量是指針,而指針指的是外部的全局變量,所以你去修改指針對應的內容就修改了全局變量。

    類比:基本數據類型—值傳遞,組合數據類型—引用傳遞。

lambda 函數

lambda函數返回函數名作為結果

  • lambda函數是一種匿名函數,即沒有名字的函數
  • 使用lambda保留字定義,函數名是返回結果
  • lambda函數用於定義簡單的、能夠在一行內表示的函數
<函數名> = lambda <參數>: <表達式>

def <函數名>(<參數>) : 
    <函數體>
    return <返回值>

例如:

f = lambda : "lambda函數"
print(f())

運行結果:

lambda函數

謹慎使用lambda函數

  • lambda函數主要用作一些特定函數或方法的參數
  • lambda函數有一些固定使用方式,建議逐步掌握
  • 一般情況,建議使用def定義的普通函數

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

分類
發燒車訊

05_決策樹算法_台中搬家公司

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

擁有後台管理系統的網站,將擁有強大的資料管理與更新功能,幫助您隨時新增網站的內容並節省網站開發的成本。

  今天是2020年2月7日星期五。分享一個箴言:世界上只有一種英雄主義,那就是認識生活的真相后依然愛它。

  好了,開始今天的內容,決策樹算法。書中針對該算法,洋洋洒洒講了很多內容,對初學者不太友好,我初讀本章內容時,頭大的很。但等到學完,頭腦里有了框架之後,該算法的學習就清楚了很多,所以稍後會寫一下該算法的脈絡主線,帶着框架去完成該算法的搭建,這樣學習要輕鬆點。另外,在記錄這個學習過程前,我一般會在網上多看幾篇相關內容,發現各個內容各有所長,相應的,大家也要各取所需。

  脈絡主線:(1)總起講基本決策樹模型,闡述決策樹基本思路;(2)以ID3、C4.5為例分講三步驟:特徵選擇、決策樹生成、決策樹剪枝;(3)最後以經典CART算法結束決策樹的學習,該算法應用決策樹基本思路,細品起來還是挺不一樣的。

 GitHub:https://github.com/wangzycloud/statistical-learning-method

 決策樹算法

引入

  決策樹算法是一種呈樹形結構的基本分類與回歸方法,本內容主要討論用於分類的決策樹,基於特徵對實例進行分類。像書中提到的,決策樹算法可以認為是if-then規則的集合,即根據特徵的不同取值進行分支選擇;也可以認為是定義在特徵空間與類空間上的條件概率分佈,即通過構建決策樹將特徵空間劃分成不同子空間,恭弘=叶 恭弘節點上的子空間對應條件概率最大的類,分類時將‘特徵符合’的實例點強行分到該空間對應的類上(認為順着根節點到恭弘=叶 恭弘節點,在符合各內部節點特徵的條件下,實例點是該類的條件概率最大)。

  學習時,該算法利用訓練數據集,根據損失函數最小化的原則建立決策樹模型;預測時,對新的數據,利用決策樹模型進行分類。決策樹的學習,通常由三個步驟構成:特徵選擇、決策樹的生成、決策樹剪枝。接下來按照提到的脈絡主線,記錄決策樹模型基本思路、三大步驟(ID3、C4.5)、CART算法。

決策樹模型

  先來看一下定義:

  用圓框表示內部節點,用方框表示恭弘=叶 恭弘節點,有了樹形結構,它是怎麼分類的呢?這裏我們用判斷來診人員是否需要輸液的例子:

  內部節點表示特徵,用決策樹進行分類,就是從根節點開始,對實例的某一特徵進行測試。根據測試結果,選擇合適的分支,將實例分配到該分支對應的子節點上,這時每一個子節點對應着該特徵的一個取值。遞歸的對實例進行測試,直至到達恭弘=叶 恭弘節點,最後將實例分配到恭弘=叶 恭弘節點對應的類中。看一下圖中的例子,對於新的來診人員,從我們的生活經驗上,醫生一般會讓我們先測試一下體溫,如果體溫過高的話,基本上是需要打個退燒針了;測完體溫后,醫生會進行聽診,然後看咽喉是否發炎,了解下咳嗽情況。也就是說,判斷完體溫特徵后,再判斷下一個特徵乾咳是否嚴重,每個特徵判斷完畢,就可以根據不同的分支結果,確定患者是否需要輸液了。

  對決策樹的理解,書中有兩個解釋。

  首先第一個,決策樹與if-then規則,也就是與選擇分支結構的關係。從判斷來診人員是否需要輸液的例子上,我們可以看到決策樹模型分類的過程,就是從根節點到恭弘=叶 恭弘節點的一條路徑。路徑上內部節點的特徵對應着選擇分支的判別條件,子節點對應着條件的不同分支,恭弘=叶 恭弘節點的類對應着判別的結果。另外,構成分類決策的所有路徑,也就是選擇分支的所有條件,具有一個重要的性質:互斥且完備。每個實例從根節點判別開始,到恭弘=叶 恭弘節點得到分類結果結束,都有屬於自己的一條路徑,有且僅有一條路徑,並且該決策樹能把訓練集所有實例判別。

  第二個是從條件概率分佈的角度,也就是在給定特徵條件下類的條件概率來理解決策樹算法。書中指出,這一條件概率分佈定義在特徵空間的一個劃分上。在我的理解中,這句話要拆開來看,(1)求誰的概率,在哪個條件上?(2)特徵空間是怎樣劃分的?

  第一點很明確,求恭弘=叶 恭弘節點類別的概率,條件是各項已知的特徵。在輸液例子中,要求的類別:是否需要輸液;特徵有兩個:體溫情況、乾咳程度。要求恭弘=叶 恭弘節點的條件概率就是求分別在給定體溫高燒、體溫正常乾咳嚴重、體溫正常乾咳正常條件下,是否需要輸液的概率。對於第二點,說起特徵空間的劃分,很容易想到我們之前接觸到的kd樹算法,它就是對特徵空間進行劃分,輪流從不同維度取中位數對特徵空間進行劃分。在決策樹算法中,輸液的這個例子,如果將各個特徵,看成不同維度(幾個特徵,幾個維度坐標軸),進行特徵選擇的過程,不就是將特徵空間逐步劃分成小單元的過程。簡單講,將特徵數目看成維度數目,將特徵值取值的數目看成該維度坐標軸的切分點。從根節點到恭弘=叶 恭弘節點的路徑,不就是在特徵空間中從原點行走到某個小空間單元的過程(決策樹中的一條路徑對應於劃分的一個單元)。

  再返回去看第一點在給定特徵下的條件概率,也就是根據在不同特徵上的取值,將特徵空間劃分成了小單元。該條件概率就是在各個恭弘=叶 恭弘子節點小單元的條件下(條件也就是決策樹中從根節點到恭弘=叶 恭弘子節點,每層特徵取固定的值),將每個單元定義成某個類別的概率。另外,各恭弘=叶 恭弘子節點(單元)上的條件概率往往偏向於一個類,即屬於某一類的概率較大。比如說,體溫高燒這條路徑對應的恭弘=叶 恭弘子節點,需要輸液的條件概率要遠遠大於體溫高燒不需要輸液的條件概率;‘體溫正常乾咳正常’這路徑對應的恭弘=叶 恭弘子節點,不需要輸液的條件概率遠遠大於‘體溫正常乾咳正常’需要輸液的概率。

決策樹學習

  從上一部分的分析中,可以看出,決策樹學習本質上就是從訓練數據集中,通過特徵選擇歸納出一組分類規則。另外,樹形結構每層選擇‘作為根節點的特徵’不同,構造出來的決策樹也就不同。同時能對訓練集進行正確分類的決策樹可能有多個,也可能一個沒有。我們的目標是通過損失函數,學習到一個對訓練數據集更好分類前提下,能夠對新數據有很好泛化能力的決策樹模型。

  這裏提到了一個最優特徵的概念,表示特徵之間的重要性是不一樣的,構建決策需要從最重要的特徵開始考慮,下一層選擇次優的特徵,下下次選擇次次優的特徵。這是有實際意義的,以是否輸液為例,對於醫生來講,判斷一個感冒病人是否需要輸液,“體溫是不是高”這個特徵表現,要遠比“乾咳嚴不嚴重”的特徵表現,更能決定是不是需要輸液。一旦體溫很高,這直接決定了需要輸液,“判斷”這個過程的不確定性,直接降了下來(體溫高燒->需要輸液);而如果先判斷“乾咳嚴不嚴重”,這個特徵表現不能全然斷定需要輸液。還要繼續用“體溫高不高”這個特徵再測試一下才能確定。這個“判斷”過程的不確定性,是逐步降下來(乾咳正常->體溫高燒->需要輸液)。

  通過上述方法構建的決策樹,可能對訓練數據集有很好的分類能力,但是對未知的測試數據卻未必有很好的分類能力,有可能發生過擬合現象。直觀點來說,決策樹構建的越細密,訓練集特徵空間切分也就越微小越明確,有可能鄰近個幾個小空間都屬於一類。完全沒必要切分這麼細,樹形越複雜越容易出現過擬合。這就需要我們對已生成的樹進行自下而上的剪枝,將樹變的更簡單,從而具有更好的泛化能力。具體來講就是去掉過細的恭弘=叶 恭弘節點,使其退回到父節點,讓父節點成為新的恭弘=叶 恭弘子節點。當然,如果特徵的數量較多,在構建決策樹的開始,就可以對特徵進行選擇,只留下對數據集有很好分類能力的特徵。

  通過上述決策樹學習算法的描述,可以發現生成決策樹的過程,是一個細分特徵空間,對實例點進行局部選擇的過程。盡可能讓每個實例從原點到達特徵空間的某一個具有確定類別的區域,且該區域能夠對實例做出正確的判斷;如果樹形過大過細過複雜,就意味着決策樹能夠對當前訓練數據集有非常非常好的判斷(都是長路徑)。一旦來新數據(需要新路徑進行分類),找不到分類規則就不能判斷,因此需要將樹形消減,去掉過細的恭弘=叶 恭弘節點,讓最優的特徵發揮作用。從主要特徵上對新數據判斷(短的路徑),將樹形修減到合適的程度也就是考慮全局最優。

特徵選擇

  在決策樹學習的過程描述里,提到了一個“最優特徵”的概念,也就是實例點在特徵選擇分支的條件判斷中,從根節點到恭弘=叶 恭弘節點,“特徵判斷”有一個先後順序,看一下判斷患者是否需要輸液的例子,先判斷體溫?還是先判斷乾咳?一般經驗下,肯定是先判斷是不是出現高燒,也就是判斷體溫這個特徵比判斷乾咳的特徵優先級高。

  特徵選擇就是決定用哪個特徵來劃分特徵空間,關鍵在於選取對訓練數據具有分類能力的特徵,這樣可以提高決策樹學習的效率。如果利用一個特徵進行分類的結果與隨機分類的結果沒有很大差別,則稱這個特徵是沒有分類能力的。經驗上丟掉這樣的特徵對決策樹學習的精度影響不大,通常特徵進行選擇的準則是信息增益或信息增益比。這裏我們使用書上的例5.1。

  通過該圖解,可以看到選擇不同的特徵作為根節點,可以得到不同的決策樹;某特徵的不同取值,成為子節點的不同分支。

  至於信息增益這個概念,我在剛開始接觸這本書的時候,理解起來困難還是蠻大的,概率沒怎麼學,熵、條件熵也不知道是啥。看到“熵”這個字,腦子里全是高中物理里的“熵”,也就是體系混亂程度的度量,本書裡邊用“熵”表示隨機變量不確定性的度量,這兩個定義好像表達的是一個意思。擲出硬幣后,在空中翻轉是一個旋轉不定的過程(動能勢能不斷的轉換),這中間正面朝上是個說不準的事情,不確定性非常高,一會正一會反;硬幣正面朝上落在桌子上了,靜止不動(相對平衡的體系狀態),正面朝上就是一個確定的事情。然後先看“信息增益”的作用是什麼,再去理解“信息增益”是個啥。

  在我的理解里,“信息增益”是讓“熵”減小的能力度量單位。也就是某個東西能讓目標整體的不確定性減小,就是指通過特徵A的劃分讓分類目標的不確定性減小的能力度量單位。比如說,判斷體溫高燒要比判斷是否乾咳更能決定是否需要輸液,即體溫特徵比乾咳特徵在是否輸液這個分類目標上,具有更好的讓不確定性減少的能力。簡而言之,信息增益就是得知特徵X而使得類Y的信息不確定性減少的程度

  先來看一下熵與條件熵的定義。

  之前提到,高中物理裡邊的熵是體系的混亂程度,反映到信息論與概率統計中,不正好就是隨機變量取值的不確定性。由公式5.1,可以看到離散隨機變量X的熵與該隨機變量具體取什麼值沒有關係,只與它取值的概率分佈有關。看一下擲硬幣這種二分類的例子。

  類似於擲硬幣的過程,只有正反面兩種結果,P(正面)≈P(反面),如圖5.4所示,p=0.5時,擲硬幣的結果最不確定(這個時候的熵最大),是正是反都有可能,但是哪一面最有可能呢?誰也說不上,因為正反面的概率一分為二,都是50%的概率。如果改變一下硬幣的形狀,變成類似圓台的形狀,讓面積大的一側是反面,面積小的一側是正面(同時把高拉長)。這時再擲硬幣,誰都知道面積大的面會朝下(90%),這是很確定的事情,反面朝上的概率很小(10%),這個時候再去猜測哪個面會朝上,大家肯定都會說是正面,因為正反面的概率差別很大,這件事情的確定性大(這個時候熵比較小)。

  顧名思義,條件熵反映的是隨機變量Y在給定隨機變量X條件下的不確定性。這裏公式5.5有待證明,但在公式的直觀表示上(公式右端,每個條件下Y的熵乘以條件出現的概率再加和),可以看出H(Y|X)的求法。Y在Xi的條件下,要把所有Xi、Y聯合出現的概率求出條件熵(Y|Xi熵),乘以該Xi條件下Y|Xi熵的概率,最後加和。

  當熵和條件熵中的概率由訓練數據集通過極大似然估計得到時,對應的熵和條件熵分別稱為經驗熵、經驗條件熵。如果有0概率,令0log0=0。

  熵是不確定性的衡量,信息增益是讓不確定性減少的程度,在決策樹中,也就是得知特徵X的信息從而使得類Y的信息的不確定性減少的程度,具體定義如下。

  這裏假設存在訓練數據集D,D中數據共有K個類別Ck,k=1,2,3,…,K,其中:

    |D|表示樣本容量,即樣本個數;

    |Ck|表示屬於Ck這個類別的樣本個數;

  設特徵A有n個不同的取值{a1,a2,…,an},根據A的取值將數據集D劃分成n個子集D1,D2…Dn,其中:

    |Di|表示子集Di樣本容量,即子集Di的樣本個數;

  根據假設,有以下等式成立:

    

  記子集Di中屬於類Ck的樣本的集合為Dik,即Dik=Di∩Ck,其中:

    |Dik|表示Dik樣本容量,即集合Dik的樣本個數;

  匯總如下:

    

  於是得到信息增益算法5.1如下:

  例5.2是根據表5.1貸款申請樣本數據表計算最優特徵的過程。注意到,根據算法5.1,首先計算整個集合D對於分類問題的檢驗熵,也就是得到當前數據判斷類別的不確定性。其次,逐個計算每個特徵條件下,對數據集D的檢驗條件熵。最後分別計算各個特徵的信息增益,並進行比較,選擇信息增益最大的特徵作為最優特徵。

  在算法5.1部分,各個熵的計算直接給出了計算公式,從公式的直觀形式上,通過各事件出現的頻率來估計概率,好像是極大似然估計得到的公式,但是書中並沒有提及公式來源。

  要知道,信息增益是ID3算法中進行最優特徵選擇的準則,在接下來的決策樹生成部分,會詳細寫一下ID3算法。與ID3算法同時學習的是C4.5算法,自然而然,C4.5算法是ID3算法的改進,改進的地方很簡單,就是將特徵選擇的準則由信息增益改為了信息增益比。先來看一下信息增益比的計算方式,再分析優點。

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

還在煩惱搬家費用要多少哪?台中大展搬家線上試算搬家費用,從此不再擔心「物品怎麼計費」、「多少車才能裝完」

  從公式5.10中可以看到,信息增益比多了一個分母。分母是數據集D關於每個特徵取值的熵。也就是對某個特徵計算完信息增益后,要比上數據集D關於該特徵取值劃分成對應子類的熵。

  C4.5作為ID3算法的改進,要想了解信息增益比的優點,可以先了解信息增益的缺點。用信息增益作為劃分訓練數據集的特徵,存在偏向於選擇取值較多的特徵的問題。這一點怎麼理解呢?在公式5.8中可以發現,如果某個特徵取值較多,該取值的實例數目所佔的比例大,導致該特徵的條件經驗熵高,因此該特徵的信息增益值大。其實就是相當於,取該值的特徵非常多,該特徵成為了去往恭弘=叶 恭弘節點的必經路徑,形成了往這裏劃分一定能行這種邏輯,劃分后必然降低不確定性,但是該特徵不一定具有很好的特徵選擇能力。

  使用信息增益比就可以對這個問題進行改進,注意到公式5.10中HA(D)的描述,針對特徵A的取值計算數據集D的熵,這個熵與H(D)的區別在於子集劃分規則不同。H(D)是關於類別Y的熵,HA(D)是關於特徵A子集的熵。這裡有待深入學習,沒有解釋為什麼可以校正。

決策樹的生成

  本節內容從ID3算法入手,學習一下決策樹的生成,上文提到ID3算法的核心是在決策樹各個節點上應用信息增益準則選擇特徵,遞歸的構建決策樹。具體方法是:從根節點開始,對節點計算所有可能的特徵的信息增益,選擇信息增益最大的特徵作為節點的特徵,由該特徵的不同取值建立子節點;再對子節點遞歸的調用以上方法,構建決策樹;直到所有特徵的信息增益均很小或者沒有特徵可以選擇為止。

  要知道ID3算法只有樹的生成,沒有剪枝過程,因此生成的決策樹容易發生過擬合。算法如下:ID3 相當於用極大似然法進行概率模型的選擇,怎麼理解?(不理解…@_@)

  算法流程圖:

  具體示例:

  C4.5的生成算法與ID3算法相似,特徵選擇改進為信息增益比。

決策樹剪枝

  前文提到,如果構建的決策樹非常細密,樹形非常複雜,會容易發生過擬合現象。這樣的樹往往對訓練數據的分類很準確,但對未知的測試數據進行分類的時候,卻沒有那麼準確。原因在於學習時過多的考慮如何提高對訓練數據的正確分類,從而構建出了複雜的決策樹。因此,是否可以考慮決策樹的複雜度,對已生成的決策樹進行簡化。

  簡化的過程稱為剪枝,從已生成的決策樹上剪掉一些子樹或者恭弘=叶 恭弘節點,並將其根節點或父節點作為新的恭弘=叶 恭弘節點,從而簡化決策樹模型。書中提到,決策樹的剪枝往往通過極小化決策樹整體的損失函數來實現。書中只是描述了公式及算法,並沒有闡述為什麼這樣做可以,這裏提出一個不成熟的觀點和理解。

  首先明確熵是不確定性的度量。構建決策樹的過程,是將整個特徵空間劃分為不同的小區域,通過一系列的特徵判斷,訓練集中的各個數據有了明確的安放位置,特徵空間內井井有條。生成決策樹,就是能夠最快的將不同數據劃分到相應恭弘=叶 恭弘節點的子空間中,且該子空間內的數據盡可能屬於同一類。決策的過程,就是在給定某個特徵的條件下,數據集D分類的不確定性減少;那麼對應到恭弘=叶 恭弘節點,給定恭弘=叶 恭弘節點特徵路徑的條件下,數據集D分類的熵應盡可能小。也就是說恭弘=叶 恭弘節點對應的數據,應該盡可能的一致,大家都屬於一個類最好了(算法5.2如果信息增益小於閾值,將實例數最大的類作為節點類標記,也就是恭弘=叶 恭弘節點對應的數據不一定屬於同一個類)。

  現在考慮這棵決策樹在訓練集上構建的好不好,是不是就可以通過恭弘=叶 恭弘節點的不確定性程度來反映。如果每個恭弘=叶 恭弘節點都是一類,也就是在恭弘=叶 恭弘節點特徵路徑的條件下,數據集D內的數據確定是屬於某個類,不確定性為零,就說這棵決策樹構建的非常好,但相應的,樹形會非常複雜。如果每個恭弘=叶 恭弘節點中數據不屬於同一個類,也就是在恭弘=叶 恭弘節點特徵路徑的條件下,數據集D內的數據不能完全確定屬於這個類,不確定性大,就不能說這是一棵好的決策樹,相應的樹形會比較簡潔。可以發現,恭弘=叶 恭弘節點的熵和樹形的複雜程度成反比關係,是不是可以利用該關係,設計一個損失函數,讓決策樹的分類能力和樹形的複雜程度做一個平衡。看一下書中的計算公式以及剪枝算法。

  設樹T的恭弘=叶 恭弘節點個數為|T|,t是樹T的恭弘=叶 恭弘節點,該恭弘=叶 恭弘節點上有Nt個樣本點,其中k類的樣本點數為Ntk個,k=1,2…K,Ht(T)為恭弘=叶 恭弘節點t上的經驗熵,α≥0為參數,則決策樹學習的損失函數可以定義為:

  公式5.11右端第一項,每個恭弘=叶 恭弘節點的經驗熵多乘了一個係數(該節點的樣本個數),暫時看不出意義在哪裡。在公式5.13上,該係數消去了一個分母,看不出別的門道來,貌似也沒有把計算變簡單,畢竟log后仍然求分數(小數過小是不是會導致溢出?log里的小數沒有溢出問題,不知道是不是這個原因)。

  在公式5.14中,可以看到C(T)表示模型對訓練數據的預測誤差,即模型與訓練數據的擬合程度,也就是觀點裡邊該決策樹是否將數據集很好分類的能力。|T|表示模型複雜度,α控制兩者之間的影響,相當於權重因子(數值大,則該項被優化的力度大)。較大的α促使選擇較簡單的決策樹,較小的α促使選擇較複雜的決策樹,α=0意味着只考慮模型與訓練數據的擬合程度,不考慮模型的複雜度(正則化項)。

  可以看出,決策樹生成只考慮了通過提高信息增益或者信息增益比對訓練數據進行更好的擬合,而決策樹剪枝通過優化損失函數還考慮了減小模型複雜度。圖5.6是決策樹剪枝過程的示意圖,看一下剪枝算法:

CART算法

  CART算法是分類與回歸樹(classification and regression tree)的簡稱,同樣由特徵選擇、樹的生成和剪枝組成,既可以用於分類也可以用於回歸。與ID3、C4.5算法構建決策樹不同的是,CART假設決策樹是二叉樹,內部節點特徵取值為“是”和“否”,左分支是取值為“是”的分支,右分支是取值為“否”的分支,這樣的決策樹等價於遞歸的二分每個特徵,將輸入空間即特徵空間劃分成有限個單元。該算法同樣是給定輸入變量X條件下輸出隨機變量Y的條件概率分佈的學習方法,在劃分后的每個單元上確定預測的概率分佈,也就是在輸入給定的條件下輸出的條件概率分佈。

  這裏需要注意理解“遞歸的二分每個特徵”,ID3算法構建決策樹時,我們沒有強調是一棵二叉樹。因為每個特徵的取值,不固定只有兩個取值,我們根據該特徵的取值,劃分為不同子樹,幾個取值幾個子樹。現在“遞歸的二分每個特徵”要構建一棵二叉樹,是不是和多個取值的特徵發生矛盾呢?沒矛盾的話怎麼處理呢?比如體溫有三個取值:高溫、正常、低溫,遞歸的二分每個特徵是指細分每個特徵的取值。之前體溫特徵內部節點的判別結果有三個分支,現在內部節點判別條件變為是否高溫、是否正常、是否低溫,相應內部節點的判別結果分成兩個分支。具體做法仍然是生成和剪枝兩個部分。

CART-分類樹的生成

  類似於ID算法的生成過程,CART分類樹使用基尼指數來選擇最優特徵,同時決定該特徵的最優二值切分點。先看一下基尼指數的定義:

  可以看到公式5.23計算方式是公式5.22在二分類問題下的特殊情況,公式5.24使用頻率估計概率,得到樣本集合D下判別K類的基尼指數。類似於條件熵,在已知某特徵取值下的表示為:

  基尼指數Gini(D)表示集合D的不確定性,基尼指數Gini(D,A)表示經A=a分割後集合的不確定性。與熵類似,基尼指數的值越大,樣本集合的不確定性也就越大。CART生成算法:

  算法流程圖:

  計算例子:

CART-回歸樹的生成

  顧名思義,回歸樹是決策樹算法在回歸問題上的應用。

  我們先來思考一下,回歸問題應該和分類問題有什麼差異,再看接下來的內容。

  第一個問題,回歸樹模型是什麼樣子的。之前提到的決策樹模型,都是關於分類問題,通過特徵選擇對特徵空間進行劃分,被劃分到決策樹恭弘=叶 恭弘子節點對應子空間上的實例,屬於同一類別;我們知道回歸問題輸出變量應為連續值,是不是就意味着回歸問題里,類別數目非常非常多,多到像連續值的排列一樣。子空間劃分成的各個小單元,標記不再是類別,而是一系列數值。

  第二個問題,對什麼進行選擇,從而劃分特徵空間。分類樹中,各個數據基本上都是非數值型的,存在很多特徵分量,我們根據各個特徵的取值概率,找最優的特徵作為切分數據集的標準;在回歸問題中,輸入一般為數值型數據,決策樹模型需要找到切分點,回歸問題中怎麼處理呢?

  第三個問題,切分點選擇的準則是什麼。分類樹中,我們通過信息增益或者信息增益比來選擇最優特徵作為子樹節點的切分點;在回歸樹中,要通過什麼準則對什麼進行選擇,從而劃分特徵空間?

  帶着這三個問題,我們看一下回歸樹模型及算法。

  這裏可以幫助解決第一個問題,公式5.16反映了回歸樹模型的基本模式。決策樹建樹的過程,對應了特徵空間的劃分,劃分成的每個子空間,能夠安放具有相同特徵的數據實例,給他們具體的類別標記。在回歸問題上,劃分后的子空間單元同樣可以用來表示回歸模型的輸出值。詳細看一下公式5.16,指示函數部分表示,屬於Rm類時,該值為1,用回歸樹模型進行預測時,屬於該子空間的實例,賦予輸出值為Cm。注意該公式的求和函數部分,輸入數據x遍歷每個子空間單元,遍歷到所屬的子空間后,得到輸出值Cm,遍歷其它子空間時不得值(因為指示函數條件不滿足時,值為0),f(x)=0+0+…+Cm+…+0=Cm。

  該部分提出了平方誤差的計算思路,用於衡量訓練數據的預測誤差很好理解;用於求解每個單元上的最優輸出值,類似於分類樹中選擇實例數量最多的類,目的在於找到該單元所代表的最優值。為什麼均值會是最優值?原因就在於平方誤差函數,取均值時,與其它值做差,方差最小。

  這裏可以幫助解決第二、三個問題,採取什麼準則對什麼進行選擇。書中描述為,選取合適的變量(第幾個實例)作為切分變量,其值為切分點。也就是說用第n個變量的值來劃分特徵空間,並且採用平方誤差來作為切分點的選擇標準。公式5.19很好理解,首先明確該公式希望找到最優的切分變量和最優切分點,此時誤差值最小;中括號里分成了兩部分,也就是切分點s兩側的情況;我們要使總誤差值最小,就要使中括號中s左右兩側的誤差都保持最小;先看左側部分(R1),我們要找到合適的輸出值c1使該項誤差最小;實際上,左側部分最合適的c1就是左側部分所有yi的均值;右側同理。

  公式5.20表示的過程,我們很難直接計算出來,但我們可以採用遍歷的笨方法,把所有的輸入變量遍歷一遍,去找最優的切分變量j。在遍歷過程中,每個變量依次將特徵空間劃分為兩個區域,對每個區域重複上述劃分過程,直到滿足停止條件未知。也就是下邊的最小二乘回歸樹生成算法。

CART剪枝

  該部分一個大公式,需要深入學習下~開學后整起。

代碼效果

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※推薦台中搬家公司優質服務,可到府估價

台中搬鋼琴,台中金庫搬運,中部廢棄物處理,南投縣搬家公司,好幫手搬家,西屯區搬家