99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀數(shù)據(jù)科學(xué)家不可不知的10種機(jī)器學(xué)習(xí)方法
數(shù)據(jù)科學(xué)家不可不知的10種機(jī)器學(xué)習(xí)方法
2019-09-19
收藏
數(shù)據(jù)科學(xué)家不可不知的10種<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>方法

作者 | CDA數(shù)據(jù)分析師

10 machine learning methods that every data scientist should know

機(jī)器學(xué)習(xí)是研究和工業(yè)中的熱門話題,新方法一直在發(fā)展。該領(lǐng)域的速度和復(fù)雜性使得即使對于專家而言也難以跟上新技術(shù) - 并且對于初學(xué)者而言可能是壓倒性的難度。

為了揭開機(jī)器學(xué)習(xí)的神秘面紗并為剛接觸核心概念的人提供學(xué)習(xí)途徑,讓我們看看十種不同的方法,包括簡單描述,可視化和每個方法的示例。

機(jī)器學(xué)習(xí)算法(也稱為模型)是表示問題上下文中的數(shù)據(jù)的數(shù)學(xué)表達(dá)式,通常是業(yè)務(wù)問題。目標(biāo)是從數(shù)據(jù)到洞察。例如,如果在線零售商想要預(yù)測下一季度的銷售額,他們可能會使用機(jī)器學(xué)習(xí)算法,根據(jù)過去的銷售額和其他相關(guān)數(shù)據(jù)預(yù)測這些銷售額。類似地,風(fēng)車制造商可以通過視覺監(jiān)控重要設(shè)備并通過訓(xùn)練識別危險裂縫的算法來提供視頻數(shù)據(jù)。


所描述的十種方法提供了一個概述 - 以及您在磨練機(jī)器學(xué)習(xí)知識和技能時可以建立的基礎(chǔ):


1 回歸

回歸方法屬于有監(jiān)督的ML類別。它們有助于基于一組先前數(shù)據(jù)預(yù)測或解釋特定數(shù)值,例如基于類似屬性的先前定價數(shù)據(jù)來預(yù)測房產(chǎn)的價格。

數(shù)據(jù)科學(xué)家不可不知的10種<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>方法

最簡單的方法是線性回歸,其中我們使用直線的數(shù)學(xué)方程(y = m * x + b)來模擬數(shù)據(jù)集。我們通過計(jì)算線的位置和斜率來訓(xùn)練具有許多數(shù)據(jù)對(x,y)線性回歸模型,該直線最小化所有數(shù)據(jù)點(diǎn)和線之間的總距離。換句話說,我們計(jì)算最接近數(shù)據(jù)中觀測值的線的斜率(m)和y截距(b)。

讓我們考慮更多線性回歸的具體例子。我曾經(jīng)使用線性回歸來預(yù)測某些建筑物的能耗(以千瓦時為單位),將建筑物的年齡,樓層數(shù),平方英尺和堵墻設(shè)備的數(shù)量匯總在一起。由于有多個輸入(年齡,平方英尺等),我使用了多變量線性回歸。原理與簡單的一對一線性回歸相同,但在這種情況下,我創(chuàng)建的“線”基于變量的數(shù)量發(fā)生在多維空間中。

下圖顯示了線性回歸模型與建筑物實(shí)際能耗的匹配程度?,F(xiàn)在想象一下,您可以訪問建筑物的特征(年齡,平方英尺等),但您不知道能耗。在這種情況下,我們可以使用擬合線來估算特定建筑物的能耗。

請注意,您還可以使用線性回歸來估計(jì)每個因素的權(quán)重,這有助于最終預(yù)測消耗的能量。例如,一旦有了公式,就可以確定年齡,大小或身高是否最重要。

數(shù)據(jù)科學(xué)家不可不知的10種<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>方法

▲建筑能耗(kWh)的線性回歸模型估計(jì)

回歸技術(shù)的范圍從簡單(如線性回歸)到復(fù)雜(如正則化線性回歸,多項(xiàng)式回歸,決策樹隨機(jī)森林回歸,神經(jīng)網(wǎng)絡(luò)等)。但不要陷入困境:首先研究簡單的線性回歸,掌握基礎(chǔ),然后繼續(xù)前進(jìn)。


2 分類

另一類有監(jiān)督的ML,分類方法預(yù)測或解釋類值。例如,他們可以幫助預(yù)測在線客戶是否會購買產(chǎn)品。輸出可以是是或否:買方或非買方。但分類方法不限于兩類。例如,分類方法可以幫助評估給定圖像是否包含汽車或卡車。在這種情況下,輸出將是3個不同的值:1)圖像包含汽車,2)圖像包含卡車,或3)圖像既不包含汽車也不包含卡車。

最簡單的分類算法是邏輯回歸 - 這使得它聽起來像一個回歸方法,但事實(shí)并非如此。邏輯回歸基于一個或多個輸入估計(jì)事件發(fā)生的概率。

例如,邏輯回歸可以將學(xué)生的兩個考試分?jǐn)?shù)作為輸入,以便估計(jì)學(xué)生將被錄取到特定大學(xué)的概率。因?yàn)楣烙?jì)是概率,所以輸出是介于0和1之間的數(shù)字,其中1表示完全確定性。對于學(xué)生,如果估計(jì)的概率大于0.5,那么我們預(yù)測他或她將被錄取。如果估計(jì)的概率小于0.5,我們預(yù)測他或她將被拒絕。

下圖顯示了之前學(xué)生的分?jǐn)?shù)以及他們是否被錄取。Logistic回歸允許我們繪制一條代表決策邊界的線。

數(shù)據(jù)科學(xué)家不可不知的10種<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>方法

▲Logistic回歸決策邊界:是否入讀大學(xué)?

因?yàn)?a href='/map/luojihuigui/' style='color:#000;font-size:inherit;'>邏輯回歸是最簡單的分類模型,所以它是開始分類的好地方。隨著您的進(jìn)步,您可以深入研究非線性分類器,例如決策樹,隨機(jī)森林,支持向量機(jī)神經(jīng)網(wǎng)絡(luò)等。


3 聚類

使用聚類方法,我們進(jìn)入無監(jiān)督ML的類別,因?yàn)樗鼈兊哪繕?biāo)是對具有相似特征的觀察進(jìn)行分組或聚類。聚類方法不使用輸出信息進(jìn)行訓(xùn)練,而是讓算法定義輸出。在聚類方法中,我們只能使用可視化來檢查解決方案的質(zhì)量。

最流行的聚類方法是K-Means,其中“K”表示用戶選擇創(chuàng)建的聚類數(shù)。(注意,有多種技術(shù)可以選擇K的值,例如彎頭法。)

粗略地說,K-Means對數(shù)據(jù)點(diǎn)的作用如下:

  1. 隨機(jī)選擇數(shù)據(jù)中的K個中心。
  2. 將每個數(shù)據(jù)點(diǎn)分配給最接近的隨機(jī)創(chuàng)建的中心。
  3. 重新計(jì)算每個群集的中心。
  4. 如果中心沒有改變(或改變很少),則該過程結(jié)束。否則,我們返回到步驟2.(如果中心繼續(xù)更改,為了防止無限循環(huán)結(jié)束,請?zhí)崆霸O(shè)置最大迭代次數(shù)。)

下一個圖將K-Means應(yīng)用于建筑物的數(shù)據(jù)集。圖中的每一列都表明了每棟建筑的效率。這四項(xiàng)測量涉及空調(diào),插入式設(shè)備(微波爐,冰箱等),家用燃?xì)夂图訜釟怏w。我們選擇K = 2進(jìn)行聚類,這樣可以很容易地將其中一個聚類解釋為高效建筑群,將另一個聚類解釋為低效建筑群。在左側(cè),您可以看到建筑物的位置,在右側(cè),您可以看到我們用作輸入的四個尺寸中的兩個:插入式設(shè)備和加熱氣體。

數(shù)據(jù)科學(xué)家不可不知的10種<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>方法

▲將建筑物聚類為高效(綠色)和低效(紅色)組。

在探索聚類時,您將遇到非常有用的算法,例如基于密度的噪聲應(yīng)用空間聚類(DBSCAN),均值偏移聚類,凝聚層次聚類,使用高斯混合模型的期望最大化聚類等。


4 降維

顧名思義,我們使用降維來從數(shù)據(jù)集中刪除最不重要的信息(有時是冗余列)。在實(shí)踐中,我經(jīng)常看到包含數(shù)百甚至數(shù)千列(也稱為特征)的數(shù)據(jù)集,因此減少總數(shù)至關(guān)重要。例如,圖像可以包含數(shù)千個像素,而不是所有像素對您的分析都很重要?;蛘?,在制造過程中測試微芯片時,可能會對每個芯片應(yīng)用數(shù)千個測量和測試,其中許多芯片提供冗余信息。在這些情況下,您需要降維算法以使數(shù)據(jù)集易于管理。

最流行的降維方法是主成分分析(PCA),它通過找到最大化數(shù)據(jù)線性變化的新向量來減小特征空間的維數(shù)。當(dāng)數(shù)據(jù)的線性相關(guān)性很強(qiáng)時,PCA可以顯著減小數(shù)據(jù)的維度,而不會丟失太多信息。(事實(shí)上,您還可以衡量信息丟失的實(shí)際程度并進(jìn)行相應(yīng)調(diào)整。)

另一種流行的方法是t-Stochastic Neighbor Embedding(t-SNE),它可以減少非線性維數(shù)。人們通常使用t-SNE進(jìn)行數(shù)據(jù)可視化,但您也可以將其用于機(jī)器學(xué)習(xí)任務(wù),例如減少特征空間和聚類,僅舉幾例。

下一個圖顯示了手寫數(shù)字的MNIST數(shù)據(jù)庫的分析。MNIST包含數(shù)千個從0到9的數(shù)字圖像,研究人員用它們來測試它們的聚類和分類算法。數(shù)據(jù)集的每一行是原始圖像的矢量化版本(大小28×28 = 784)和每個圖像的標(biāo)簽(零,一,二,三,......,九)。請注意,我們因此將維度從784(像素)減少到2(我們的可視化中的維度)。投影到兩個維度允許我們可視化高維原始數(shù)據(jù)集。


數(shù)據(jù)科學(xué)家不可不知的10種<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>方法

▲MNIST手寫數(shù)字?jǐn)?shù)據(jù)庫的t-SNE迭代。



5 集成算法

想象一下,你決定制造一輛自行車,因?yàn)槟銓ι痰旰途W(wǎng)上的選擇感到不滿意。您可以從找到所需的每個部件的最佳部分開始。一旦你組裝了所有這些偉大的部件,最終的自行車將超越所有其他選項(xiàng)。

集成使用相同的想法,結(jié)合幾個預(yù)測模型(監(jiān)督ML),以獲得比每個模型本身可以提供的更高質(zhì)量的預(yù)測。例如,隨機(jī)森林算法是一種集成算法,它結(jié)合了許多用不同數(shù)據(jù)集樣本訓(xùn)練的決策樹。因此,隨機(jī)森林的預(yù)測質(zhì)量高于使用單個決策樹估計(jì)的預(yù)測質(zhì)量。

集成算法視為減少單個機(jī)器學(xué)習(xí)模型的方差和偏差的一種方法。這很重要,因?yàn)槿魏谓o定的模型在某些條件下可能是準(zhǔn)確的,但在其他條件下可能不準(zhǔn)確。使用另一個模型,相對精度可能會相反。通過組合這兩個模型,可以平衡預(yù)測的質(zhì)量。

Kaggle比賽的絕大多數(shù)頂級獲勝者都使用某種方式的合奏方法。最流行的集成算法隨機(jī)森林,XGBoost和LightGBM。


6 神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)

與被認(rèn)為是線性模型的線性和邏輯回歸相比,神經(jīng)網(wǎng)絡(luò)的目標(biāo)是通過向模型添加參數(shù)層來捕獲數(shù)據(jù)中的非線性模式。在下圖中,簡單神經(jīng)網(wǎng)絡(luò)有四個輸入,一個帶有五個參數(shù)的隱藏層和一個輸出層。

數(shù)據(jù)科學(xué)家不可不知的10種<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>方法

實(shí)際上,神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)足夠靈活,可以構(gòu)建我們眾所周知的線性回歸邏輯回歸。術(shù)語深度學(xué)習(xí)來自具有許多隱藏層的神經(jīng)網(wǎng)絡(luò)(見下圖),并封裝了各種各樣的體系結(jié)構(gòu)。

特別難以跟上深度學(xué)習(xí)的發(fā)展,部分原因是研究和行業(yè)社區(qū)的深度學(xué)習(xí)成果翻了一番,每天產(chǎn)生全新的方法論。 具有一個隱藏層的神經(jīng)網(wǎng)絡(luò)

數(shù)據(jù)科學(xué)家不可不知的10種<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>方法

深度學(xué)習(xí):具有多個隱藏層的神經(jīng)網(wǎng)絡(luò)。

為了獲得最佳性能,深度學(xué)習(xí)技術(shù)需要大量數(shù)據(jù) - 以及大量計(jì)算能力,因?yàn)樵摲椒梢栽诖笮图軜?gòu)中自我調(diào)整許多參數(shù)。很快就會清楚為什么深度學(xué)習(xí)從業(yè)者需要使用GPU(圖形處理單元)增強(qiáng)的非常強(qiáng)大的計(jì)算機(jī)。

特別是,深度學(xué)習(xí)技術(shù)在視覺(圖像分類),文本,音頻和視頻領(lǐng)域非常成功。最常見的深度學(xué)習(xí)軟件包是Tensorflow和PyTorch。


7 遷移學(xué)習(xí)

讓我們假裝您是零售行業(yè)的數(shù)據(jù)科學(xué)家。您花了幾個月的時間訓(xùn)練高質(zhì)量的模型,將圖像分類為襯衫,T恤和馬球。你的新任務(wù)是建立一個類似的模型,將服裝圖像分類為牛仔褲,貨物,休閑褲和正裝褲。您是否可以將內(nèi)置的知識轉(zhuǎn)移到第一個模型中并將其應(yīng)用到第二個模型中?是的,您可以使用遷移學(xué)習(xí)。

轉(zhuǎn)移學(xué)習(xí)是指重新使用先前訓(xùn)練的神經(jīng)網(wǎng)絡(luò)的一部分并使其適應(yīng)新的但類似的任務(wù)。具體來說,一旦您使用任務(wù)數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),您可以傳輸一小部分訓(xùn)練過的圖層,并將它們與您可以使用新任務(wù)的數(shù)據(jù)訓(xùn)練的幾個新圖層組合在一起。通過添加幾個層,新的神經(jīng)網(wǎng)絡(luò)可以快速學(xué)習(xí)并適應(yīng)新任務(wù)。

遷移學(xué)習(xí)的主要優(yōu)點(diǎn)是你需要更少的數(shù)據(jù)來訓(xùn)練神經(jīng)網(wǎng)絡(luò),這一點(diǎn)尤為重要,因?yàn)?a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學(xué)習(xí)算法的訓(xùn)練在時間和金錢(計(jì)算資源)方面都是昂貴的 - 當(dāng)然,通常很難找到足夠的標(biāo)記數(shù)據(jù)用于訓(xùn)練。

讓我們回到我們的例子,并假設(shè)對于襯衫模型,你使用一個有20個隱藏層的神經(jīng)網(wǎng)絡(luò)。經(jīng)過一些實(shí)驗(yàn)后,您意識到您可以轉(zhuǎn)移18個襯衫模型層,并將它們與一個新的參數(shù)層相結(jié)合,以訓(xùn)練褲子的圖像。因此褲子模型將有19個隱藏層。兩個任務(wù)的輸入和輸出是不同的,但是可重復(fù)使用的層可以概括與兩者相關(guān)的信息,例如布料,緊固件和形狀的方面。

遷移學(xué)習(xí)變得越來越流行,現(xiàn)在有許多可靠的預(yù)訓(xùn)練模型可用于常見的深度學(xué)習(xí)任務(wù),如圖像和文本分類

數(shù)據(jù)科學(xué)家不可不知的10種<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>方法


8 強(qiáng)化學(xué)習(xí)

想象一下,迷宮中的老鼠試圖找到隱藏的奶酪片。我們將老鼠暴露在迷宮中的次數(shù)越多,找到奶酪就越好。起初,老鼠可能會隨機(jī)移動,但經(jīng)過一段時間后,老鼠的體驗(yàn)有助于它實(shí)現(xiàn)哪些動作更接近奶酪。

老鼠的過程反映了我們使用強(qiáng)化學(xué)習(xí)(RL)來訓(xùn)練系統(tǒng)或游戲。一般來說,RL是一種機(jī)器學(xué)習(xí)方法,可以幫助代理人從經(jīng)驗(yàn)中學(xué)習(xí)。通過在設(shè)定環(huán)境中記錄操作并使用試錯法,RL可以最大化累積獎勵。在我們的示例中,老鼠是代理,迷宮是環(huán)境。老鼠的可能操作集是:前移,后移,左移或右移。獎勵是奶酪。

當(dāng)您幾乎沒有關(guān)于問題的歷史數(shù)據(jù)時,可以使用RL,因?yàn)樗恍枰孪忍峁┬畔ⅲㄅc傳統(tǒng)的機(jī)器學(xué)習(xí)方法不同)。在RL框架中,您可以隨時了解數(shù)據(jù)。毫不奇怪,RL在游戲方面尤其成功,特別是像國際象棋和圍棋這樣的“ 完美信息 ” 游戲。通過游戲,來自代理和環(huán)境的反饋很快得以實(shí)現(xiàn),使模型能夠快速學(xué)習(xí)。RL的缺點(diǎn)是,如果問題很復(fù)雜,可能需要很長時間才能進(jìn)行訓(xùn)練。

正如IBM的Deep Blue在1997年擊敗了最好的人類國際象棋選手一樣,基于RL算法的AlphaGo在2016年擊敗了最佳的圍棋玩家。目前RL的先驅(qū)者是英國DeepMind的團(tuán)隊(duì)。更多關(guān)于AlphaGo和DeepMind的信息。

在2019年4月,OpenAI Five團(tuán)隊(duì)是第一個擊敗世界冠軍電子競技Dota 2的人工智能團(tuán)隊(duì),這是一個非常復(fù)雜的視頻游戲,OpenAI Five團(tuán)隊(duì)之所以選擇,因?yàn)闆]有RL算法可以贏得它時間。擊敗Dota 2冠軍人類團(tuán)隊(duì)的同一個AI團(tuán)隊(duì)也開發(fā)了一個機(jī)器人手,可以重新定位一個塊。

你可以說強(qiáng)化學(xué)習(xí)是一種特別強(qiáng)大的人工智能形式,我們肯定會看到這些團(tuán)隊(duì)取得更多進(jìn)展,但同樣值得記住方法的局限性。

數(shù)據(jù)科學(xué)家不可不知的10種<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>方法


9 自然語言處理

世界上很大一部分?jǐn)?shù)據(jù)和知識都是某種形式的人類語言。你能想象能在幾秒鐘內(nèi)閱讀和理解成千上萬的書籍,文章和博客嗎?顯然,計(jì)算機(jī)還不能完全理解人類文本,但我們可以訓(xùn)練他們完成某些任務(wù)。例如,我們可以訓(xùn)練手機(jī)自動填寫短信或糾正拼寫錯誤的單詞。我們甚至可以教一臺機(jī)器與人進(jìn)行簡單的對話。

自然語言處理(NLP)本身不是一種機(jī)器學(xué)習(xí)方法,而是一種廣泛使用的技術(shù),用于為機(jī)器學(xué)習(xí)準(zhǔn)備文本。想想各種格式的大量文本文檔(單詞,在線博客,......)。大多數(shù)這些文本文檔將充滿拼寫錯誤,缺少字符和其他需要過濾的單詞。目前,最流行的文本處理包是由斯坦福大學(xué)的研究人員創(chuàng)建的NLTK(自然語言工具包)。

將文本映射到數(shù)字表示的最簡單方法是計(jì)算每個文本文檔中每個單詞的頻率??紤]一個整數(shù)矩陣,其中每行代表一個文本文檔,每列代表一個單詞。字頻率的這種矩陣表示通常稱為術(shù)語頻率矩陣(TFM)。從那里,我們可以通過將矩陣上的每個條目除以每個單詞在整個文檔集中的重要程度的權(quán)重來創(chuàng)建文本文檔的另一種流行矩陣表示。我們將此方法稱為術(shù)語頻率反向文檔頻率(TFIDF),它通常更適用于機(jī)器學(xué)習(xí)任務(wù)。


10 詞嵌入

TFM和TFIDF是文本文檔的數(shù)字表示,它們只考慮頻率和加權(quán)頻率來表示文本文檔。相比之下,Word嵌入可以捕獲文檔中單詞的上下文。對于單詞上下文,嵌入可以量化單詞之間的相似性,這反過來又允許我們對單詞進(jìn)行算術(shù)。

Word2vec是一種基于神經(jīng)網(wǎng)絡(luò)的方法,它將語料庫中的單詞映射成一個數(shù)字向量。然后,我們可以使用這些向量查找同義詞,對單詞執(zhí)行算術(shù)操作,或者表示文本文檔(取文檔中所有單詞向量的平均值)。例如,假設(shè)我們使用足夠大的文本文檔來估計(jì)單詞嵌入。我們還假設(shè)皇后男子漢是語料庫的一部分。就這么說吧向量(字)表示單詞的數(shù)字向量。“字”..估計(jì)向量(“婦女”),我們可以使用向量執(zhí)行算術(shù)操作:

向量(“King”)+向量(“婦女”)  向量(‘man’)~向量(‘皇后’)

數(shù)據(jù)科學(xué)家不可不知的10種<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>機(jī)器學(xué)習(xí)</a>方法

▲用Word(向量)嵌入算術(shù)

單詞表示允許通過計(jì)算兩個單詞的向量表示之間的余弦相似性來找到單詞之間的相似性。余弦相似度測量兩個矢量之間的角度。

我們使用機(jī)器學(xué)習(xí)方法計(jì)算單詞嵌入,但這通常是在頂部應(yīng)用機(jī)器學(xué)習(xí)算法的前提步驟。例如,假設(shè)我們可以訪問數(shù)千名Twitter用戶的推文。還假設(shè)我們知道這些Twitter用戶中哪些人買了房子。為了預(yù)測新Twitter用戶購買房屋的概率,我們可以將Word2Vec與邏輯回歸結(jié)合起來。


總結(jié)

我試圖涵蓋十種最重要的機(jī)器學(xué)習(xí)方法:從最基本的到最前沿的。很好地研究這些方法并充分理解每個方法的基礎(chǔ)知識可以作為進(jìn)一步研究更先進(jìn)的算法和方法的堅(jiān)實(shí)起點(diǎn)。

當(dāng)然,還有很多非常重要的信息需要報(bào)道,包括質(zhì)量指標(biāo),交叉驗(yàn)證,分類方法中的類不平衡以及過度擬合模型等等,僅舉幾例。敬請關(guān)注。

此博客的所有可視化都是使用Watson Studio Desktop完成的。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }