国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Kaggle案例——用python從進(jìn)網(wǎng)站到獲得評(píng)測結(jié)果

Crazy_Coder / 2506人閱讀

摘要:訓(xùn)練集是用來訓(xùn)練你的機(jī)器學(xué)習(xí)模型的。但機(jī)器學(xué)習(xí),你也要教它一些事實(shí),比如長得像圖片的就是狗,長得像圖片的就是貓。好了,這樣我們整體的一個(gè)機(jī)器學(xué)習(xí)的簡單項(xiàng)目就完成,但我們還是要看一下效果。

最近寫了Kaggle的一個(gè)playground項(xiàng)目——預(yù)測科比投籃是否命中https://www.kaggle.com/c/kobe...,主要使用python的pandas和sklearn包。 這里和大家分享一下。

首先就是進(jìn)入Kaggle官網(wǎng)https://www.kaggle.com/,Kaggle是一個(gè)專門數(shù)據(jù)競賽的網(wǎng)站。經(jīng)常會(huì)有一些有獎(jiǎng)的競賽,當(dāng)然入門也可以選101和playground的有趣的例子進(jìn)行練習(xí)。官網(wǎng)給出的經(jīng)典例子就是預(yù)測Titanic乘客的生存概率。

當(dāng)然第一步就是注冊。

注冊后就可以直接選擇自己想?yún)⒓拥母傎惲耍疚亩家灶A(yù)測科比投籃命中為例。注冊之后我們點(diǎn)擊上方的Competions,也就是圖中上方第一個(gè)紅框來進(jìn)入競賽選擇頁面。接著點(diǎn)擊下圖第二個(gè)紅框ALL來顯示所有的競賽。然后我們可以選第三個(gè)紅框,里面有g(shù)etting started(101)和playground。都是難度稍低的競賽很適合練習(xí)。

競賽選擇頁面

其中在gettind started里面的項(xiàng)目應(yīng)該都是有tutorials的,都會(huì)有相關(guān)的數(shù)據(jù)處理和模型選擇的教程。https://www.kaggle.com/c/tita... 想做數(shù)據(jù)處理的也可以先看這個(gè)例子。我們?nèi)砸灶A(yù)測科比投籃為例,從all的playground里找到(https://www.kaggle.com/c/kobe... 。

進(jìn)去之后大概就是這個(gè)樣子的,我們點(diǎn)擊Data,進(jìn)入數(shù)據(jù)頁面,上面data.csv.zip是總的數(shù)據(jù),包括訓(xùn)練集和測試集。下面的sample_submission....是提交結(jié)果的demo。

這里給之前沒接觸過機(jī)器學(xué)習(xí)的同學(xué)講解一下什么是訓(xùn)練集和測試集,了解機(jī)器學(xué)習(xí)的請?zhí)^這三段。訓(xùn)練集是用來訓(xùn)練你的機(jī)器學(xué)習(xí)模型的。就比如我給了你一堆貓和狗的圖片,并且我給每張圖片都標(biāo)記上了這張圖是‘貓’還是‘狗’。而我們的目的是為了解決如果給你很多(比如1億張)新的貓或狗的圖片,而且沒有標(biāo)記到底是貓還是狗,你一定懶得去做(對(duì),我不相信有人能這么有毅力!!!)會(huì)想讓機(jī)器解決。但機(jī)器學(xué)習(xí),你也要教它一些事實(shí),比如長得像圖片A的就是狗,長得像圖片B的就是貓。也就是把圖片和正確的標(biāo)記給機(jī)器,讓機(jī)器能夠根據(jù)你給他的這些數(shù)據(jù)來學(xué)習(xí)到一個(gè)判別方法,而給它的‘圖片和正確的標(biāo)記’就是訓(xùn)練集。

給了訓(xùn)練集之后機(jī)器是學(xué)習(xí)了,但它學(xué)的好不好呢?這就需要用到測試集,測試集也包含圖片和正確的標(biāo)記。這就好比我們學(xué)生時(shí)代的考試,你要去考考機(jī)器,看它學(xué)的怎么樣,從而才知道你訓(xùn)練的好不好。但測試集不能和訓(xùn)練集重復(fù),防止它死記硬背,就像當(dāng)年考數(shù)學(xué),老師會(huì)把題修改一下讓你做一樣。

所以我們一般會(huì)將得到的所有標(biāo)記好的圖片(包含對(duì)應(yīng)正確標(biāo)記)分為兩組大致9比1的樣子,分別是訓(xùn)練集和測試集。來對(duì)機(jī)器進(jìn)行訓(xùn)練和測試。

回到正軌,解壓上面下載的文件,打開csv文件。我們會(huì)看到——

除了表頭,一共有30697行,而且有數(shù)字有字符串,看得頭都大了,怎么辦!

還好我們有電腦,有python,有別人寫好的工具包pandas!

第一步,我們進(jìn)入python,在命令行輸入python

第二步,導(dǎo)入pandas

>>import pandas as pd

如果報(bào)錯(cuò),說明你沒安裝pandas,去安裝吧

第三步,載入csv文件并查看數(shù)據(jù),下面的文件名寫你自己的文件路徑

>>data = pd.read_csv("data/data.csv")

>>print data.info()

打印結(jié)果如下,可以看出顯示了csv文件的各列名稱,數(shù)量,是否全空,類型(這里不是數(shù)字都是object),還有一些統(tǒng)計(jì)信息等等。

其中shot_made_flag就是投進(jìn)與否,也就是結(jié)果/標(biāo)簽/分類。1表示投進(jìn),0表示沒進(jìn)。

第4步,我們可以查看數(shù)值類數(shù)據(jù)的一些分布情況,這里只是部分。

>>print data.describe()

第5步,查看非數(shù)值類數(shù)據(jù)分布

>>print data.describe(include=["O"])

但是這樣我們還是不知道這些離散值有哪幾類,比如shot_type到底一共有哪幾種呢?像這樣。

>>print set(data["shot_type"].tolist())

打印結(jié)果:set(["3PT Field Goal", "2PT Field Goal"])

如果你還想看每類下面的統(tǒng)計(jì)數(shù)字。再像這樣。

>>> print data["shot_type"].value_counts()

2PT Field Goal 24271

3PT Field Goal 6426

Name: shot_type, dtype: int64

總之,pandas的功能超乎你想象。

不過只能看數(shù)據(jù)分布是不夠的,機(jī)器現(xiàn)在還是只能識(shí)別數(shù)字,所以上面的object類型的數(shù)據(jù),我們還是要轉(zhuǎn)換成數(shù)字。這里我們用最簡單的映射辦法來實(shí)現(xiàn),映射按照次數(shù)來實(shí)現(xiàn),比如上面的‘shot_type’,我們按照出現(xiàn)的次數(shù)從0向上排,比如這里2分球我們認(rèn)為是0,3分球認(rèn)為是1。

除了這些問題之外,我們還發(fā)現(xiàn)有些數(shù)據(jù)是沒有用處的,比如team_id、team_name都是湖人,沒什么用,還有就是shot_distant和loc_x、loc_y其實(shí)是有重復(fù)信息的。所以我們進(jìn)行了篩選和處理了一部分,這一步在數(shù)據(jù)處理術(shù)語叫數(shù)據(jù)預(yù)處理。從而得到一個(gè)新的數(shù)據(jù)表pretreated_data(pandas的DataFrame格式)。代碼地址https://github.com/Cauchyzhou... 。

預(yù)處理后的數(shù)據(jù)

接著我們還要拆分?jǐn)?shù)據(jù)到訓(xùn)練集和測試集,注意保存的路徑也要根據(jù)自己的實(shí)際情況來。

PS:這里的測試集沒有結(jié)果/標(biāo)簽,是因?yàn)槲覀兊臏y試是直接將預(yù)測的結(jié)果傳到網(wǎng)站上,網(wǎng)站會(huì)返回一個(gè)預(yù)測結(jié)果與真實(shí)結(jié)果的誤差。

>>notnull = pretreated_data["target"].notnull()

>>isnull = ~ notnull

>>train_set = pretreated_data[notnull]

>>predict_set = pretreated_data[isnull]

>>train_set.to_csv("data/train_set.csv")

>>predict_set.to_csv("data/predict_set.csv")

到這里,數(shù)據(jù)預(yù)處理基本就結(jié)束了。

接著我們就要用訓(xùn)練集,訓(xùn)練了,我們這里使用傳統(tǒng)的機(jī)器學(xué)習(xí)方法,而傳統(tǒng)方法,最好的就是用sklearn這個(gè)工具包,全名scikit-learn。官網(wǎng)地址:http://scikit-learn.org/stable/

這個(gè)包有多粗暴呢,就是粗暴到你可以不了解任何算法細(xì)節(jié),直接調(diào)用就好了(當(dāng)然還是推薦理解一下算法,畢竟沒有最好的算法,只有最合適的算法)

這里我們就用最簡單的決策樹來預(yù)測結(jié)果。

>>from sklearn import tree

>>import pandas as pd

>>data = pd.read_csv("data/train_set.csv")

>>X = data.drop("target",axis=1) #去掉結(jié)果/標(biāo)簽列

>>Y = data["target"] #訓(xùn)練集的結(jié)果

>>clf = tree.DecisionTreeClassifier()

>>clf.fit(X,Y)

經(jīng)過上面幾句話,我們就獲得了訓(xùn)練好的模型clf。接著我們就可以用這個(gè)模型來預(yù)測測試集的結(jié)果了。

>>predict = pd.read_csv("data/predict_set.csv")

>>X_ = predict.drop("target",axis=1)

>>out = clf.predict(X)

這樣就預(yù)測好了,是不是很粗暴!接下來保存結(jié)果。

>>OutDf = pd.DataFrame(index= predict["shot_id"].values,columns=["shot_made_flag"])

>>OutDf["shot_made_flag"] = out

>>OutDf.to_csv("DT_out.csv")

好了,這樣我們整體的一個(gè)機(jī)器學(xué)習(xí)的簡單項(xiàng)目就完成,但我們還是要看一下效果。我們生成的csv文件是這樣式的~第一列是shot_id,第二列是shot_made_flag

我們需要在線提交,這里保存的結(jié)果格式是點(diǎn)擊紅框(這里可能不太一樣,因?yàn)槲以?jīng)提交過,不是第一次提交)

然后我們就會(huì)進(jìn)入到這個(gè)頁面,找到綠色背景的數(shù)字1那里,我們把自己的csv文件拖進(jìn)去,就會(huì)出現(xiàn)2那里的損失得分,越小越好,因?yàn)槲矣玫氖亲詈唵蔚臎Q策樹,只能處理線性問題,顯然這個(gè)問題并不是線性的,所以得分很差。

因?yàn)檫@個(gè)競賽已經(jīng)結(jié)束了,所以不會(huì)有排名,只能進(jìn)到3Leaderboard根據(jù)自己的得分來得出自己的排名。

按照123步查看自己訓(xùn)練的模型結(jié)果

這樣,我們的一個(gè)整體的kaggle競賽的流程就結(jié)束了,沒想到碼博客還是挺累的,而且簡書修改博客竟然會(huì)導(dǎo)致重新上傳圖片。寫了2個(gè)半小時(shí),改了半個(gè)小時(shí)格式。寫的還是比較倉促,希望大家多提意見。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/41882.html

相關(guān)文章

  • (轉(zhuǎn))大數(shù)據(jù)競賽平臺(tái)——Kaggle 入門

    摘要:是玩數(shù)據(jù)機(jī)器學(xué)習(xí)的開發(fā)者們展示功力揚(yáng)名立萬的江湖。上的參賽者將數(shù)據(jù)下載下來,分析數(shù)據(jù),然后運(yùn)用機(jī)器學(xué)習(xí)數(shù)據(jù)挖掘等知識(shí),建立算法模型,解決問題得出結(jié)果,最后將結(jié)果提交,如果提交的結(jié)果符合指標(biāo)要求并且在參賽者中排名第一,將獲得比賽豐厚的獎(jiǎng)金。 看到了一篇非常好的學(xué)習(xí)大數(shù)據(jù)挖掘?qū)W習(xí)的博文,所以特此轉(zhuǎn)載過來,閑暇時(shí)可以用python練練手。Kaggle 是玩數(shù)據(jù)、機(jī)器學(xué)習(xí)的開發(fā)者們展示功力、揚(yáng)...

    UnixAgain 評(píng)論0 收藏0
  • 我是如何在1天內(nèi)構(gòu)建一個(gè)深度學(xué)習(xí)模型并進(jìn)擊Kaggle比賽的

    摘要:是為結(jié)果導(dǎo)向型人群開設(shè)的深度學(xué)習(xí)在線課程。但是最關(guān)鍵的是,我想通過構(gòu)建簡單的深度學(xué)習(xí)解決方案來實(shí)現(xiàn)理論和實(shí)踐的相結(jié)合。我的目標(biāo)是在一天結(jié)束前進(jìn)入排名的前。我的時(shí)間都用于學(xué)習(xí)庫組織數(shù)據(jù)和評(píng)估結(jié)果都是一些與深度學(xué)習(xí)無關(guān)的簡單流程。 Fast.ai是Jeremy Howard為結(jié)果導(dǎo)向型人群開設(shè)的深度學(xué)習(xí)在線課程。我讀過很多關(guān)于機(jī)器學(xué)習(xí)的書,也參加過不少這方面的課程,但我認(rèn)為Fast.ai是迄今為...

    shinezejian 評(píng)論0 收藏0
  • 想入門人工智能? 這些優(yōu)質(zhì)的 AI 資源絕對(duì)不要錯(cuò)過

    摘要:該課程旨在面向有抱負(fù)的工程師,從人工智能的基本概念入門到掌握為人工智能解決方案構(gòu)建深度學(xué)習(xí)模型所需技能。 showImg(https://segmentfault.com/img/bVbkP5z?w=800&h=664); 作者 | Jo Stichbury翻譯 | Mika本文為 CDA 數(shù)據(jù)分析師原創(chuàng)作品,轉(zhuǎn)載需授權(quán) 前言 如今人工智能備受追捧,由于傳統(tǒng)軟件團(tuán)隊(duì)缺乏AI技能,常常會(huì)...

    Barrior 評(píng)論0 收藏0
  • Kaggle冠軍經(jīng)驗(yàn)分享丨如何15個(gè)月沖到排行榜的首位

    摘要:你是如何開始參加比賽的正如之前所說的,我一直在閱讀大量機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方面的書籍和論文,但發(fā)現(xiàn)很難將我學(xué)到的算法應(yīng)用于小型數(shù)據(jù)集。機(jī)器學(xué)習(xí)中,你對(duì)哪個(gè)子領(lǐng)域最感興趣我對(duì)深度學(xué)習(xí)的各種進(jìn)步都很感興趣。 showImg(https://segmentfault.com/img/bVboxKz?w=800&h=600); 作者 Kaggle Team中文翻譯 MikaCDA 數(shù)據(jù)分析師...

    AnthonyHan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<