Fanamarihan'ny Data Scientist: Famerenana manokana amin'ny fiteny fanontaniana data
Lazaiko aminao avy amin'ny traikefa manokana izay nahasoa ny toerana sy ny fotoana. Overview sy thesis izany, mba hazava tsara hoe inona sy aiza no ahafahanao mihady bebe kokoa - fa eto aho dia manana traikefa manokana manokana, mety ho hafa tanteraka aminao ny zava-drehetra.
Nahoana no zava-dehibe ny mahafantatra sy afaka mampiasa fiteny manontany? Amin'ny fotony, ny Data Science dia manana dingana lehibe amin'ny asa, ary ny voalohany sy manan-danja indrindra (raha tsy misy izany dia azo antoka fa tsy hisy na inona na inona mandeha!) Matetika, ny angon-drakitra dia mipetraka amin'ny toerana iray amin'ny endrika sasany ary mila "alaina" avy eo.
Ny fiteny fanontaniana dia ahafahanao mamoaka an'io data io! Ary anio dia hilaza aminao momba ireo fiteny fanontaniako izay nahasoa ahy aho ary holazaiko aminao sy hasehoko anao hoe aiza sy ahoana marina - nahoana no ilaina ny mianatra.
Hisy sakana telo lehibe amin'ny karazana fangatahana angona, izay hodinihintsika ato amin'ity lahatsoratra ity:
Ny tenim-panontaniana "manara-penitra" dia ny fahita matetika rehefa miresaka momba ny fiteny manontany, toy ny algebra relational na SQL.
Fanontaniana fiteny ho an'ny grafika fahalalana sy angon-drakitra grafika.
Ny zavatra rehetra voasoratra eto dia traikefa manokana, inona no mahasoa, miaraka amin'ny famaritana ny toe-javatra sy ny "nahoana no nilaina izany" - ny tsirairay dia afaka manandrana ny fomba mety hitranga amin'ny toe-javatra mitovy amin'izany ary manandrana miomana mialoha amin'ny fahatakarana ireo fiteny ireo. alohan'ny tsy maintsy hampiharana (maika) amin'ny tetikasa iray na hahatongavana amin'ny tetikasa izay ilana azy.
Fiteny fanontaniana "Standard".
Ny fiteny fanontanina mahazatra dia amin'ny heviny hoe matetika isika no mieritreritra azy ireo rehefa miresaka fanontaniana.
Algebra fifandraisana
Nahoana no ilaina ny algebra relational ankehitriny? Mba hahazoana fahatakarana tsara ny antony nandrafetana ny fiteny manontany amin'ny fomba iray ary hampiasa azy ireo am-pahibemaso, dia mila mahatakatra ny fototry ny azy ireo ianao.
Inona no atao hoe algebra relational?
Ny famaritana ofisialy dia toy izao manaraka izao: algebra relational dia rafitra mihidy amin'ny fampandehanana ny fifandraisana amin'ny maodely data relational. Raha lazaina amin'ny maha-olombelona azy dia rafitra fiasa amin'ny latabatra izany ka ny vokatra dia latabatra foana.
Jereo ny hetsika fifandraisana rehetra ao izany lahatsoratra avy amin'i Habr - eto no mamaritra ny antony tokony ho fantatrao sy ny toerana misy azy.
Nahoana?
Ny fanombohana ny fahatakarana ny dikan'ny fiteny manontany sy ny asa ao ambadiky ny fitenenana amin'ny fiteny fanontana manokana dia matetika manome fahatakarana lalindalina kokoa ny asa amin'ny fiteny manontany sy ny fomba.
Fampidirana tsara avy amin'i Stanford. Amin'ny ankapobeny, be dia be ny fitaovana momba ny algebra relational sy ny teoria - Coursera, Udacity. Betsaka ihany koa ny fitaovana an-tserasera, anisan'izany ny tsara taranja akademika. Ny torohevitro manokana: mila mahazo tsara ny algebra relational ianao - io no fototry ny fototra.
Ny SQL dia fampiharana algebra relational amin'ny ankapobeny - miaraka amin'ny fampitandremana manan-danja, ny SQL dia fanambarana! Izany hoe, rehefa manoratra fanontaniana amin'ny fiteny algebra relational ianao dia tena milaza ny fomba kajy - fa miaraka amin'ny SQL ianao dia mamaritra izay tianao alaina, ary avy eo ny DBMS dia efa mamokatra (effective) amin'ny fiteny algebra relational (ny azy ireo). ny fitoviana dia fantatra amintsika amin'ny hoe Ny teoréma Codd).
Relational DBMSs: Oracle, Postgres, SQL Server, sns dia mbola saika na aiza na aiza ary misy ny vintana lehibe tsy maintsy hifaneraseranao amin'izy ireo, izay midika fa tsy maintsy mamaky SQL ianao (izay tena azo inoana) na manoratra izany ( tsy mety koa).
Inona no hovakiana sy hianarana
Amin'ireo rohy etsy ambony ireo ihany (momba ny algebra relational), dia misy fitaovana tsy mampino, ohatra, izany.
Raha ny marina, inona ny NoSQL?
"Tokony hanamafisana indray fa ny teny hoe "NoSQL" dia manana fiaviana tongatonga ho azy ary tsy misy famaritana ankapobeny na andrim-panjakana siantifika ao ambadik'izany." mifandraika lahatsoratra amin'ny Habr.
Raha ny marina, tsapan'ny olona fa tsy ilaina ny modely mifandraika amin'ny famahana olana maro, indrindra ho an'ireo izay, ohatra, ny zava-bitany dia manakiana ary misy fanontaniana tsotra miaraka amin'ny fitambarana manjaka - izay tena ilaina ny mikajy haingana ny metrika sy manoratra azy ireo amin'ny database, ary ny ankamaroan'ny endri-javatra dia relational nivadika ho tsy ilaina fotsiny, fa mampidi-doza koa - nahoana no normalize zavatra raha hanimba ny zava-dehibe indrindra ho antsika (ho an'ny asa manokana) - vokatra?
Ary koa, matetika dia ilaina ny schemas flexible fa tsy ny schema matematika raikitra amin'ny modelim-pifandraisana klasika - ary izany dia manamora ny fampivoarana ny fampiharana rehefa tena ilaina ny mametraka ny rafitra ary manomboka miasa haingana, fanodinana ny valiny - na ny schema sy ny karazana angona voatahiry. tsy dia zava-dehibe loatra.
Ohatra, mamorona rafitra manam-pahaizana izahay ary te-hitahiry fampahalalana amin'ny sehatra manokana miaraka amin'ny fampahalalana meta sasany - mety tsy haintsika ny sehatra rehetra ary mitahiry JSON fotsiny ho an'ny rakitra tsirairay - izany dia manome antsika tontolo iray tena miovaova amin'ny fanitarana ny data. modely ary miverimberina haingana - ka amin'ity tranga ity, ny NoSQL dia ho tsara kokoa sy mora vakiana kokoa. Ohatra fampidirana (avy amin'ny iray amin'ireo tetikasako izay nisy ny NoSQL tany amin'ny toerana nilaina azy).
Amin'ny ankapobeny, hitantsika fa mifanaraka amin'ny modely SQL mahazatra ny kaody.
SELECT start_station_name, end_station_name, count(trip_duration_seconds) as size, …..
FROM dataset
WHERE trip_type = ‘return’
GROUPBY start_station_name, end_station_name
Fa ny tena zava-dehibe dia ity code ity dia ampahany amin'ny script sy ny pipeline; Raha ny marina dia mametraka fanontaniana ao amin'ny pipeline Python izahay. Amin'ity toe-javatra ity, ny fiteny fanontaniana dia tonga amintsika avy amin'ny tranomboky toa ny Pandas na pySpark.
Amin'ny ankapobeny, ao amin'ny pySpark dia mahita karazana fiovan'ny angon-drakitra mitovy amin'izany isika amin'ny alàlan'ny fiteny manontany amin'ny toe-tsaina:
Ao amin'ny Python mihitsy amin'ny ankapobeny tsisy olana mitadiava fitaovana hianarana. Betsaka ny fampianarana an-tserasera pandas, pySpark ary cours on kilalaon'afo (ary koa ny tenany DS). Amin'ny ankapobeny, tsara ho an'ny googling ny atiny eto, ary raha tsy maintsy misafidy fonosana iray hifantohana aho dia panda izany, mazava ho azy. Mikasika ny fitambaran'ny fitaovana DS+Python ihany koa betsaka.
Shell ho fiteny manontany
Betsaka ny tetikasa fanodinana angon-drakitra sy famakafakana izay niarahako niasa, raha ny marina, ny script shell izay miantso ny code amin'ny Python, Java, ary ny shell dia mandidy ny tenany. Noho izany, amin'ny ankapobeny, azonao atao ny mihevitra ny pipelines amin'ny bash/zsh/etc ho karazana fangatahana avo lenta (azo atao, mazava ho azy, ny zavatra tadivavarana ao, fa tsy mahazatra amin'ny code DS amin'ny fiteny shell izany), andao omena Ohatra tsotra - Mila nanao sarintany QID momba ny wikidata sy rohy feno amin'ny wikis Rosiana sy anglisy aho, noho izany dia nanoratra fangatahana tsotra avy amin'ny baiko tao amin'ny bash aho ary ho an'ny vokatra dia nanoratra script tsotra amin'ny Python aho, izay nataoko. mitambatra toy izao:
anatiny, ny postprocessor dia milina fanjakana tsotra izay namolavola ny vokatra
Amin'ny fitambarany, fantsona be pitsiny miasa amin'ny fomba mikoriana amin'ny angon-drakitra lehibe (0.5TB), tsy misy loharanon-karena lehibe ary vita amin'ny fantsona tsotra sy fitaovana roa.
Torohevitra manan-danja iray hafa: afaka miasa tsara sy mahomby ao amin'ny terminal ary manoratra bash/zsh/etc.
Aiza no hahasoa azy? Eny, saika na aiza na aiza - indray, BE ny fitaovana hianarana amin'ny Internet. Indrindra indrindra, eto izany lahatsoratra teo aloha.
R scripting
Averina indray, mety hihiaka ny mpamaky - tsara, fiteny fandaharana iray manontolo ity! Ary mazava ho azy fa ho marina izy. Na izany aza, matetika aho no nifanena tamin'ny R tao anatin'ny toe-javatra toy izany, raha ny marina, dia tena mitovy amin'ny fiteny manontany.
R dia tontolo manodidina ny informatika statistika sy fiteny ho an'ny informatika static sy sary (araka ny ny).
Nahoana ny mpahay siansa momba ny data no mila mahafantatra R? Farafaharatsiny, satria misy sosona goavam-be amin'ny olona tsy IT izay mamakafaka ny angona amin'ny R. Nahita izany aho tamin'ireto toerana manaraka ireto:
Sehatra pharmaceutique.
Biolojia.
Sehatra ara-bola.
Ny olona manana fanabeazana matematika tsotra fotsiny izay mifandray amin'ny statistika.
Modely statistika manokana sy maodely fianarana milina (izay matetika tsy hita afa-tsy amin'ny dikan-tenin'ny mpanoratra ho fonosana R).
Nahoana izy io no tena fiteny manontany? Amin'ny endrika izay ahitana azy matetika, dia tena fangatahana hamorona modely, anisan'izany ny famakiana angon-drakitra sy ny fanamboarana ny masontsivana fanontaniana (modely), ary koa ny fijerena angon-drakitra ao anaty fonosana toy ny ggplot2 - endrika fanoratana fanontaniana ihany koa izany. .
Fanontaniana ohatra momba ny fijerena sary
ggplot(data = beav,
aes(x = id, y = temp,
group = activ, color = activ)) +
geom_line() +
geom_point() +
scale_color_manual(values = c("red", "blue"))
Amin'ny ankapobeny, hevitra maro avy amin'ny R no nifindra tany amin'ny fonosana python toy ny pandas, numpy na scipy, toy ny dataframes sy ny data vectorization - ka amin'ny ankapobeny dia maro ny zavatra ao amin'ny R dia toa mahazatra sy mety aminao.
Eto aho dia manana traikefa kely tsy mahazatra, satria matetika aho no tsy maintsy miasa amin'ny grafika fahalalana sy fiteny manontany ny grafika. Noho izany, andeha hojerentsika fohifohy ny fototra, satria ity ampahany ity dia somary hafahafa kokoa.
Ao amin'ny angon-drakitra relational klasika dia manana schema raikitra isika, saingy eto ny schema dia miovaova, ny predicate tsirairay dia tena "tsanganana" ary mihoatra noho izany aza.
Alao sary an-tsaina hoe manao modely olona iray ianao ary te hamaritra ireo zavatra manan-danja, ohatra, andao haka olona manokana, Douglas Adams, ary hampiasa ity famaritana ity ho fototra.
Raha mampiasa angon-drakitra ara-pifandraisana isika dia tsy maintsy mamorona latabatra na latabatra lehibe misy tsanganana marobe, ny ankamaroany dia NULL na feno sanda diso default, ohatra, tsy azo inoana fa maro amintsika no manana fidirana ao amin'ny tranomboky nasionaly Koreana - mazava ho azy fa afaka mametraka azy ireo amin'ny latabatra misaraka isika, saingy amin'ny farany dia ho fanandramana modely amin'ny fizaran-tany lozika mora azo miaraka amin'ny predicates amin'ny fampiasana fifandraisana raikitra.
Alao sary an-tsaina àry fa ny angona rehetra dia voatahiry ho grafika na ho toy ny fitenenana boolean binary sy unary.
Aiza no ahitanao an'izany? Voalohany, miara-miasa amin'ny data wiki, ary miaraka amin'izay angona angona na angona mifandray.
Ireto manaraka ireto ny fiteny fanontaniana lehibe nampiasaiko sy niasako.
Fa raha ny tena izy dia fiteny manontany ho an'ny lojika unary sy binary predicates. Mametraka fepetra fotsiny ianao hoe inona no raikitra amin'ny fomba fiteny Boolean ary inona no tsy (tena tsotra).
Ny fototry ny RDF (Resource Description Framework), izay anaovana fanontaniana SPARQL, dia intelo. object, predicate, subject - ary ny fanontaniana dia mifidy ny triple ilaina araka ny fepetra voafaritra ao amin'ny fanahy: mitadiava X toy ny p_55(X, q_33) dia marina - izay mazava ho azy, p_55 dia karazana fifandraisana amin'ny ID 55, ary q_33 dia zavatra miaraka amin'ny ID 33 (eto sy ny tantara manontolo, averina indray ny tsipiriany rehetra).
Ohatra amin'ny fanolorana angona:
Sary sy ohatra miaraka amin'ireo firenena eto avy eto.
Ohatra Fanontaniana fototra
Raha ny marina, tiantsika ny hahita ny sandan'ny fari-piadidiana ?firenena ho an'ny predicate
member_of, marina fa member_of(?firenena,q458) sy q458 no ID an'ny Vondrona Eoropeana.
Ohatra iray amin'ny fangatahana SPARQL tena izy ao anaty motera python:
Amin'ny ankapobeny, tsy maintsy namaky SPARQL aho fa tsy nanoratra izany - amin'izany toe-javatra izany dia mety ho fahaiza-manao ilaina ny mahatakatra ny fiteny farafaharatsiny amin'ny ambaratonga fototra mba hahatakarana tsara ny fomba fakana ny angona.
Betsaka ny fitaovana hianarana amin'ny Internet: ohatra, eto izany и izany. Matetika aho amin'ny google ny endrika sy ohatra manokana ary ampy izany amin'izao fotoana izao.
Fiteny fanontaniana lojika
Afaka mamaky bebe kokoa momba ny lohahevitra ao amin'ny lahatsoratro ianao eto. Ary eto, hojerentsika fohifohy hoe nahoana ny fiteny lojika no mety tsara amin'ny fanoratana fanontaniana. Raha ny tena izy, RDF dia andiana fanambarana lojika amin'ny endrika p(X) sy h(X,Y), ary ny fangatahana lojika dia manana endrika manaraka:
output(X) :- country(X), member_of(X,“EU”).
Eto isika dia miresaka momba ny famoronana predicate vaovao / 1 (/1 midika hoe unary), raha ny X dia marina fa firenena (X) - izany hoe, X dia firenena ary mpikambana_n'ny(X,"EU ").
Izany hoe, amin'ity tranga ity, na ny angon-drakitra sy ny fitsipika dia aseho amin'ny fomba mitovy, izay ahafahantsika mamolavola olana mora sy tsara.
Taiza ianao no nihaona tamin'ny indostria?: tetikasa lehibe iray manontolo miaraka amin'ny orinasa manoratra fanontaniana amin'ny fiteny toy izany, ary koa amin'ny tetikasa amin'izao fotoana izao ao amin'ny fototry ny rafitra - toa zavatra hafahafa izany, saingy mitranga izany indraindray.