国内精品久久久久_亚洲区手机在线中文无码播放_国内精品久久久久影院一蜜桃_日韩内射激情视频在线播放免费

      如何評價杭州阿里、海康、網(wǎng)易等組成 HR 聯(lián)盟?

      時間:2024-11-17 23:36 人氣:0 編輯:招聘街

      一、如何評價杭州阿里、海康、網(wǎng)易等組成 HR 聯(lián)盟?

      謝邀。

      一,這個聯(lián)盟不是你們想象的那種啦,那一天還沒有來;

      二,那一天遲早要來。

      杭州濱江有“國家示范高新”這頂帽子,戴著這頂帽子,意味著資金和土地等政策上會有大量優(yōu)惠。

      頂著“貧困”的帽子會有國家補助,頂著“高新”的帽子則能突破很多限制,用“創(chuàng)新”的概念偷跑,且一定時間內(nèi)不背責任。

      杭州之前的外號是啥?互聯(lián)網(wǎng)P2P之都;杭州去年的外號是啥?中國賣地之王。

      19年賣了2837億的地,乍一看我還以為是杭州在籌辦第32屆夏季奧運會。

      當然,這幾年杭州賣得有點太狠了,眼瞅著要頂替深圳承擔“房產(chǎn)禍國”的罵名。所以今年杭州稍稍控制了一下寄幾,前11個月只賣了2564億的地,同比增長只有3.12%。

      今年上海2707億、廣州2163億、深圳905億(別覺得少,打開地圖看看市區(qū)面積),同比增長分別為62.32%、83.71%、55.14%。

      是誰跟我說“告別土地財政”來著?

      要賣地就要有地,要有地就要有名義。

      畢竟地能不能賣,要國家批。有批文,農(nóng)田和廠區(qū)才能變成住宅和寫字樓。

      怎么拿呢?那就要“符合”政策。

      五年計劃里會寫明哪些產(chǎn)業(yè)哪些方向是國家鼓勵的,你在地方上搞這些名義,批文就能下來。

      而在搞名義的過程中,人是重要指標。

      你說你在搞高新產(chǎn)業(yè),結(jié)果博士碩士沒幾個,海龜沒幾個,C9在當?shù)氐暮献黜椖繘]幾個,臉上不好看嘛。

      所以,人才這塊,整個平臺。

      企業(yè)還是正常在市場上走招聘,但是那些符合要求的新進打工人,要拿去到平臺上過一道。

      過這一道,有幾個好處:

      一,大面上的數(shù)據(jù)有了。分散在各個企業(yè)里的優(yōu)秀打工人信息直接匯總,報告好看;

      二,都是平臺“引進”的。“平臺”開幾次招聘會,形式加上數(shù)據(jù),證明有關(guān)部門做了工作;

      三,錢有去處。補貼和低息貸款發(fā)給誰?這算是有了個數(shù)據(jù)標準;

      四,形成基本買家。即使是優(yōu)秀打工人,這些政策也只是在住房、醫(yī)療、教育上打個折,或者開放一些優(yōu)先購買權(quán)。

      最后,還是要掏錢滴。

      要整這么多事,地方不得知會一聲各個有牌面的企業(yè),把HR們拉到一個平臺上干活嘛。

      好,扯完5050計劃本身,再扯點長遠。

      雖然這個組織還沒快進到你們想的那個畫面,但有硅谷和日本的畫風在前,那個畫面是一種必然。

      什么“搞勞動仲裁的員工被行業(yè)拉黑”啦;

      什么“刺頭員工互相幫忙‘處理’(引誘你跳槽然后你踩空了)”啦;

      什么“達成有默契的薪資防止出現(xiàn)互相挖角導致人力成本上升”啦;

      該來的總會來。

      我一直的悲鳴:壟斷了撒。

      誰說寡頭壟斷就不是壟斷?

      資本已經(jīng)明白當下是存量市場,而存量市場里搞競爭的代價是極為慘重的。

      新增長極少,那我就必須搞趴你、吃下你的市場來獲得我的增長。在沒有代差技術(shù)優(yōu)勢下,那就是燒錢。

      像一戰(zhàn)的塹壕戰(zhàn)。

      那為什么要燒呢?為什么不互相友好地茍著,然后等天氣回暖了再競爭呢?

      寡頭資本們在存量市場里是不會偏向競爭的,那是還沒有形成一定壟斷地位的中小型資本干的事。不管是大蕭條還是08次貸危機,寡頭們的第一反應就是聯(lián)合。

      因此在勞動市場上的“買家大串聯(lián)”,遲早會來。

      所以賽博朋克2077的分類很到位:

      非中心城區(qū)的流浪者,郊區(qū)紅脖子;

      城區(qū)的街頭小子,城市底層;

      去哪家公司都沒啥大區(qū)別的公司社畜,打工人。

      來人啊,把CDPR這個預言家拖出去刀了!

      二、海康hr面試通過率如何?

      三分之一的通過率。正常招聘工作會要求按照崗位數(shù)的3倍,算做可以面試的人,也就是說,假如你進入到面試環(huán)節(jié),那么恭喜你,只要你pk掉2人,就有機會獲得工作。那些筆試成績第一的人,獲得工作的概率更大,所以你能競爭到這一步,更要加油沖刺

      三、centos海康

      CentOS 與海康威視:打造安全可靠的監(jiān)控系統(tǒng)

      CentOS 和海康威視是兩個在IT和安防領(lǐng)域享有盛譽的品牌。CentOS 是一種基于開放源代碼的操作系統(tǒng),具有穩(wěn)定性高、安全性好的特點,廣泛應用于服務器領(lǐng)域。海康威視作為國內(nèi)領(lǐng)先的視頻監(jiān)控設備制造商,提供了一系列高質(zhì)量的監(jiān)控產(chǎn)品和解決方案。本文將探討如何結(jié)合CentOS操作系統(tǒng)和海康威視設備,打造安全可靠的監(jiān)控系統(tǒng)。

      1. CentOS:開源操作系統(tǒng)的穩(wěn)定力量

      CentOS 是一個以企業(yè)級應用為設計目標的開源操作系統(tǒng),其穩(wěn)定性和安全性備受認可。CentOS 采用了與商業(yè)操作系統(tǒng)相似的架構(gòu),可以為用戶提供強大的性能和支持。作為企業(yè)服務器的首選之一,CentOS 提供了長期支持和更新,能夠確保系統(tǒng)持續(xù)穩(wěn)定運行。

      在構(gòu)建監(jiān)控系統(tǒng)時,選擇 CentOS 作為操作系統(tǒng)有諸多優(yōu)勢。首先,CentOS 的開源性質(zhì)意味著用戶可以自由獲取、使用和定制系統(tǒng),滿足不同監(jiān)控需求的個性化配置。其次,CentOS 提供了豐富的軟件包管理工具,用戶可以方便地部署監(jiān)控相關(guān)的應用程序和軟件驅(qū)動。最重要的是,CentOS 作為一種高度穩(wěn)定的操作系統(tǒng),可以為監(jiān)控系統(tǒng)提供可靠的基礎(chǔ)支持。

      2. 海康威視:質(zhì)量保證的監(jiān)控設備制造商

      海康威視是一家專業(yè)從事視頻監(jiān)控設備研發(fā)、生產(chǎn)和銷售的知名企業(yè),在監(jiān)控行業(yè)擁有良好的口碑和市場份額。海康威視的產(chǎn)品涵蓋了攝像機、錄像機、監(jiān)控軟件等多個領(lǐng)域,廣泛應用于公共安全、交通監(jiān)控、城市管理等領(lǐng)域。

      海康威視產(chǎn)品的質(zhì)量和可靠性得到了廣泛認可。其攝像機擁有高清晰度、遠距離監(jiān)控等優(yōu)良特性,可以滿足各種復雜環(huán)境下的監(jiān)控需求。同時,海康威視的監(jiān)控軟件提供了智能分析、遠程監(jiān)控等功能,為用戶提供了更便捷、高效的監(jiān)控體驗。

      3. CentOS與海康威視的結(jié)合:打造安全可靠的監(jiān)控系統(tǒng)

      將CentOS操作系統(tǒng)與海康威視設備結(jié)合,可以打造出安全可靠、功能強大的監(jiān)控系統(tǒng)。首先,CentOS提供了穩(wěn)定的操作平臺,可以確保監(jiān)控系統(tǒng)的穩(wěn)定運行。其次,用戶可以通過CentOS豐富的軟件包管理工具,輕松部署海康威視的監(jiān)控軟件和驅(qū)動程序,實現(xiàn)設備與系統(tǒng)的完美兼容。

      海康威視的設備可以與CentOS操作系統(tǒng)實現(xiàn)良好的集成,用戶可以在CentOS平臺上實現(xiàn)對監(jiān)控設備的管理和控制。利用海康威視的智能監(jiān)控軟件,用戶可以實現(xiàn)對監(jiān)控畫面的實時查看和錄像存儲,確保監(jiān)控系統(tǒng)的有效運行。同時,海康威視的設備支持遠程監(jiān)控和管理,用戶可以通過網(wǎng)絡實時監(jiān)控各個監(jiān)控點的情況。

      4. 安全性考量:CentOS與海康威視的安全功能

      在構(gòu)建監(jiān)控系統(tǒng)時,安全性始終是至關(guān)重要的考量因素。CentOS作為一個安全性較高的操作系統(tǒng),提供了多重安全功能,如訪問控制、安全認證等,可以有效保護系統(tǒng)免受惡意攻擊和數(shù)據(jù)泄露的威脅。

      海康威視的設備同樣注重安全性,采用了各種安全技術(shù)和加密算法,確保監(jiān)控數(shù)據(jù)的機密性和完整性。用戶可以通過海康威視的設備管理平臺對設備和數(shù)據(jù)進行安全管理,防止未經(jīng)授權(quán)的訪問和操作。

      5. 總結(jié)

      結(jié)合CentOS操作系統(tǒng)和海康威視設備,可以打造一個安全可靠、功能強大的監(jiān)控系統(tǒng)。CentOS作為穩(wěn)定性高、安全性好的操作系統(tǒng),為監(jiān)控系統(tǒng)提供了可靠的基礎(chǔ)支持;海康威視作為質(zhì)量可靠的監(jiān)控設備制造商,為用戶提供了各類高品質(zhì)的監(jiān)控設備和解決方案。

      通過CentOS和海康威視的結(jié)合,用戶可以獲得安全穩(wěn)定、功能強大的監(jiān)控系統(tǒng),實現(xiàn)對各類監(jiān)控場景的有效管理和監(jiān)控。這種結(jié)合不僅可以提高監(jiān)控系統(tǒng)的效率和可靠性,還可以幫助用戶更好地應對安全挑戰(zhàn)和風險,保障監(jiān)控系統(tǒng)的運行安全。

      四、大華海康哪個好?

      從市場地位來說,海康還是龍頭,更勝一籌;從股票市場來說,海康估值相比大華偏高,龍頭享受溢價也能理解;從最新財報來看,大華明顯增速高于海康,尤其是凈利潤增長遠超海康,是否因為大華對支出收緊了,海康在研究方面投入更大,未來也許夠勁更足;兩者都面臨華為進入安防市場的沖擊風險,未來有待觀察;海康被特朗普特點,國家支持力度可能更大。

      PS,利益相關(guān),同時持有海康和大華,18年開始就沒舒心過,從40多持有一直遭遇暴跌,隨著下跌不斷加倉,終于在19年中解套。目前在我個人A股科技股自選股中看來估值屬于最便宜的,有業(yè)績,有門檻,期待AIOT+5G新基建時代大放異彩。

      五、誰了解 中電海康旗下公司 浙江海康智聯(lián)嗎?

      海康智聯(lián)剛從研究院分出來兩年,剛分出來的時候三十個人,現(xiàn)在擴張到一百多,還在高強度社招和校招,目標是做車聯(lián)網(wǎng)的全套解決方案。智聯(lián)在集團內(nèi)部的級別屬于海康威視同級,當然體量差遠了,只能說畫餅的終極目標是海康威視。整體架構(gòu)就是博士做算法,碩士做開發(fā)和推廣。

      我比較廢,杭州某雙非碩,投的技術(shù)支持崗,談的是18打包一年,五險一金,開發(fā)崗據(jù)說是20打包,待遇和大廠比肯定是差遠了,不過承諾985工作制我覺得還是相對安穩(wěn)一些。車聯(lián)網(wǎng)行業(yè)屬于前景比較好的行業(yè),大概看了一下四大產(chǎn)品,和華為的產(chǎn)品現(xiàn)在好像有競爭關(guān)系,面試的時候忘記問市場范圍了,看公告大的單子少,都是幾萬的項目,畢竟剛起步。公司承諾有年終利潤分紅,這個姑且算作潛在收入吧,雖然不穩(wěn)定就像浮動績效一樣,但算是一塊起碼能吃到的餅。

      話說回來,海康威視今年身邊同學軟開普遍是15*15,不知道算什么水平,畢竟雙非中我們也是弱的那一類,橫向比還是不錯了。

      六、hr怎么招聘hr?

      可以在不同信息平臺發(fā)布招聘信息,也可以到人才市場去設攤招聘,還可以直接到大專院校去招聘。而且招聘行為不以招聘主持人的身份而有特別的內(nèi)容。

      HR人員在實施招聘HR崗位人員時與招聘其他人才是一樣的,只須明確被招崗位的具體條件,面試時按流程和條件要求實施,擇優(yōu)錄用就可以了。

      七、hr職場

      HR職場:探索進入人力資源領(lǐng)域的職業(yè)機會

      人力資源管理是現(xiàn)代企業(yè)中不可或缺的一部分。隨著企業(yè)對人才管理的重視和需求不斷增加,人力資源專業(yè)人士的需求也在不斷增長。如果你對管理人力資源、發(fā)展員工以及推動組織發(fā)展的工作感興趣,那么進入人力資源領(lǐng)域可能是一個理想的職業(yè)選擇。

      1. 人力資源職業(yè)的概述

      人力資源職業(yè)涉及到招聘、培訓、員工關(guān)系、績效管理、薪資福利等方面的工作。人力資源專業(yè)人士需要具備溝通、協(xié)調(diào)、分析和解決問題的能力,以幫助企業(yè)實現(xiàn)其戰(zhàn)略目標。

      在現(xiàn)代企業(yè)中,人力資源部門的作用越來越被重視。他們不僅負責招聘和員工關(guān)系管理,還要關(guān)注員工發(fā)展、績效評估以及提升整個組織的工作效率。通過制定和執(zhí)行人力資源策略,人力資源專業(yè)人士在公司的決策中起著至關(guān)重要的作用。

      2. 人力資源職業(yè)的發(fā)展路徑

      進入人力資源領(lǐng)域的職業(yè)路徑多種多樣。以下是一些常見的職業(yè)發(fā)展路徑:

      • 人力資源助理:作為入門級職位,人力資源助理負責處理員工日常事務,如員工檔案管理、薪資核算和員工福利。
      • 招聘專員:負責招聘和篩選候選人,組織面試并與部門經(jīng)理協(xié)調(diào),以最終選拔合適的人才。
      • 培訓發(fā)展專員:負責制定和實施員工培訓計劃,幫助員工提升技能,并為他們的職業(yè)發(fā)展提供支持。
      • 員工關(guān)系專員:協(xié)助管理員工與管理層之間關(guān)系,處理員工的投訴和糾紛,并維護良好的工作環(huán)境。
      • 人力資源經(jīng)理:負責整個人力資源部門的運營和管理,包括員工招聘、薪資福利、績效評估以及員工發(fā)展。

      這些只是職業(yè)發(fā)展路徑的一部分,人力資源領(lǐng)域還有很多不同的職位和專業(yè)。你可以根據(jù)自己的興趣和能力選擇適合自己的發(fā)展方向。

      3. 獲取人力資源專業(yè)知識的途徑

      要在人力資源領(lǐng)域取得成功,除了學習理論知識外,實踐經(jīng)驗也非常重要。以下是一些獲取人力資源專業(yè)知識的途徑:

      • 大學學位:許多大學和學院提供與人力資源相關(guān)的學士學位和研究生課程。通過深入學習人力資源管理的理論和實踐知識,你可以建立起堅實的專業(yè)基礎(chǔ)。
      • 實習經(jīng)歷:在大學期間,你可以通過參加人力資源實習項目來獲得實踐經(jīng)驗。實習可以讓你接觸真實的工作環(huán)境,并學習如何處理各種人力資源問題。
      • 持續(xù)學習:人力資源領(lǐng)域的知識和法規(guī)不斷更新和變化,因此終身學習非常重要。參加行業(yè)研討會、培訓課程和持續(xù)教育項目,可以幫助你保持專業(yè)知識的更新。
      • 加入專業(yè)組織:加入人力資源專業(yè)組織,如SHRM,可以與其他人力資源專業(yè)人士進行交流和學習。這些組織通常會舉辦研討會、網(wǎng)絡研討會和行業(yè)活動。

      這些途徑可以幫助你建立起全面的人力資源知識體系,并獲得在職業(yè)生涯中成功的機會。

      4. 人力資源職業(yè)的未來趨勢

      隨著科技的不斷發(fā)展和企業(yè)環(huán)境的變化,人力資源領(lǐng)域也在不斷演變。以下是人力資源職業(yè)的一些未來趨勢:

      • 數(shù)據(jù)驅(qū)動的決策:通過分析員工數(shù)據(jù)和組織數(shù)據(jù),人力資源專業(yè)人士可以更好地了解組織的需求,并制定有效的戰(zhàn)略和決策。
      • 員工體驗管理:關(guān)注員工的滿意度和福利,提高員工的工作體驗成為人力資源管理的重要目標。
      • 靈活工作安排:隨著遠程工作和彈性工作制度的普及,人力資源部門需要適應這種新的工作模式,并與員工進行有效的溝通和協(xié)調(diào)。
      • 人工智能的應用:人工智能技術(shù)的出現(xiàn)將改變?nèi)肆Y源的日常工作,如招聘和培訓的自動化,以及員工服務的智能化。

      這些趨勢為人力資源專業(yè)人士創(chuàng)造了更多的機會和挑戰(zhàn)。要取得成功,你需要不斷學習和適應變化的環(huán)境。

      結(jié)語

      人力資源職業(yè)是一個充滿機遇和挑戰(zhàn)的領(lǐng)域。通過學習專業(yè)知識,獲得實踐經(jīng)驗,并密切關(guān)注行業(yè)的發(fā)展趨勢,你可以在人力資源職業(yè)中取得成功。

      無論你是希望從事招聘、培訓、員工關(guān)系還是績效管理等工作,人力資源領(lǐng)域提供了豐富的職業(yè)機會。

      開始你的職業(yè)規(guī)劃,投身于人力資源領(lǐng)域,為企業(yè)的發(fā)展和員工的成長貢獻自己的力量吧!

      八、求一些車企HR經(jīng)常提的汽車銷售顧問面試題目?

      車企HR經(jīng)常題的汽車銷售顧問題目有三個:

      1、 請你自我介紹一下

      2、 把你最熟悉的一樣東西推銷給我

      3、 你為什么選擇我們公司

      回答思路:

      1、 請你自我介紹一下

      這個題目幾乎是所有的面試都會出現(xiàn)的第一個問題,但是汽車4S店HR對于不同的崗位即便是同一個人他們都不希望得到相同的答案。對于汽車銷售顧問面試,除了簡單的自我基本信息之外應該突出四點重點。分別是在自我介紹中表露出自己對汽車銷售方面的熱愛和興趣;讓面試官知道你擁有專業(yè)的汽車知識;在介紹過程中讓HR感受到你自信開朗的性格;簡單例舉過往事例證明你有銷售方面的才能。

      2、 把你最熟悉的一樣東西推銷給我

      這個問題是銷售行業(yè)面試官最喜歡問的問題,即便你在前面的自我介紹中介紹得再好,汽車4S店HR也只相信親自看到你處理實例的情況。這時汽車銷售顧問面試求職者一定要拿一樣自己最熟悉的東西,抓住對方特點激發(fā)他的需求向他推銷。

      汽車銷售顧問面試題目中例如你最熟悉的一件產(chǎn)品是一臺自行車,可以抓住3個點激發(fā)他的需求。<1>像您這樣的都市白領(lǐng)平時都缺乏鍛煉,平時多騎自行車是一種鍛煉的好項目;<2>現(xiàn)在到處都在提倡環(huán)保,如果上班不是很遙遠可以騎自行車上班,環(huán)保、交通成本也降下來了;<3>大都市的交通堵塞已經(jīng)是很嚴重一個問題,自行車可以避免交通阻塞。這些都是激發(fā)“假客戶”HR對你所賣產(chǎn)品的需求,這樣的回答可以讓HR知道你懂得去激發(fā)客戶的需求從而進行銷售。

      3、 你為什么選擇我們公司

      這道題目是汽車4S店考察汽車銷售顧問面試求職者的動機,發(fā)展愿望以及對在汽車4S店汽車銷售顧問這項工作的態(tài)度。這時求職者一定要謹慎回答,切不可盲目隨便說些好話把這個問題敷衍過去,可以從面試的行業(yè)、企業(yè)、求職的崗位三個方面去回答。

      汽車銷售顧問面試題目三個方面的例舉,行業(yè)方面:“我十分看好汽車銷售這個行業(yè),因為從網(wǎng)絡上了解到目前中國汽車保有量已經(jīng)超過8000萬輛。并且還在以每年13%的速度遞增,汽車銷售這個行業(yè)前景非常廣闊。”企業(yè)方面:“貴公司的培訓制度非常完善,并且非常重視人才。晉升制度也非常透明,我相信在貴公司能找到我發(fā)展的道路。”崗位方面:“我非常喜歡汽車銷售顧問這個崗位,因為我覺得這個崗位除了能服務于人更重要可以學到很多東西提升自己。”

      汽車銷售顧問面試

      是求職者向

      汽車

      4S

      HR推銷自己的一個過程,只有能把自己推銷給HR才能證明你真的有能力立足汽車銷售行業(yè)。汽車銷售顧問面試題目很大眾化,但卻恰好是汽車4S店考察求職者能否在大眾化的情況下把自己特殊地推銷出去。汽車銷售顧問面試求職者在面試過程中應該時時注意HR看似普通的問題,把自己準確地推銷出去給汽車4S店HR。

      九、如何評價海康螢石?

      先做個小總結(jié)。

      1.客服質(zhì)量低下,不懂產(chǎn)品,連最基礎(chǔ)的存儲卡問題都無法幫助解決。

      2.拒絕質(zhì)保。購買時告知一年質(zhì)保,出了問題后告知已超出質(zhì)保,僅質(zhì)保三個月,且在商品詳情頁面,商品說明書售后卡等任何地方都沒有標明。

      3.霸王售后,在產(chǎn)品設計缺陷的情況下,壞了產(chǎn)品不進行任何維修,直接讓用戶花錢買個新的。


      以下為正文

      天貓旗艦店買了兩個C3A的套裝,收到貨后,插上TF卡發(fā)現(xiàn)不識別,告知客服后……

      后來我通過重新登陸賬號的方式解決。(插上卡后重啟攝像頭,攝像頭也還是不認卡,要重新登陸賬號才行)這我都納悶是硬件問題還是軟件問題了……反正是產(chǎn)品設計有問題。

      我購買的攝像頭是帶電池和充電底座的,但后來發(fā)現(xiàn)充電底座有嚴重的設計問題,在經(jīng)過一次次數(shù)的電池插拔使用后,觸點就會變形。主要由于電池是滑入式的設計,而很多充電底座是放入式設計。

      完好的觸點
      變形的觸點

      于是我在5個月的時候?qū)a(chǎn)品發(fā)向售后部,結(jié)果得到了這樣的消息。

      最終我上12315投訴,黑貓投訴,螢石都沒有給我任何反饋。仿佛在說:我就是硬,不把消費者當人看,你能拿我怎么滴?

      再次總結(jié):

      1.客服質(zhì)量低下,不懂產(chǎn)品,連最基礎(chǔ)的存儲卡問題都無法幫助解決。

      2.拒絕質(zhì)保。購買時告知一年質(zhì)保,出了問題后告知已超出質(zhì)保,僅質(zhì)保三個月,且在商品詳情頁面,商品說明書售后卡等任何地方都沒有標明。

      3.霸王售后,在產(chǎn)品設計缺陷的情況下,壞了產(chǎn)品不進行任何維修,直接讓用戶花錢買個新的。

      十、mahout面試題?

      之前看了Mahout官方示例 20news 的調(diào)用實現(xiàn);于是想根據(jù)示例的流程實現(xiàn)其他例子。網(wǎng)上看到了一個關(guān)于天氣適不適合打羽毛球的例子。

      訓練數(shù)據(jù):

      Day Outlook Temperature Humidity Wind PlayTennis

      D1 Sunny Hot High Weak No

      D2 Sunny Hot High Strong No

      D3 Overcast Hot High Weak Yes

      D4 Rain Mild High Weak Yes

      D5 Rain Cool Normal Weak Yes

      D6 Rain Cool Normal Strong No

      D7 Overcast Cool Normal Strong Yes

      D8 Sunny Mild High Weak No

      D9 Sunny Cool Normal Weak Yes

      D10 Rain Mild Normal Weak Yes

      D11 Sunny Mild Normal Strong Yes

      D12 Overcast Mild High Strong Yes

      D13 Overcast Hot Normal Weak Yes

      D14 Rain Mild High Strong No

      檢測數(shù)據(jù):

      sunny,hot,high,weak

      結(jié)果:

      Yes=》 0.007039

      No=》 0.027418

      于是使用Java代碼調(diào)用Mahout的工具類實現(xiàn)分類。

      基本思想:

      1. 構(gòu)造分類數(shù)據(jù)。

      2. 使用Mahout工具類進行訓練,得到訓練模型。

      3。將要檢測數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。

      4. 分類器對vector數(shù)據(jù)進行分類。

      接下來貼下我的代碼實現(xiàn)=》

      1. 構(gòu)造分類數(shù)據(jù):

      在hdfs主要創(chuàng)建一個文件夾路徑 /zhoujainfeng/playtennis/input 并將分類文件夾 no 和 yes 的數(shù)據(jù)傳到hdfs上面。

      數(shù)據(jù)文件格式,如D1文件內(nèi)容: Sunny Hot High Weak

      2. 使用Mahout工具類進行訓練,得到訓練模型。

      3。將要檢測數(shù)據(jù)轉(zhuǎn)換成vector數(shù)據(jù)。

      4. 分類器對vector數(shù)據(jù)進行分類。

      這三步,代碼我就一次全貼出來;主要是兩個類 PlayTennis1 和 BayesCheckData = =》

      package myTesting.bayes;

      import org.apache.hadoop.conf.Configuration;

      import org.apache.hadoop.fs.FileSystem;

      import org.apache.hadoop.fs.Path;

      import org.apache.hadoop.util.ToolRunner;

      import org.apache.mahout.classifier.naivebayes.training.TrainNaiveBayesJob;

      import org.apache.mahout.text.SequenceFilesFromDirectory;

      import org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles;

      public class PlayTennis1 {

      private static final String WORK_DIR = "hdfs://192.168.9.72:9000/zhoujianfeng/playtennis";

      /*

      * 測試代碼

      */

      public static void main(String[] args) {

      //將訓練數(shù)據(jù)轉(zhuǎn)換成 vector數(shù)據(jù)

      makeTrainVector();

      //產(chǎn)生訓練模型

      makeModel(false);

      //測試檢測數(shù)據(jù)

      BayesCheckData.printResult();

      }

      public static void makeCheckVector(){

      //將測試數(shù)據(jù)轉(zhuǎn)換成序列化文件

      try {

      Configuration conf = new Configuration();

      conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));

      String input = WORK_DIR+Path.SEPARATOR+"testinput";

      String output = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";

      Path in = new Path(input);

      Path out = new Path(output);

      FileSystem fs = FileSystem.get(conf);

      if(fs.exists(in)){

      if(fs.exists(out)){

      //boolean參數(shù)是,是否遞歸刪除的意思

      fs.delete(out, true);

      }

      SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();

      String[] params = new String[]{"-i",input,"-o",output,"-ow"};

      ToolRunner.run(sffd, params);

      }

      } catch (Exception e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

      System.out.println("文件序列化失敗!");

      System.exit(1);

      }

      //將序列化文件轉(zhuǎn)換成向量文件

      try {

      Configuration conf = new Configuration();

      conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));

      String input = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";

      String output = WORK_DIR+Path.SEPARATOR+"tennis-test-vectors";

      Path in = new Path(input);

      Path out = new Path(output);

      FileSystem fs = FileSystem.get(conf);

      if(fs.exists(in)){

      if(fs.exists(out)){

      //boolean參數(shù)是,是否遞歸刪除的意思

      fs.delete(out, true);

      }

      SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();

      String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};

      ToolRunner.run(svfsf, params);

      }

      } catch (Exception e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

      System.out.println("序列化文件轉(zhuǎn)換成向量失敗!");

      System.out.println(2);

      }

      }

      public static void makeTrainVector(){

      //將測試數(shù)據(jù)轉(zhuǎn)換成序列化文件

      try {

      Configuration conf = new Configuration();

      conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));

      String input = WORK_DIR+Path.SEPARATOR+"input";

      String output = WORK_DIR+Path.SEPARATOR+"tennis-seq";

      Path in = new Path(input);

      Path out = new Path(output);

      FileSystem fs = FileSystem.get(conf);

      if(fs.exists(in)){

      if(fs.exists(out)){

      //boolean參數(shù)是,是否遞歸刪除的意思

      fs.delete(out, true);

      }

      SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();

      String[] params = new String[]{"-i",input,"-o",output,"-ow"};

      ToolRunner.run(sffd, params);

      }

      } catch (Exception e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

      System.out.println("文件序列化失敗!");

      System.exit(1);

      }

      //將序列化文件轉(zhuǎn)換成向量文件

      try {

      Configuration conf = new Configuration();

      conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));

      String input = WORK_DIR+Path.SEPARATOR+"tennis-seq";

      String output = WORK_DIR+Path.SEPARATOR+"tennis-vectors";

      Path in = new Path(input);

      Path out = new Path(output);

      FileSystem fs = FileSystem.get(conf);

      if(fs.exists(in)){

      if(fs.exists(out)){

      //boolean參數(shù)是,是否遞歸刪除的意思

      fs.delete(out, true);

      }

      SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();

      String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};

      ToolRunner.run(svfsf, params);

      }

      } catch (Exception e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

      System.out.println("序列化文件轉(zhuǎn)換成向量失敗!");

      System.out.println(2);

      }

      }

      public static void makeModel(boolean completelyNB){

      try {

      Configuration conf = new Configuration();

      conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));

      String input = WORK_DIR+Path.SEPARATOR+"tennis-vectors"+Path.SEPARATOR+"tfidf-vectors";

      String model = WORK_DIR+Path.SEPARATOR+"model";

      String labelindex = WORK_DIR+Path.SEPARATOR+"labelindex";

      Path in = new Path(input);

      Path out = new Path(model);

      Path label = new Path(labelindex);

      FileSystem fs = FileSystem.get(conf);

      if(fs.exists(in)){

      if(fs.exists(out)){

      //boolean參數(shù)是,是否遞歸刪除的意思

      fs.delete(out, true);

      }

      if(fs.exists(label)){

      //boolean參數(shù)是,是否遞歸刪除的意思

      fs.delete(label, true);

      }

      TrainNaiveBayesJob tnbj = new TrainNaiveBayesJob();

      String[] params =null;

      if(completelyNB){

      params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow","-c"};

      }else{

      params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow"};

      }

      ToolRunner.run(tnbj, params);

      }

      } catch (Exception e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

      System.out.println("生成訓練模型失敗!");

      System.exit(3);

      }

      }

      }

      package myTesting.bayes;

      import java.io.IOException;

      import java.util.HashMap;

      import java.util.Map;

      import org.apache.commons.lang.StringUtils;

      import org.apache.hadoop.conf.Configuration;

      import org.apache.hadoop.fs.Path;

      import org.apache.hadoop.fs.PathFilter;

      import org.apache.hadoop.io.IntWritable;

      import org.apache.hadoop.io.LongWritable;

      import org.apache.hadoop.io.Text;

      import org.apache.mahout.classifier.naivebayes.BayesUtils;

      import org.apache.mahout.classifier.naivebayes.NaiveBayesModel;

      import org.apache.mahout.classifier.naivebayes.StandardNaiveBayesClassifier;

      import org.apache.mahout.common.Pair;

      import org.apache.mahout.common.iterator.sequencefile.PathType;

      import org.apache.mahout.common.iterator.sequencefile.SequenceFileDirIterable;

      import org.apache.mahout.math.RandomAccessSparseVector;

      import org.apache.mahout.math.Vector;

      import org.apache.mahout.math.Vector.Element;

      import org.apache.mahout.vectorizer.TFIDF;

      import com.google.common.collect.ConcurrentHashMultiset;

      import com.google.common.collect.Multiset;

      public class BayesCheckData {

      private static StandardNaiveBayesClassifier classifier;

      private static Map<String, Integer> dictionary;

      private static Map<Integer, Long> documentFrequency;

      private static Map<Integer, String> labelIndex;

      public void init(Configuration conf){

      try {

      String modelPath = "/zhoujianfeng/playtennis/model";

      String dictionaryPath = "/zhoujianfeng/playtennis/tennis-vectors/dictionary.file-0";

      String documentFrequencyPath = "/zhoujianfeng/playtennis/tennis-vectors/df-count";

      String labelIndexPath = "/zhoujianfeng/playtennis/labelindex";

      dictionary = readDictionnary(conf, new Path(dictionaryPath));

      documentFrequency = readDocumentFrequency(conf, new Path(documentFrequencyPath));

      labelIndex = BayesUtils.readLabelIndex(conf, new Path(labelIndexPath));

      NaiveBayesModel model = NaiveBayesModel.materialize(new Path(modelPath), conf);

      classifier = new StandardNaiveBayesClassifier(model);

      } catch (IOException e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

      System.out.println("檢測數(shù)據(jù)構(gòu)造成vectors初始化時報錯。。。。");

      System.exit(4);

      }

      }

      /**

      * 加載字典文件,Key: TermValue; Value:TermID

      * @param conf

      * @param dictionnaryDir

      * @return

      */

      private static Map<String, Integer> readDictionnary(Configuration conf, Path dictionnaryDir) {

      Map<String, Integer> dictionnary = new HashMap<String, Integer>();

      PathFilter filter = new PathFilter() {

      @Override

      public boolean accept(Path path) {

      String name = path.getName();

      return name.startsWith("dictionary.file");

      }

      };

      for (Pair<Text, IntWritable> pair : new SequenceFileDirIterable<Text, IntWritable>(dictionnaryDir, PathType.LIST, filter, conf)) {

      dictionnary.put(pair.getFirst().toString(), pair.getSecond().get());

      }

      return dictionnary;

      }

      /**

      * 加載df-count目錄下TermDoc頻率文件,Key: TermID; Value:DocFreq

      * @param conf

      * @param dictionnaryDir

      * @return

      */

      private static Map<Integer, Long> readDocumentFrequency(Configuration conf, Path documentFrequencyDir) {

      Map<Integer, Long> documentFrequency = new HashMap<Integer, Long>();

      PathFilter filter = new PathFilter() {

      @Override

      public boolean accept(Path path) {

      return path.getName().startsWith("part-r");

      }

      };

      for (Pair<IntWritable, LongWritable> pair : new SequenceFileDirIterable<IntWritable, LongWritable>(documentFrequencyDir, PathType.LIST, filter, conf)) {

      documentFrequency.put(pair.getFirst().get(), pair.getSecond().get());

      }

      return documentFrequency;

      }

      public static String getCheckResult(){

      Configuration conf = new Configuration();

      conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));

      String classify = "NaN";

      BayesCheckData cdv = new BayesCheckData();

      cdv.init(conf);

      System.out.println("init done...............");

      Vector vector = new RandomAccessSparseVector(10000);

      TFIDF tfidf = new TFIDF();

      //sunny,hot,high,weak

      Multiset<String> words = ConcurrentHashMultiset.create();

      words.add("sunny",1);

      words.add("hot",1);

      words.add("high",1);

      words.add("weak",1);

      int documentCount = documentFrequency.get(-1).intValue(); // key=-1時表示總文檔數(shù)

      for (Multiset.Entry<String> entry : words.entrySet()) {

      String word = entry.getElement();

      int count = entry.getCount();

      Integer wordId = dictionary.get(word); // 需要從dictionary.file-0文件(tf-vector)下得到wordID,

      if (StringUtils.isEmpty(wordId.toString())){

      continue;

      }

      if (documentFrequency.get(wordId) == null){

      continue;

      }

      Long freq = documentFrequency.get(wordId);

      double tfIdfValue = tfidf.calculate(count, freq.intValue(), 1, documentCount);

      vector.setQuick(wordId, tfIdfValue);

      }

      // 利用貝葉斯算法開始分類,并提取得分最好的分類label

      Vector resultVector = classifier.classifyFull(vector);

      double bestScore = -Double.MAX_VALUE;

      int bestCategoryId = -1;

      for(Element element: resultVector.all()) {

      int categoryId = element.index();

      double score = element.get();

      System.out.println("categoryId:"+categoryId+" score:"+score);

      if (score > bestScore) {

      bestScore = score;

      bestCategoryId = categoryId;

      }

      }

      classify = labelIndex.get(bestCategoryId)+"(categoryId="+bestCategoryId+")";

      return classify;

      }

      public static void printResult(){

      System.out.println("檢測所屬類別是:"+getCheckResult());

      }

      }

      相關(guān)資訊
      熱門頻道

      Copyright © 2024 招聘街 滇ICP備2024020316號-38

      国内精品久久久久_亚洲区手机在线中文无码播放_国内精品久久久久影院一蜜桃_日韩内射激情视频在线播放免费

        楚雄市| 修武县| 瑞安市| 彰武县| 樟树市| 彭泽县| 马龙县| 太和县| 云安县| 土默特右旗| 盐山县| 南澳县| 高密市| 辽宁省| 德州市| 西宁市| 蓬莱市| 安吉县| 昌都县| 南京市| 涟源市| 肥东县| 甘肃省| 子洲县| 乌拉特中旗| 即墨市| 桐乡市| 德清县| 麦盖提县| 宁南县| 钦州市| 玉林市| 新巴尔虎左旗| 岳池县| 莎车县| 鸡东县| 黄石市| 红原县| 栖霞市| 那曲县| 松阳县|