Risultati Ricerca Intelligenza Artificiale Italia
484 risultati trovati con una ricerca vuota
- Chi lavora nell' Intelligenza Artificiale? Tutto sui professionisti dell' I.A.
Obbiettivo dell'articolo Descrivi le diverse entità che formano il miglior ecosistema di dati Descrivere e distinguere tra i diversi tipi di professionisti dei dati, i loro ruoli e responsabilità nell'ecosistema dei dati introduzione Nel mondo di oggi, indipendentemente dal tuo background professionale, devi aver sicuramente incontrato termini come "Data Science", "Data Engineering", "Business Analyst" e altro ancora che guidano il processo decisionale nel mondo professionale di oggi. Ma proprio come noi, ne sono sicuro, devi essere stato confuso da cosa significano questi termini e se c'è davvero qualche differenza tra loro? A quanto pare, tutti i lavori nel campo dei dati hanno un obiettivo ben definito e in questo articolo ti dirò la differenza tra questi ruoli lavorativi e le competenze richieste per questi ruoli. Sommario Chi sono gli ingegneri dei dati e le loro responsabilità? Quali sono le competenze richieste per diventare un Data Engineer? Chi sono i Data Analyst e le loro responsabilità? Quali sono le competenze richieste per diventare un Data Analyst? Chi sono i Data Scientist e le loro responsabilità? Quali sono le competenze richieste per diventare un Data Scientist? Chi sono gli analisti aziendali e le loro responsabilità? Quali sono le competenze richieste per diventare un Business Analyst? Iniziamo subito a Vedere Chi lavora nell' Intelligenza Artificiale? Chi sono gli ingegneri dei dati e quali sono le loro responsabilità? Queste sono le persone che sviluppano e mantengono l'architettura dei dati, l'infrastruttura dei dati e rendono i dati disponibili per le operazioni e l'analisi aziendali. Questa infrastruttura di dati include database, repository di big data e pipeline di dati per la trasformazione e lo spostamento dei dati tra i sistemi di dati. Il loro obiettivo è fornire dati di qualità disponibili per l'indagine e il processo decisionale basato sui dati. Gli analisti dei dati e gli scienziati dei dati utilizzano i dati forniti dai tecnici dei dati. Collaborano con altri professionisti dei dati per garantire che i dati corrispondano alle loro esigenze. Quando esaminiamo in profondità l'ingegneria dei dati, si tratta di selezionare il giusto: Banche dati Sistema di archiviazione Infrastruttura cloud o piattaforma cloud Quando mettiamo insieme tutte queste cose, il flusso di dati all'interno dell'organizzazione è senza interruzioni. Data Engineers lavora all'interno dell'ecosistema dei dati. Le principali responsabilità di un data engineer sono: Raccolta dei dati di origine : include l'estrazione, l'integrazione, l'organizzazione dei dati e l'acquisizione di dati da più origini. Elaborazione dei dati: include la pulizia, la trasformazione e la preparazione dei dati per renderli preziosi. Include anche la manutenzione dei sistemi distribuiti per l'elaborazione dei dati. Archiviazione dei dati: archiviazione dei dati per affidabilità e facile disponibilità dei dati. Il tecnico dei dati deve assicurarsi di utilizzare archivi di dati adeguati e migliori per l'archiviazione dei dati acquisiti. Devono inoltre garantire la privacy dei dati, la sicurezza, la conformità, il monitoraggio, il backup e il ripristino dei dati. Rendere i dati disponibili agli utenti in modo sicuro: Data Engineer deve assicurarsi che le API, i servizi e i programmi per il recupero dei dati per gli utenti finali. Competenze richieste per diventare un Data Engineer Buona conoscenza dei linguaggi di programmazione Approfondita conoscenza dei database relazionali e non relazionali comodo con la riga di comando Comprende il funzionamento dell'ecosistema Hadoop , in particolare Map-Reduce e YARN Conosce il concetto di data warehousing Conoscenza pratica del lavoro con Apache Spark Ingestione di dati con Apache Kafka Pianificazione dei lavori con Apache Airflow Fondamenti di cloud computing Chi sono i Data Analyst e quali sono le loro responsabilità? Un Data Analyst è un professionista dei dati che trasforma i numeri in un linguaggio semplice, in modo che le organizzazioni possano prendere buone decisioni. Queste sono le persone che rispondono a domande come "L'esperienza di ricerca dell'utente è buona o cattiva sul nostro sito Web?" o "C'è una correlazione tra le vendite?" o "Se alzo i prezzi quali sone le previsioni di abbandono ?". Il ruolo di un analista di dati è quello di ispezionare e pulire i dati per fornire informazioni dettagliate. Il loro compito principale è identificare correlazioni, trovare modelli e applicare metodi statistici per analizzare e estrarre dati. Le loro attività quotidiane includono anche la visualizzazione dei dati per interpretare e presentare i risultati. Competenze richieste per diventare Data Analyst Buona conoscenza dei fogli di calcolo Competente nella scrittura di query e nell'utilizzo di strumenti statistici per creare grafici e dashboard Dovrebbe avere una buona conoscenza del linguaggio di programmazione Dovrebbe essere in grado di convertire i problemi aziendali in problemi di dati Spiccate capacità analitiche e narrativa Buona padronanza nella visualizzazione dei dati Chi sono i Data Scientist e quali sono le loro responsabilità? Un Data Scientist analizza i dati per ottenere informazioni utili e crea modelli predittivi utilizzando tecniche di Machine learning e Deep Learning. Il ruolo di uno scienziato di dati combina informatica, statistica e matematica. Analizzano, elaborano e modellano i dati, quindi interpretano i risultati per creare piani attuabili per aziende e altre organizzazioni. Queste sono le persone che rispondono a domande come "Quanti nuovi follower sui social media potrei ottenere nel prossimo trimestre?" Competenze richieste per diventare un Data Scientist Conoscenza di un linguaggio di programmazione Buona esperienza pratica degli strumenti di visualizzazione dei dati Buona comprensione di statistica, algebra lineare e probabilità Approfondita conoscenza dell'apprendimento automatico Conoscenza di base dei motori di raccomandazione Conoscenza pratica del lavoro con i dati di serie temporali Comprensione di Deep Learning, Computer Vision Buona conoscenza pratica dell'elaborazione del linguaggio naturale Base di distribuzione del modello Forti capacità di comunicazione e capacità di presentazione Chi sono i Business Analyst e quali sono le loro responsabilità? Permettetemi di spiegare questo termine facendo un esempio. Supponiamo che ci sia un'azienda le cui vendite stanno diminuendo e ora per trovare la risposta sul perché le vendite stanno diminuendo e cosa si può fare, due parti sono coinvolte in questo processo. La prima persona è un analista di dati, il ruolo di un analista di dati è lavorare con gli sviluppatori di software all'interno della stessa organizzazione e di connettersi a diversi database dove possono trovare dati relativi alle vendite ecc. Quindi, in sostanza, gli analisti di dati producono informazioni dettagliate e il ruolo dell'analista aziendale è di consumare queste informazioni e prendere decisioni aziendali. Gli analisti aziendali non sono tecnici come analisti di dati, ma hanno competenze trasversali: sono pensatori critici, sono bravi nella comunicazione, comprendono molto bene il business. Quindi, se l'analista di dati dice che nella regione del sud-ovest, le vendite dell'azienda sono in calo e la produzione di clienti è maggiore, forse l'analista aziendale, in base alle sue conoscenze, dirà che nella regione del sud-ovest il livello di reddito delle persone è inferiore, quindi corriamo uno sconto speciale in modo che le vendite aumentino. Business Analyst è più concentrato su competenze trasversali, pensiero critico, risoluzione dei problemi e conoscenza del dominio, mentre l'analista di dati è più concentrato sulle competenze tecniche. le vendite dell'azienda sono in calo e la produzione di clienti è più alta, forse l'analista aziendale, sulla base delle sue conoscenze, dirà che nella regione del sud-ovest il livello di reddito delle persone è inferiore, quindi eseguiamo uno sconto speciale in modo che le vendite aumentino. Competenze necessarie per diventare un Business Analyst Buone capacità analitiche Buone capacità logiche e capacità di leadership Ottima conoscenza di Microsoft Excel Buone capacità di negoziazione Conoscenza Python e R Buona esperienza pratica con Tableau, Power BI o altri strumenti di dashboard Forti capacità di presentazione e comunicazione Note finali In questo articolo, abbiamo appreso le diverse entità che svolgono un ruolo cruciale nell'ecosistema dei dati. In poche parole, Data Engineer converte i dati grezzi in dati utilizzabili. Gli analisti dei dati utilizzano questi dati per generare approfondimenti. I data scientist utilizzano l'analisi dei dati e l'ingegneria dei dati per prevedere il futuro utilizzando i dati del passato. Gli analisti aziendali e gli analisti di business intelligence utilizzano queste informazioni e previsioni per guidare le decisioni aziendali a vantaggio e far crescere le loro attività.
- Python vs R vs SAS i linguaggi di programmazione per Intelligenza Artificiale
Obiettivi Articolo Il dibattito di lunga data di R vs SAS è stato ora affiancato da Python Ciascuno tra R, SAS e Python ha i suoi pro e contro e può essere confrontato su criteri come costo, scenario di lavoro e supporto per i diversi algoritmi di apprendimento automatico Puoi anche scegliere uno qualsiasi dei tre strumenti a seconda della fase della tua carriera in Data Science in cui ti trovi introduzione ai linguaggi di programmazione per Intelligenza Artificiale Adoriamo i confronti! Da Samsung vs Apple vs HTC negli smartphone; iOS vs Android vs Windows nel sistema operativo mobile per confrontare i candidati per le prossime elezioni o selezionare il capitano per la squadra di coppa del mondo, confronti e discussioni ci arricchiscono nella nostra vita. Se ami le discussioni, tutto ciò che devi fare è far apparire una domanda pertinente nel mezzo di una community appassionata e poi guardarla esplodere! La bellezza del processo è che tutti nella stanza se ne vanno come persone più esperte. Questa è stata anche una delle domande più frequenti che ci viene fatta dai nostri lettori. Non è già stato detto molto su questo argomento? Probabilmente sì! Ma sentiamo ancora il bisogno di una discussione per i seguenti motivi: Il settore della scienza dei dati è molto dinamico. Qualsiasi confronto fatto 2 anni fa potrebbe non essere più rilevante. Tradizionalmente Python è stato escluso dal confronto. Pensiamo che ora sia più di una degna considerazione. Quindi, senza ulteriori indugi, che il combattimento abbia inizio! Python vs R vs SAS : Ecco una breve descrizione dei 3 ecosistemi: SAS : SAS è stato il leader indiscusso del mercato nello spazio dell'analisi commerciale. Il software offre una vasta gamma di funzioni statistiche, ha una buona GUI (Guida aziendale e minatore) per consentire alle persone di apprendere rapidamente e fornisce un supporto tecnico eccezionale. Tuttavia, finisce per essere l'opzione più costosa e non è sempre arricchita con le ultime funzioni statistiche. R : R è la controparte Open source di SAS, che è stata tradizionalmente utilizzata nel mondo accademico e nella ricerca. A causa della sua natura open source, le ultime tecniche vengono rilasciate rapidamente. C'è molta documentazione disponibile su Internet ed è un'opzione molto conveniente. Python : con l'origine come linguaggio di scripting open source, l'utilizzo di Python è cresciuto nel tempo. Oggi offre librerie (numpy, scipy e matplotlib) e funzioni per quasi tutte le operazioni statistiche / costruzione di modelli che potresti voler eseguire. Dall'introduzione dei panda, è diventato molto forte nelle operazioni sui dati strutturati. Python vs R vs SAS : Metriche per il confronto Confronteremo questi linguaggi sulle seguenti metriche: Disponibilità / Costo Facilità di apprendimento Capacità di gestione dei dati Capacità grafiche Avanzamenti nello strumento Supporto per l'apprendimento profondo Assistenza clienti e Community Li stiamo confrontando dal punto di vista di un analista. Quindi, se stai cercando l'acquisto di uno strumento per la tua azienda, potresti non ottenere una risposta completa qui. Le informazioni seguenti saranno comunque utili. Per ogni metrica abbiamo assegnato un punteggio a ciascun linguaggio (1 – Basso; 5 – Alto). Il peso per questi parametri varierà a seconda del punto della carriera in cui ti trovi e delle tue ambizioni. Linguaggi di programmazione per Intelligenza Artificiale Disponibilità/costo SAS è un software commerciale. È costoso e ancora irraggiungibile per la maggior parte dei professionisti (a titolo individuale). Tuttavia, detiene la quota di mercato più alta nelle organizzazioni private. Quindi, fino a quando ea meno che tu non faccia parte di un'organizzazione che ha investito in SAS, potrebbe essere difficile accederci. Tuttavia, SAS ha introdotto un'edizione universitaria ad accesso gratuito ma con alcune limitazioni. Puoi anche usare i taccuini Jupyter lì dentro! R & Python, invece, sono completamente gratuiti. I voti per Disponibilità/costo : SAS – 3 R – 5 Python – 5 Linguaggi di programmazione per Intelligenza Artificiale Facilità di apprendimento SAS è facile da imparare e fornisce un'opzione facile ( PROC SQL ) per le persone che già conoscono SQL . Anche in caso contrario, ha una buona interfaccia GUI stabile nel suo repository. In termini di risorse, ci sono tutorial disponibili sui siti web di varie università e SAS ha una documentazione completa. Ci sono certificazioni da istituti di formazione SAS, ma anche in questo caso hanno un costo. R ha la curva di apprendimento più ripida tra le 3 lingue elencate qui. Richiede che tu impari e comprenda la programmazione. R è un linguaggio di programmazione di basso livello e quindi procedure semplici possono richiedere codici più lunghi. Python è noto per la sua semplicità nel mondo della programmazione. Questo vale anche per l'analisi dei dati. Sebbene al momento non ci siano interfacce GUI diffuse, spero che i notebook Python diventino sempre più mainstream. Forniscono fantastiche funzionalità per la documentazione e la condivisione. I voti per Facilità di apprendimento : SAS – 4.5 R – 2.5 Python – 3.5 Linguaggi di programmazione per Intelligenza Artificiale Capacità di trattamento dei dati Questo era un vantaggio per SAS fino a qualche tempo fa. R calcola ogni cosa in memoria (RAM) e quindi i calcoli sono stati limitati dalla quantità di RAM su macchine a 32 bit. Questo non è più il caso. Tutti e tre i linguaggi hanno buone capacità di gestione dei dati e opzioni per i calcoli paralleli. Questo credo non sia più una grande differenziazione. Hanno anche implementato integrazioni Hadoop e Spark, supportando anche Cloudera e Apache Pig. I voti per Capacità di trattamento dei dati : SAS – 4 R – 4 Python – 4 Linguaggi di programmazione per Intelligenza Artificiale Capacità grafiche SAS ha capacità grafiche funzionali decenti. Tuttavia, è solo funzionale. Qualsiasi personalizzazione sui grafici è difficile e richiede la comprensione delle complessità del pacchetto SAS Graph. R ha capacità grafiche altamente avanzate insieme a Python. Ci sono numerosi pacchetti che forniscono capacità grafiche avanzate. Con l'introduzione di Plotly in entrambi i linguaggi e con Python che ha Seaborn, creare grafici personalizzati non è mai stato così facile . I voti per Capacità grafiche : SAS – 3 R – 4.5 Python – 4.5 Linguaggi di programmazione per Intelligenza Artificiale Avanzamenti nello strumento Tutti e 3 gli ecosistemi hanno tutte le funzioni di base e più necessarie disponibili. Questa funzione è importante solo se stai lavorando su tecnologie e algoritmi più recenti. A causa della loro natura aperta, R & Python ottengono rapidamente le ultime funzionalità. SAS, d'altra parte, aggiorna le sue capacità nei roll-out delle nuove versioni. Poiché R è stato ampiamente utilizzato negli accademici in passato, lo sviluppo di nuove tecniche è rapido. Detto questo, SAS rilascia gli aggiornamenti in ambiente controllato, quindi sono ben testati. R & Python d'altra parte, hanno un contributo aperto e ci sono possibilità di errori negli ultimi sviluppi. I voti per Avanzamenti nello strumento : SAS – 4 R – 4.5 Python – 4.5 Linguaggi di programmazione per Intelligenza Artificiale Assistenza clienti e community R e Python hanno le più grandi comunità online ma nessun servizio di assistenza clienti. Quindi, se hai problemi, sei da solo. Riceverai comunque molto aiuto. SAS d'altra parte ha un servizio clienti dedicato insieme alla comunità. Quindi, se hai problemi di installazione o altre sfide tecniche, puoi contattarli. I voti per Assistenza clienti e community : SAS – 4 R – 3.5 Python – 3.5 Linguaggi di programmazione per Intelligenza Artificiale Supporto per l'apprendimento profondo Il deep learning in SAS è ancora nella sua fase iniziale e c'è molto su cui lavorare. D'altra parte, Python ha avuto grandi progressi nel campo e ha numerosi pacchetti come Tensorflow e Keras. R ha recentemente aggiunto il supporto per quei pacchetti, insieme ad alcuni anche di base. I pacchetti kerasR e keras in R fungono da interfaccia per il pacchetto Python originale, Keras. I voti per Supporto per l'apprendimento profondo : SAS – 2 Python – 4.5 R – 3 Altri fattori: Di seguito sono riportati alcuni altri punti degni di nota: Python è ampiamente utilizzato nello sviluppo web. Quindi, se sei in un business online, l'utilizzo di Python per lo sviluppo e l'analisi web può fornire sinergie SAS aveva un grande vantaggio nell'implementazione dell'infrastruttura end-to-end (Visual Analytics, Data warehouse, Data quality, reporting e analytics), che è stato mitigato dall'integrazione/supporto di R su piattaforme come SAP HANA e Tableau. È ancora molto lontano da un'integrazione perfetta come SAS, ma il viaggio è iniziato. Conclusione Vediamo il mercato piegarsi leggermente verso Python nello scenario odierno. Sarà prematuro scommettere su ciò che prevarrà, data la natura dinamica dell'industria. A seconda delle circostanze (fase di carriera, dati finanziari, ecc.) puoi aggiungere i tuoi pesi e trovare ciò che potrebbe essere adatto a te. Ecco alcuni scenari specifici: Se sei un principiante (già laureato) che entra nel settore dell'analisi , consiglierei di imparare SAS come prima lingua. È facile da imparare e detiene la più alta quota di mercato del lavoro. Se sei una persona che ha già trascorso del tempo nel settore, dovresti provare a diversificare le tue competenze imparando un nuovo strumento. Per esperti e professionisti del settore, le persone dovrebbero conoscerne almeno 2. Ciò aggiungerebbe molta flessibilità per il futuro e aprirebbe nuove opportunità. Se sei in una start-up / freelance, R / Python è più utile. Strategicamente, le configurazioni aziendali che richiedono più assistenza pratica e formazione scelgono SAS come opzione. Ricercatori e statistici scelgono R come alternativa perché aiuta nei calcoli pesanti. Come si suol dire, R aveva lo scopo di portare a termine il lavoro e non di alleggerire il tuo computer. Python è stata la scelta più ovvia per le startup di oggi grazie alla sua natura leggera e alla comunità in crescita. È anche la scelta migliore per il deep learning. Ecco la classifica finale dei Linguaggi di programmazione per Intelligenza Artificiale : Queste sono le nostre opinioni su questo confronto. Ora tocca a te condividere le tue opinioni attraverso i commenti qui sotto.
- L'Intelligenza Artificiale Spiegata Semplice
L'intelligenza artificiale spiegata semplice con esempi reali di Machine Learning, Reti Neurali e Deep Learning in azione. Ci sono molti ottimi articoli sull'Intelligenza Artificiale (AI) e sui suoi vantaggi per le imprese e la società. Tuttavia, molti di questi articoli sono troppo tecnici per il lettore medio. Adoro leggere articoli e libri sull'intelligenza artificiale, ma a volte penso tra me e me: " Accidenti, vorrei che l'autore lo avesse spiegato in modo più semplice". ' Cercheremo di spiegare l'Intelligenza Artificiale e le relative tecnologie in termini semplici, usando esempi di vita reale, come se stessi parlando con qualcuno a una festa . I tuoi colleghi oi tuoi amici (cari) possono tollerare le tue infinite e complesse divagazioni, ma ti garantisco che le persone alle feste sono molto meno indulgenti. Dopo aver letto questo, sarai in grado di parlare dell'IA a una festa e intrattenere i tuoi compagni ospiti. Cos'è l'Intelligenza Artificiale spiegata semplice? L'intelligenza artificiale (AI) implica l'uso dei computer per fare cose che tradizionalmente richiedono l'intelligenza umana. Ciò significa creare algoritmi per classificare, analizzare e trarre previsioni dai dati. Coinvolge anche recitazione sui dati, apprendimento da nuovi dati, e miglioramento nel tempo. Proprio come un piccolo bambino umano che cresce in un adulto umano (a volte) più intelligente. E come gli esseri umani, l'IA non è perfetta. Ancora. La differenza tra AI e programmazione regolare? I programmi regolari definiscono tutti i possibili scenari e operano solo all'interno di quegli scenari definiti. L'intelligenza artificiale "addestra" un programma per un'attività specifica e gli consente di esplorare e migliorare da solo. Una buona intelligenza artificiale "capisce" cosa fare quando incontra situazioni non familiari. Microsoft Word non può migliorare da solo, ma il software di riconoscimento facciale può migliorare nel riconoscere i volti più a lungo dura. Per applicare l'IA, hai bisogno di dati. Un sacco. Gli algoritmi di intelligenza artificiale vengono addestrati utilizzando set di dati di grandi dimensioni in modo che possano identificare modelli, fare previsioni e consigliare azioni, proprio come farebbe un essere umano, solo più velocemente e meglio. Interagiamo con l'IA ogni giorno nella nostra vita professionale e personale: Automazione delle attività : le attività di back-office ripetitive come il lavoro d'ufficio, la fatturazione e il reporting gestionale possono essere automatizzate per risparmiare tempo e migliorare la precisione. Il lavoro in fabbrica e in magazzino può anche essere automatizzato utilizzando robot basati sull'intelligenza artificiale. Assistenza clienti : ricordi la chat di testo online che hai avuto con l'assistenza clienti della tua banca? Potrebbe essere stato un chatbot invece di un vero essere umano. Social media : Facebook utilizza l'intelligenza artificiale per riconoscere i volti. Quando carichi le foto su Facebook, mette un riquadro intorno ai volti nella foto e suggerisce i nomi degli amici da taggare. Auto a guida autonoma : le telecamere e i computer di bordo identificano oggetti e persone sulla strada, seguono i segnali stradali e guidano l'auto. I primi modelli sono già più sicuri dei conducenti umani. Tuttavia, anche la migliore IA di oggi non può competere con il cervello umano per alcuni aspetti. Mentre alcune IA sono progettate per imitare il cervello umano, oggi l'IA è efficace solo in una gamma relativamente ristretta di compiti. L'intelligenza artificiale può applicare un'enorme potenza di calcolo a un insieme ristretto di dati e metodi . Il cervello, d'altra parte, applica una potenza di calcolo media a un insieme molto più ampio di dati e metodi . In altre parole, possiamo applicare il nostro cervello a quasi tutto, mentre l'IA è specializzata in determinate cose. L'intelligenza artificiale generalmente rientra in due grandi categorie: AI ristretta: a volte indicata come "IA debole", questo tipo di intelligenza artificiale opera in un contesto limitato ed è una simulazione dell'intelligenza umana. L'IA ristretta è spesso focalizzata sull'esecuzione di un singolo compito estremamente bene e sebbene queste macchine possano sembrare intelligenti, operano sotto molti più vincoli e limitazioni persino dell'intelligenza umana più elementare. Intelligenza artificiale generale (AGI) : l'AGI, a volte indicata come "IA forte", è il tipo di intelligenza artificiale che vediamo nei film, come i robot di Westworld o Data di Star Trek: The Next Generation . L'AGI è una macchina con intelligenza generale e, proprio come un essere umano, può applicare quell'intelligenza per risolvere qualsiasi problema. Intelligenza artificiale debole spiegata semplice L'IA ristretta è tutt'intorno a noi ed è facilmente la realizzazione di maggior successo dell'intelligenza artificiale fino ad oggi. Concentrandosi sull'esecuzione di compiti specifici, Narrow AI ha sperimentato numerose scoperte nell'ultimo decennio che hanno avuto "significativi benefici per la società e hanno contribuito alla vitalità economica della nazione", secondo "Preparazione per il futuro dell'intelligenza artificiale", un Rapporto 2016 pubblicato dall'amministrazione Obama. Alcuni esempi di IA stretta includono : ricerca Google Software di riconoscimento delle immagini Siri, Alexa e altri assistenti personali Auto a guida autonoma Watson di IBM Apprendimento automatico e apprendimento profondo Gran parte della Narrow AI è alimentata da innovazioni nell'apprendimento automatico e nel deep learning . Comprendere la differenza tra intelligenza artificiale, machine learning e deep learning può creare confusione. Il venture capitalist Frank Chen fornisce una buona panoramica su come distinguerli, osservando: In poche parole, l'apprendimento automatico alimenta i dati di un computer e utilizza tecniche statistiche per aiutarlo a "imparare" come migliorare progressivamente un'attività, senza essere stato programmato specificamente per tale attività, eliminando la necessità di milioni di righe di codice scritto. L'apprendimento automatico consiste sia nell'apprendimento supervisionato (utilizzando set di dati etichettati) sia nell'apprendimento non supervisionato (utilizzando set di dati senza etichetta). Il deep learning è un tipo di machine learning che esegue gli input attraverso un'architettura di rete neurale di ispirazione biologica. Le reti neurali contengono una serie di livelli nascosti attraverso i quali i dati vengono elaborati, consentendo alla macchina di andare "in profondità" nel suo apprendimento, creando connessioni e ponderando l'input per ottenere i migliori risultati. Intelligenza Artificiale Generale spiegata semplice La creazione di una macchina con intelligenza a livello umano che può essere applicata a qualsiasi compito è il Santo Graal per molti ricercatori di intelligenza artificiale, ma la ricerca dell'AGI è stata irta di difficoltà. La ricerca di un "algoritmo universale per l'apprendimento e l'azione in qualsiasi ambiente" (Russel e Norvig 27) non è nuova, ma il tempo non ha alleviato la difficoltà di creare essenzialmente una macchina con un set completo di abilità cognitive. AGI è stata a lungo la musa ispiratrice della fantascienza distopica, in cui robot super intelligenti invadono l'umanità, ma gli esperti concordano sul fatto che non è qualcosa di cui dobbiamo preoccuparci tanto presto . Applicazioni reali dell'Intelligenza Artificiale: Machine Learning, Deep Learning, Reti Neurali, Algoritmi Evolutivi Diamo un'occhiata brevemente all'apprendimento automatico, al deep learning, alle reti neurali, agli algoritmi evolutivi e ad alcune applicazioni del mondo reale. Tieni presente che molte applicazioni del mondo reale utilizzano più di una tecnologia di intelligenza artificiale. Apprendimento automatico spiegato semplice Gli algoritmi di apprendimento automatico identificano i modelli e/o prevedono i risultati. Molte organizzazioni utilizzano enormi set di dati relativi a clienti, operazioni aziendali o dati finanziari. Gli analisti umani hanno tempo e capacità intellettuali limitati per elaborare e analizzare questi dati. Pertanto, l'apprendimento automatico può essere utilizzato per: Prevedi i risultati dati i dati di input, come l'analisi di regressione, ma su scale molto più ampie e con più variabili. Un esempio perfetto è il trading algoritmico, in cui il modello di trading deve analizzare grandi quantità di dati di input e raccomandare operazioni redditizie. Poiché il modello continua a lavorare con i dati del mondo reale, può persino "migliorare" se stesso e adattare le sue strategie di trading alle condizioni di mercato. Trova approfondimenti o schemi in grandi set di dati che a volte gli occhi umani sfuggono. Ad esempio, un'azienda può studiare come si stanno evolvendo i modelli di acquisto dei suoi clienti e utilizzare i risultati per modificare le proprie linee di prodotti. Fai molto di più in meno tempo. Addio grugnito. Molte metodologie di intelligenza artificiale, tra cui reti neurali, deep learning e algoritmi evolutivi, sono correlate all'apprendimento automatico. Machine Learning in azione: Netflix Quello che vedi su Netflix è su misura per te e per le persone con preferenze simili a te. Netflix afferma di " investire molto nell'apprendimento automatico per migliorare continuamente la nostra esperienza per i membri e ottimizzare il servizio Netflix end-to-end. " Netflix applica l'apprendimento automatico alla cronologia delle visualizzazioni per personalizzare i consigli sui programmi TV di film che vedi. Netflix analizza anche ciò che tu e le persone con preferenze simili avete guardato in passato e genera automaticamente miniature e illustrazioni personalizzate per i titoli dei film, per invogliarvi a fare clic su un titolo che altrimenti ignorereste. Tutto per assicurarti di rimanere incollato allo schermo mentre il tuo cervello si scioglie. Reti neurali e Deep learning spiegati semplicemente Una rete neurale tenta di replicare l'approccio del cervello umano all'analisi dei dati. Possono identificare, classificare e analizzare dati diversi, gestire molte variabili e trovare schemi troppo complessi per essere visti dal cervello umano. Il deep learning è un sottoinsieme del machine learning. Quando applicato a una rete neurale, consente alla rete di apprendere senza la supervisione umana da dati non strutturati (dati che non sono classificati o etichettati). Questo è perfetto per analizzare i "big data" raccolti dalle organizzazioni. Questi set di big data includono diversi formati di dati come testo, immagini, video e audio. Le reti neurali sono spesso combinate con l'apprendimento automatico, l'apprendimento profondo e la visione artificiale (addestrando i computer per trarre significato dalle immagini). Ecco perché le persone parlano di "reti neurali profonde", che è fondamentalmente una rete neurale con più di 2 strati. Più strati = più potenza analitica. Le reti neurali profonde possono essere addestrate per identificare e classificare oggetti. Un uso interessante è il riconoscimento facciale: identificare volti unici in foto e video. Anche le reti neurali apprendono nel tempo. Ad esempio, migliorano nella classificazione degli oggetti e nell'identificazione dei volti man mano che ricevono più dati. Reti neurali e deep learning in azione: il riconoscimento facciale in Cina La Cina sta facendo molto con il riconoscimento facciale. Il che ha senso, perché ci sono telecamere ovunque in Cina. Molte telecamere significano molti dati da utilizzare per le reti neurali profonde. Nell'interesse del tempo, ecco tre esempi. All'università… Un'università della Cina orientale ha implementato un sistema di presenze basato sull'intelligenza artificiale , con telecamere che osservano costantemente gli studenti in classe. Naturalmente, scansiona i volti per verificare che lo studente si presenti effettivamente in classe. Ancora più importante, analizza anche le espressioni facciali in tempo reale e può giudicare se gli studenti stanno prestando attenzione. Apparentemente può riconoscere le persone che dormono o giocano sui loro telefoni. Scommetto che stai pensando 'Sono contento che non avessero questa tecnologia nella mia università...' Per i pagamenti... Mentre le persone parlano ancora di pagamenti mobili tramite WeChat Pay e Alipay, queste aziende stanno già passando alla fase successiva: i pagamenti basati sul volto . Perché preoccuparsi del telefono quando puoi pagare guardando in una fotocamera? Il sistema di riconoscimento facciale Dragonfly di Alipay si è esteso a oltre 300 città in Cina. WeChat Pay ha anche un sistema simile. Le aziende, dalle panetterie ai supermercati, hanno adottato questi sistemi per velocizzare i pagamenti dei clienti. Dopo la scansione di un volto, il denaro viene detratto dall'account Alipay o WeChat Pay del cliente. Le aziende beneficiano di una spesa inferiore per il personale di cassa. I pagamenti basati sul volto avvantaggiano anche i cittadini meno esperti di tecnologia come gli anziani. Inoltre, solo il 60% degli 1,4 miliardi di abitanti della Cina è connesso a Internet e solo il 40% della popolazione paga con gli smartphone. In futuro, possiamo persino aspettarci che questi cittadini non collegati utilizzino pagamenti basati sul volto se il loro volto può essere collegato a un conto bancario. Per combattere il crimine... Le aziende di intelligenza artificiale in Cina stanno utilizzando il riconoscimento facciale per aiutare le forze dell'ordine a rintracciare i sospetti. La tecnologia di riconoscimento facciale di Cloudwalk, sostenuta dallo stato, ha aiutato la polizia a effettuare oltre 10.000 arresti ed è utilizzata in 29 province cinesi. Effettua oltre 1 miliardo di confronti facciali ogni giorno e ha accumulato oltre 100 miliardi di punti dati. SenseTime ha recentemente fatto notizia per aver utilizzato il riconoscimento facciale per identificare un sospetto in una folla di 50.000 spettatori in Cina. Watrix , un'altra azienda di computer vision, ha apparentemente deciso che il riconoscimento facciale è una vecchia notizia. La loro tecnologia aiuta la polizia a rintracciare le persone dal modo in cui camminano e si muovono, anche se la loro faccia è nascosta. Inoltre, non puoi ingannare la loro tecnologia aggiungendo un zoppicare o alterando la tua andatura. Algoritmi evolutivi Un sottoinsieme dell'apprendimento automatico, gli algoritmi evolutivi si auto-migliorano nel tempo. Creano una popolazione di algoritmi e preservano quelli di maggior successo nella previsione dei risultati. Applicando il principio della "sopravvivenza del più adatto", i migliori algoritmi vengono mantenuti in vita e i perdenti vengono scartati. Sezioni di codice degli algoritmi vincenti vengono utilizzate per creare una nuova popolazione di algoritmi e il processo di selezione si ripete. Gli algoritmi evolutivi sono adatti per attività di ottimizzazione in cui sono presenti molte variabili e un ambiente dinamico. Fondamentalmente: trovare un modo per ottenere il miglior risultato possibile. Algoritmi evolutivi in azione: selezione e trading di titoli Algoritmi evolutivi possono essere integrati nei modelli di rete neurale per selezionare le azioni e identificare le operazioni. Le regole di trading sono impostate come parametri e l'algoritmo lavora per massimizzare il profitto di trading. Piccole modifiche vengono introdotte nel modello nel tempo e le modifiche che hanno il maggiore impatto desiderabile vengono mantenute per la generazione successiva. Il modello migliora con il tempo. Questi modelli di trading sono popolari tra i trader quantitativi istituzionali. Gli individui possono anche accedere a questi modelli tramite pacchetti software sul mercato. Speriamo di essere riusciti a spiegarti in poche parole cosa è l'Intelligenza artificiale.
- Gestione strategica per Data Scientist
La scienza dei dati copre un'ampia gamma di argomenti tecnici. La maggior parte della vostra attenzione dovrebbe essere sulle aree tecniche ; tuttavia, l'apprendimento della gestione strategica e lo sviluppo del pensiero strategico ti forniranno un vantaggio competitivo. Le capacità di dati e scienza dei dati sono risorse strategiche per molte aziende e la capacità di ottenere il massimo dai dati richiede la conoscenza della strategia. Molte aziende (a parte le big tech e altre società avanzate) stanno ancora lavorando per capire la propria strategia per i dati e le capacità di scienza dei dati. La strategia di apprendimento ti aiuterà a connettere data science, machine learning o altre applicazioni di intelligenza artificiale alla strategia di un'azienda. Ti consente di trasformare le informazioni dettagliate dai dati in iniziative strategiche attuabili per un'azienda o un prodotto particolare. Un altro vantaggio dell'acquisizione di conoscenze sulla strategia è la capacità di scegliere i problemi aziendali da risolvere. Ti aiuta a riflettere sui compromessi e a dare priorità ai problemi. “L'essenza della strategia è scegliere cosa non fare. Senza compromessi, non ci sarebbe bisogno di scelta e quindi nessuna necessità di strategia". — Michael E. Porter Portare la capacità di guidare la direzione strategica dell'azienda oltre a preziose capacità di scienza dei dati ti renderà senza dubbio una risorsa preziosa per l'azienda. Nota rapida: la gestione strategica è un argomento vasto e ha numerosi concetti e strutture. In questo articolo, tocchiamo alcuni dei concetti e delle strutture che abbiamo imparato durante i nostri percorsi. Sentiti libero di lasciare qualsiasi feedback nei commenti su qualsiasi cosa dovrei approfondire in un altro post. Cosa è la Gestione strategica per Data Scientist ? La strategia è un insieme di attività che aiutano un'azienda a ottenere un vantaggio competitivo sostenibile. La strategia richiede compromessi e si tratta di creare una posizione preziosa e differenziata. Le attività che un'azienda intraprende per creare valore dovrebbero rafforzarsi a vicenda e formare un circuito di feedback. Strategia per Datascientist di alto livello Il primo passo per definire e guidare la strategia consiste nell'esaminare la missione, la visione, i valori e lo scopo dell'azienda. Missione: la dichiarazione di intenti di un'azienda è ciò che l'azienda spera di ottenere. Definisce l'attività in cui si trova un'azienda e idealmente dovrebbe definire la sua strategia. Visione: la dichiarazione della visione è dove l'azienda spera di essere in futuro. È un'affermazione ambiziosa. Valori: i valori di un'azienda sono le convinzioni fondamentali dell'azienda. Aiuta a definire la cultura dell'azienda. Scopo: la dichiarazione di scopo è la ragione di esistenza dell'azienda. Diversi livelli di strategia Ci sono anche diversi livelli di strategia. Di seguito, descriverò brevemente i diversi livelli: Strategia a livello analitico: la strategia aziendale è al livello più alto. La strategia a questo livello sta essenzialmente cercando di rispondere alla domanda "dove dovremmo competere?" L'attenzione a questo livello è a livello aziendale ed è correlata all'ingresso nei mercati, all'integrazione con altre società, alla diversificazione, ecc. Strategia a livello aziendale: il livello successivo di strategia si verifica a livello aziendale e riguarda come creare un vantaggio competitivo per l'azienda. È qui che si verifica la competizione e la domanda che viene posta è "come dovremmo competere?" Strategia a livello funzionale: Infine, la strategia a livello funzionale riguarda le attività che un'azienda intraprende per migliorare l'efficienza e raggiungere l'obiettivo. Analisi esterna per Data Scientist L'analisi esterna consiste nell'analisi del settore e dei fattori macro-ambientali. Una buona comprensione della struttura competitiva, delle dinamiche del settore e dei fattori macroeconomici ti consentirà di determinare le opportunità e prepararti alle minacce. Economia e Data Scientist La conoscenza di base dell'economia aiuta a comprendere le relazioni tra diverse variabili strategiche come la disponibilità a pagare dei clienti, i prezzi e i costi. Comprendere l'economia aiuta con varie decisioni importanti come i mercati a cui rivolgersi, i modi per ottenere un vantaggio competitivo e l'organizzazione dell'azienda, solo per citarne alcuni. Sebbene non si tratti di un'analisi approfondita dell'economia, è utile conoscere alcuni fondamenti come l'elasticità dei prezzi, i costi fissi rispetto ai costi marginali, l'offerta rispetto alla domanda, ecc. Le 5 forze di Porter Il quadro di Michael E. Porter per le forze competitive del settore è utile per analizzare la redditività, le opportunità e le minacce a livello di settore. Minaccia di nuovi concorrenti: i nuovi concorrenti entrano naturalmente in mercati redditizi, limitando il potenziale di profitto del settore. Basse barriere all'ingresso possono portare a vari problemi come la mancanza di economie di scala, bassi costi di trasferimento, bassa fidelizzazione dei clienti. Potere contrattuale degli acquirenti: un elevato potere contrattuale degli acquirenti potrebbe portare alla domanda di prezzi più bassi, prodotti di qualità superiore o servizi migliori. Poteri di contrattazione dei fornitori: un elevato potere contrattuale dei fornitori può limitare i profitti del settore a causa di elevati costi di trasferimento, maggiore concentrazione dei fornitori e capacità dei fornitori di aumentare i prezzi o limitare la qualità. Minaccia di prodotti e servizi sostitutivi: i prodotti sostitutivi consentono ai clienti di cambiare facilmente i prodotti. Avere molti sostituti per un prodotto di un settore limiterà la redditività del settore poiché ci sarebbero bassi costi di cambio. Rivalità tra la concorrenza esistente: un'elevata rivalità tra i concorrenti può portare a guerre dei prezzi, bassi tassi di crescita del settore e bassi costi di conversione. E' un ottimo quadro per capire cosa sta succedendo nel settore. Dopo aver identificato opportunità o minacce, puoi personalizzare le soluzioni di data science per affrontarle. Puoi saperne di più sulle 5 forze di Porter qui . Ora analizziamo l'analisi interna. Analisi interna per Data Scientist L'analisi interna consiste nell'esaminare il modello di business dell'azienda, le competenze chiave, le risorse preziose e la catena del valore. Ci sono anche altri framework, a cui aggiungerò collegamenti nella sezione "Risorse aggiuntive". Modello di business e competenze chiave Il modello di business di un'azienda è il modo in cui l'azienda guadagna. Comprendere il modello di business, la proposta di valore e le competenze chiave dell'azienda per cui lavori ti aiuterà ad affrontare meglio i problemi nelle aree che contribuiscono direttamente alle entrate. Esistono così tanti tipi diversi di modelli di business ed è davvero interessante conoscerli. Oltre ad avere una profonda conoscenza del modello di business, è necessario conoscere le competenze chiave dell'azienda (cosa l'azienda sa fare meglio). La competenza principale di un'azienda è la combinazione delle risorse e delle capacità dell'azienda. Visione basata sulle risorse La vista basata sulle risorse è tratta dall'articolo HBR, "Competiting on Resources", che afferma le cinque caratteristiche delle risorse strategicamente preziose. Difficile da copiare Si deprezza lentamente Il valore è controllato dall'azienda Non facilmente sostituibile Meglio dei concorrenti Questo quadro è bene tenere a mente durante la valutazione delle risorse dell'azienda rispetto al mercato. Catena del valore L'ultimo argomento relativo all'analisi interna che esploreremo è la catena del valore di un'azienda. La catena del valore dell'azienda è costituita da fasi/attività coinvolte nella creazione di un prodotto/servizio. La catena del valore comprende attività primarie e attività secondarie. L'analisi di ciascuna attività aiuta a identificare le opportunità per ridurre i costi o differenziarsi dalla concorrenza. In qualità di data scientist, conoscere i diversi aspetti della catena del valore di un'azienda aiuterà a identificare le aree da ottimizzare e migliorare. Quando si genera l'attuale strategia dell'azienda, vengono valutati sia i fattori esterni che quelli interni. Avere una solida comprensione di ciò che sta accadendo esternamente e internamente ti consentirà di acquisire competenze e conoscenze di dominio per analisi più mirate. Quando entri nel campo della scienza dei dati, la conoscenza aziendale è qualcosa che dovresti imparare sul lavoro. Analizzare il settore e l'azienda ti aiuterà ad acquisire quella conoscenza in modo strutturato. Infine, dovresti anche considerare i compromessi nel prendere una decisione particolare prima di formulare una raccomandazione. In qualità di data scientist nel settore finanziario, ho notato che avere una buona comprensione di ciò che sta accadendo ed essere in grado di consigliare passaggi attuabili sulla base di informazioni approfondite, aiuta anche ad acquisire credibilità con gli stakeholder aziendali. Anche se questo articolo non è onnicomprensivo di quadri e concetti strategici, è un ottimo modo per iniziare a pensare in modo più strategico. Buon lavoro colleghi Data scientist, condividete l'articolo :)
- Introduzione a Scikit Learn con esempio pratico in Python
Se sei un programmatore Python o stai cercando una libreria robusta che puoi usare per portare l'apprendimento automatico in un sistema di produzione, allora una libreria che vorrai considerare seriamente è scikit-learn. In questo post avrai una panoramica della libreria scikit-learn e utili riferimenti su dove puoi saperne di più. Dove nasce Scikit-Learn ? Scikit-learn è stato inizialmente sviluppato da David Cournapeau come progetto di Google Summer of Code nel 2007. Successivamente Matthieu Brucher si è unito al progetto e ha iniziato a usarlo come parte del suo lavoro di tesi. Nel 2010 è stata coinvolta INRIA e la prima versione pubblica (v0.1 beta) è stata pubblicata a fine gennaio 2010. Il progetto ha ora più di 30 contributori attivi e ha ricevuto sponsorizzazioni da INRIA , Google, Tinyclues e Python Software Foundation . Cos'è scikit-learn? Scikit-learn è una libreria che fornisce una gamma di algoritmi di apprendimento supervisionati e non supervisionati tramite un'interfaccia python. È concesso in licenza con una licenza BSD semplificata permissiva ed è distribuito sotto molte distribuzioni Linux, incoraggiando l'uso accademico e commerciale. La libreria è basata su SciPy (Scientific Python) che deve essere installata prima di poter usare scikit-learn. Questa librerie si appoggia anche su: NumPy : pacchetto di matrice n-dimensionale di base SciPy : Libreria fondamentale per il calcolo scientifico Matplotlib : grafica 2D/3D completa IPython : Console interattiva migliorata Sympy : matematica simbolica Pandas : Strutture e analisi dei dati Estensioni o moduli per SciPy sono convenzionalmente denominati SciKits . In quanto tale, il modulo fornisce algoritmi di apprendimento ed è denominato scikit-learn. La visione per la libreria è un livello di robustezza e supporto richiesto per l'uso nei sistemi di produzione. Ciò significa una profonda attenzione a questioni quali facilità d'uso, qualità del codice, collaborazione, documentazione e prestazioni. Sebbene l'interfaccia sia Python, le librerie C fanno leva per prestazioni come numpy per operazioni di array e matrici, LAPACK , LibSVM e l'uso attento di cython. Quali sono le caratteristiche di scikit-learn? La libreria è focalizzata sulla modellazione dei dati. Non si concentra sul caricamento, la manipolazione e il riepilogo dei dati. Per queste funzionalità, fare riferimento a NumPy e Pandas. Alcuni gruppi popolari di modelli forniti da scikit-learn includono: Clustering : per raggruppare dati senza etichetta come KMeans. Cross Validation : per stimare la performance di modelli supervisionati su dati invisibili. Set di dati : per testare set di dati e per generare set di dati con proprietà specifiche per l'analisi del comportamento del modello. Riduzione dimensionale : per ridurre il numero di attributi nei dati per il riepilogo, la visualizzazione e la selezione di funzionalità come l'analisi dei componenti principali. Metodi di insieme : per combinare le previsioni di più modelli supervisionati. Estrazione delle caratteristiche : per definire gli attributi in immagini e dati di testo. Selezione delle funzioni : per identificare attributi significativi da cui creare modelli supervisionati. Regolazione dei parametri : per ottenere il massimo dai modelli supervisionati. Apprendimento multidimensionale: per riassumere e rappresentare dati multidimensionali complessi. Modelli supervisionati : una vasta gamma non limitata a modelli lineari generalizzati, analisi discriminate, baye ingenue, metodi pigri, reti neurali, macchine vettoriali di supporto e alberi decisionali. Esempio: Classificazione e alberi di regressione Vogliamo farti un esempio per mostrarti quanto sia facile usare la libreria. In questo esempio, utilizziamo l'algoritmo dell'albero decisionale Classification and Regression Trees (CART) per modellare il set di dati dei fiori Iris. Questo set di dati viene fornito come set di dati di esempio con la libreria e viene caricato. Il classificatore si adatta ai dati e quindi vengono effettuate previsioni sui dati di addestramento. Infine, viene stampata l'accuratezza della classificazione e una matrice di confusione . # Semplice esempio di Decision Tree Classifier from sklearn import datasets from sklearn import metrics from sklearn.tree import DecisionTreeClassifier # Carichiamo il dataset iris dataset = datasets.load_iris() # creiamo e alleniamo il modello model = DecisionTreeClassifier() model.fit(dataset.data, dataset.target) print(model) # Facciamo le nostre previsioni expected = dataset.target predicted = model.predict(dataset.data) # Riassumiamo le performance del modello print(metrics.classification_report(expected, predicted)) print(metrics.confusion_matrix(expected, predicted)) #Ti consigliamo di provarlo è molto divertente L'esecuzione di questo esempio produce l'output seguente, che mostra i dettagli del modello addestrato, l'abilità del modello in base ad alcune metriche comuni e una matrice di confusione. DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None, max_features=None, max_leaf_nodes=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=False, random_state=None, splitter='best') precision recall f1-score support 0 1.00 1.00 1.00 50 1 1.00 1.00 1.00 50 2 1.00 1.00 1.00 50 avg / total 1.00 1.00 1.00 150 [[50 0 0] [ 0 50 0] [ 0 0 50]] Chi usa scikit-learn? La pagina delle testimonianze di scikit-learn elenca Inria, Mendeley, wise.io, Evernote, Telecom ParisTech e AWeber come utenti della libreria. Se questa è una piccola indicazione delle aziende che hanno presentato informazioni sul loro utilizzo, è molto probabile che ci siano decine o centinaia di organizzazioni più grandi che utilizzano la libreria. Ha una buona copertura di test e versioni gestite ed è adatto sia per prototipi che per progetti di produzione. Risorse utili per scikit-learn Se sei interessato a saperne di più, controlla la homepage di Scikit-Learn che include documentazione e risorse correlate. Puoi ottenere il codice dal repository github e le versioni sono storicamente disponibili sul progetto Sourceforge . Documentazione Ti consiglio di iniziare con il tutorial di avvio rapido e di sfogliare la guida per l'utente e la galleria di esempi per gli algoritmi che ti interessano. In definitiva, scikit-learn è una libreria e il riferimento API sarà la migliore documentazione per portare a termine le cose. Tutorial di installazione-> http://scikit-learn.org/stable/tutorial/basic/tutorial.html Guida per l'utente-> http://scikit-learn.org/stable/user_guide.html Riferimento API-> http://scikit-learn.org/stable/modules/classes.html Galleria di esempi-> http://scikit-learn.org/stable/auto_examples/index.html Condividi o Commenta l'Articolo per sostenerci
- Come Generare dataset con python e scikit-learn
I dataset di test sono piccoli set di dati inventati che consentono di testare un algoritmo di apprendimento automatico. I dati dei set di dati di test hanno proprietà ben definite, come linearità o non linearità, che consentono di esplorare il comportamento dell'algoritmo specifico. La libreria Python scikit-learn fornisce una suite di funzioni per la generazione di campioni da problemi di test configurabili per la regressione e la classificazione. In questo tutorial scoprirai problemi di test e come usarli in Python con scikit-learn. Dopo aver completato questo tutorial, saprai: Come generare problemi di test di previsione di classificazione multi-classe. Come generare problemi di test di previsione della classificazione binaria. Come generare problemi di test di predizione di regressione lineare. Prerequisiti : Se non sai cosa è il Machine Learning, clicca qui Se non sai come scaricare e gestire le librerie, clicca qui Se non sai cosa sia un Dataset, clicca qui Se non sai perchè utilizziamo python, clicca qui Non hai un ambiente di sviluppo ? clicca qui Generare dataset con python Un problema durante lo sviluppo e l'implementazione di algoritmi di apprendimento automatico è come sapere se li hai implementati correttamente. I set di dati di test sono piccoli problemi inventati che consentono di testare ed eseguire il debug degli algoritmi. Sono anche utili per comprendere meglio il comportamento degli algoritmi in risposta alle modifiche degli iperparametri. Di seguito sono riportate alcune proprietà dei set di dati di test: Possono essere generati rapidamente e facilmente. Contengono risultati "conosciuti" o "compresi" per il confronto con le previsioni. Sono stocastici, consentendo variazioni casuali sullo stesso problema ogni volta che vengono generati. Sono piccoli e facilmente visualizzabili in due dimensioni. Possono essere ridimensionati banalmente. Consiglio di utilizzare i set di dati di test quando si inizia con un nuovo algoritmo di apprendimento automatico o quando si sviluppa un nuovo cablaggio di test. scikit-learn è una libreria Python per l'apprendimento automatico che fornisce funzioni per generare una suite di problemi di test. In questo tutorial, esamineremo alcuni esempi di generazione di problemi di test per algoritmi di classificazione e regressione. Generare dataset di classificazione La classificazione è il problema dell'assegnazione di etichette alle osservazioni. In questa sezione esamineremo tre problemi di classificazione: blob, lune e cerchi. Generare dataset di classificazione La funzione make_blobs() può essere utilizzata per generare blob di punti con una distribuzione gaussiana. Puoi controllare quanti BLOB generare e il numero di campioni da generare, oltre a una miriade di altre proprietà. Il problema è adatto per problemi di classificazione lineare data la natura linearmente separabile dei blob. L'esempio seguente genera un set di dati 2D di campioni con tre BLOB come problema di previsione della classificazione multi-classe. Ogni osservazione ha due input e 0, 1 o 2 valori di classe. # Genera un dataset per la classificazione 2d X, y = make_blobs(n_samples=100, centers=3, n_features=2) L'esempio completo è elencato di seguito. from sklearn.datasets import make_blobs from matplotlib import pyplot from pandas import DataFrame # Genera un dataset per la classificazione 2d X, y = make_blobs(n_samples=100, centers=3, n_features=2) # Creiamo uno scatter plot per il valore della classe df = DataFrame(dict(x=X[:,0], y=X[:,1], label=y)) colors = {0:'red', 1:'blue', 2:'green'} fig, ax = pyplot.subplots() grouped = df.groupby('label') for key, group in grouped: group.plot(ax=ax, kind='scatter', x='x', y='y', label=key, color=colors[key]) pyplot.show() L'esecuzione dell'esempio genera gli input e gli output per il problema e quindi crea un pratico grafico 2D che mostra i punti per le diverse classi utilizzando colori diversi. Nota, il tuo set di dati specifico e la trama risultante varieranno data la natura stocastica del generatore di dati. Questa è una funzionalità, non un bug. Useremo questa stessa struttura di esempio per i seguenti esempi. Generare dataset di classificazione ( lune ) La funzione make_moons() è per la classificazione binaria e genererà uno schema di turbolenza o due lune. Puoi controllare quanto sono rumorose le forme della luna e il numero di campioni da generare. Questo problema di test è adatto per algoritmi in grado di apprendere limiti di classe non lineari. L'esempio seguente genera un set di dati lunare con rumore moderato. # Genera un dataset per la classificazione 2d X, y = make_moons(n_samples=100, noise=0.1) L'esempio completo è elencato di seguito. from sklearn.datasets import make_moons from matplotlib import pyplot from pandas import DataFrame # Genera un dataset per la classificazione 2d X, y = make_moons(n_samples=100, noise=0.1) # Creiamo uno scatter plot per il valore della classe df = DataFrame(dict(x=X[:,0], y=X[:,1], label=y)) colors = {0:'red', 1:'blue'} fig, ax = pyplot.subplots() grouped = df.groupby('label') for key, group in grouped: group.plot(ax=ax, kind='scatter', x='x', y='y', label=key, color=colors[key]) pyplot.show() L'esecuzione dell'esempio genera e traccia il set di dati per la revisione, colorando ancora i campioni in base alla classe assegnata. Generare dataset di classificazione ( cerchi ) La funzione make_circles() genera un problema di classificazione binaria con set di dati che rientrano in cerchi concentrici. Ancora una volta, come con il problema del test delle lune, puoi controllare la quantità di rumore nelle forme. Questo problema di test è adatto per algoritmi in grado di apprendere varietà non lineari complesse. L'esempio seguente genera un set di dati circles con un po' di rumore. # Genera un dataset per la classificazione 2d X, y = make_circles(n_samples=100, noise=0.05) L'esempio completo è elencato di seguito. from sklearn.datasets import make_circles from matplotlib import pyplot from pandas import DataFrame # Genera un dataset per la classificazione 2d X, y = make_circles(n_samples=100, noise=0.05) # Creiamo uno scatter plotordinato per il valore della classe df = DataFrame(dict(x=X[:,0], y=X[:,1], label=y)) colors = {0:'red', 1:'blue'} fig, ax = pyplot.subplots() grouped = df.groupby('label') for key, group in grouped: group.plot(ax=ax, kind='scatter', x='x', y='y', label=key, color=colors[key]) pyplot.show() L'esecuzione dell'esempio genera e traccia il set di dati per la revisione. Generare dataset di regressione La regressione è il problema di prevedere una quantità data un'osservazione. La funzione make_regression() creerà un set di dati con una relazione lineare tra input e output. Puoi configurare il numero di campioni, il numero di funzioni di input, il livello di rumore e molto altro. Questo set di dati è adatto per algoritmi in grado di apprendere una funzione di regressione lineare. L'esempio seguente genererà 100 esempi con una funzione di input e una funzione di output con un rumore modesto. # Generiamo un Dataset per la regressione ( regression dataset ) X, y = make_regression(n_samples=100, n_features=1, noise=0.1) L'esempio completo è elencato di seguito. from sklearn.datasets import make_regression from matplotlib import pyplot # Generiamo un Dataset per la regressione ( regression dataset ) X, y = make_regression(n_samples=100, n_features=1, noise=0.1) # Creiamo il dataset del nostro set di dati pyplot.scatter(X,y) pyplot.show() L'esecuzione dell'esempio genererà i dati e traccia la relazione X e y, che, dato che è lineare, è piuttosto noiosa. Estensioni Questa sezione elenca alcune idee per estendere il tutorial che potresti voler esplorare. Confronta algoritmi . Seleziona un problema di test e confronta una suite di algoritmi sul problema e segnala le prestazioni. Problemi aggiuntivi . La libreria fornisce una suite di problemi di test aggiuntivi; scrivi un esempio di codice per ciascuno per dimostrare come funzionano. Se esplori una di queste estensioni, ci piacerebbe saperlo. Magari faccelo sapere nei commenti. Ulteriori letture Questa sezione fornisce ulteriori risorse sull'argomento se stai cercando di approfondire. Feature Engineering e Feature Selection per Principianti e non Come preparare i dati per il Machine Learning Come Analizzare Un Dataset in Solo 5 Passaggi Cosa è un Dataset e a cosa serve Dove trovare i migliori Dataset per esercitarsi Manipolazione Dati con Python e Pandas Cosa hai imparato ? In questo tutorial, hai scoperto problemi di test e come usarli in Python con scikit-learn. Nello specifico hai imparato: Come generare dataset di test di previsione di classificazione multi-classe. Come generare dataset di test di previsione della classificazione binaria. Come generare dataset di test di predizione di regressione lineare. Hai domande? Fai pure le tue domande nei commenti qui sotto e faremo del nostro meglio per rispondere.
- Manipolazione Dati con Python e Pandas
Introduzione Python sta rapidamente diventando il linguaggio preferito nella scienza dei dati e per buone ragioni. Tra le sue librerie di calcolo scientifico, abbiamo trovato Pandas come la più utile per le operazioni di manipolazioni sui dati. Pandas, insieme a Scikit-learn, fornisce quasi l'intero stack necessario a un data scientist. Questo articolo si concentra su 10 modi per la manipolazione dei dati in Python. Abbiamo anche condiviso alcuni suggerimenti e trucchi che ti permetteranno di lavorare più velocemente . Per aiutarti a capire meglio, abbiamo preso un set di dati da esempio per eseguire queste operazioni e manipolazioni. Per ogni metodo, dei 10 troverai il codice python e sotto una finestra interattiva per provare il codice. Iniziamo Inizieremo importando il modulo Pandas e caricando il set di dati nell'ambiente Python come Pandas Dataframe: #importiamo le librerie necessarie import pandas as pd import numpy as np data = pd.read_csv("file dati prestiti.csv", index_col="Loan_ID") #incolla nell'editor qui sotto #sotto la riga di commento print(data) Manipolare Dataset con Python : Filtrare i dataset con pandas Cosa fare se si desidera filtrare i valori di una colonna in base alle condizioni di un altro insieme di colonne di un Pandas Dataframe? Ad esempio, vogliamo un elenco di tutte le donne che non sono laureate e che hanno ottenuto un prestito. L'indicizzazione booleana può aiutare qui. È possibile utilizzare il seguente codice: query = data.loc[(data["Gender"]=="Female") & (data["Education"]=="Not Graduate") & (data["Loan_Status"]=="Y"), ["Gender","Education","Loan_Status"]] print(query) Leggi di più sull'indicizzazione booleana nei panda qui: Selezione e indicizzazione dei panda Manipolare Dataset con Python : APPLY la funzione di pandas È una delle funzioni Pandas comunemente utilizzate per manipolare un dataframe panda e creare nuove variabili. La funzione Pandas Apply restituisce un valore dopo aver passato ogni riga/colonna di un frame di dati con qualche funzione. La funzione può essere predefinita o definita dall'utente. Ad esempio, qui può essere utilizzato per trovare i valori #mancanti in ogni riga e colonna. #Crea una nuova funzione: def num_missing(x): return sum(x.isnull()) #Applicazione per colonna: print("Valori mancanti per colonna:") print(data.apply(num_missing, axis=0)) #asse=0 definisce quella funzione deve essere applicata su ciascuna colonna #Applicazione per riga: print("\nValori mancanti per riga:") print (data.apply(num_missing, axis=1).head()) #asse=1 definisce quella funzione da applicare su ogni riga Manipolare Dataset con Python : Immissione di valori mancanti usando Panda 'fillna()' lo fa in una volta sola. Viene utilizzato per aggiornare i valori mancanti con la media/modalità/mediana complessiva della colonna. Assumiamo le colonne 'Sesso', 'Coniugato' e 'Self_Employed' con le rispettive modalità. #Per prima cosa importiamo la funzione scipy per determinare la modalità from scipy.stats import mode print(mode(data['Gender'])) Ciò restituisce sia la modalità che il conteggio. Ricorda che la modalità può essere un array in quanto possono esserci più valori con alta frequenza. Prenderemo il primo di default usando sempre: mode(data['Gender']).mode[0] Ora possiamo riempire i valori mancanti nei dati Pandas Dataframe e verificare usando la tecnica n. 2. #Importa i valori: data['Gender'].fillna(mode(data['Gender']).mode[0], inplace=True) data['Married'].fillna(mode(data['Married']).mode[0], inplace=True) data['Self_Employed'].fillna(mode(data['Self_Employed']).mode[0], inplace=True) #Ora controlla di nuovo i valori #mancanti per confermare: print(data.apply(num_missing, axis=0)) Pertanto, viene confermato che i valori mancanti nel dataframe di Pandas vengono imputati. Si noti che questa è la forma più primitiva di imputazione. Altre tecniche sofisticate includono la modellazione dei valori mancanti, utilizzando medie raggruppate (media/modalità/mediana). Tratteremo quella parte nei prossimi articoli. Maggiori informazioni sull'imputazione dei valori mancanti nel dataframe Pandas qui: Riferimento Pandas (fillna) Manipolare Dataset con Python : Tabella pivot in Pandas I panda possono essere utilizzati per creare tabelle pivot in stile MS Excel. Ad esempio, in questo caso, una colonna chiave è "LoanAmount" che ha valori mancanti. Possiamo attribuirlo utilizzando la quantità media di ciascun gruppo "Sesso", "Coniugato" e "Self_Employed". Il "LoanAmount" medio di ciascun gruppo nel dataframe Pandas può essere determinato come: #Determina tabella pivot impute_grps = data.pivot_table(values=["LoanAmount"], index=["Gender","Married","Self_Employed"], aggfunc=np.mean) print(impute_grps) Maggiori informazioni sulla tabella pivot Pandas qui: Riferimento Pandas (tabella pivot) Manipolare Dataset con Python : Indicizzazione multipla in Pandas Dataframe Se noti l'output del passaggio n. 3, ha una strana proprietà. Ogni indice Pandas è composto da una combinazione di 3 valori. Questo è chiamato Multi-indicizzazione. Aiuta a eseguire operazioni molto velocemente. Continuando l'esempio dal n. 3, abbiamo i valori per ogni gruppo ma non sono stati imputati. Questo può essere fatto usando le varie tecniche apprese dai panda fino ad ora. #itera solo le righe con ImportoLoanAmount mancante for i,row in data.loc[data['LoanAmount'].isnull(),:].iterrows(): ind = tuple([row['Gender'],row['Married'],row['Self_Employed']]) data.loc[i,'LoanAmount'] = impute_grps.loc[ind].values[0] #Ora controlla di nuovo i #valori mancanti per confermare: print(data.apply( num_mancante, asse=0)) Nota: Il multi-indice richiede la tupla per definire gruppi di indici nell'istruzione panda loc. Questa è una tupla usata in funzione. Il suffisso .values[0] è richiesto perché, per impostazione predefinita, viene restituito un elemento series che ha un indice non corrispondente a quello del dataframe pandas. In questo caso, un'assegnazione diretta dà un errore. Manipolare Dataset con Python : Tabella incrociata con Pandas Questa funzione viene utilizzata per ottenere una "sensazione" (visualizzazione) iniziale dei dati. Qui, possiamo convalidare alcune ipotesi di base. Ad esempio, in questo caso, si prevede che "Credit_History" influisca in modo significativo sullo stato del prestito. Questo può essere testato utilizzando la tabella incrociata come mostrato di seguito: print(pd.crosstab(data["Credit_History"],data["Loan_Status"],margins=True)) Questi sono numeri assoluti. Ma le percentuali possono essere più intuitive nel fare alcune rapide intuizioni. Possiamo farlo usando la funzione di applicazione di Pandas: def percConvert(ser): return ser/float(ser[-1]) pd.crosstab(data["Credit_History"],data["Loan_Status"],margins=True).apply(percConvert, axis=1) Ora, è evidente che le persone con una storia creditizia hanno possibilità molto più elevate di ottenere un prestito poiché l'80% delle persone con una storia di credito ha ottenuto un prestito rispetto al solo 9% senza storia di credito. Ma non è questo. Racconta una storia interessante. Dal momento che so che avere una storia creditizia è estremamente importante, cosa succede se prevedo che lo stato del prestito sarà Y per quelli con storia creditizia e N altrimenti. Sorprendentemente, avremo ragione 82+378=460 volte su 614, che è un enorme 75%! Non ti biasimerò se ti stai chiedendo perché diavolo abbiamo bisogno di modelli statistici. Ma fidati di me, aumentare la precisione anche dello 0,001% oltre questo segno è un compito impegnativo. Nota: il 75% è sul train. Il set di test sarà leggermente diverso ma vicino. Inoltre, spero che questo dia un'idea del perché anche un aumento dello 0,05% della precisione può comportare un salto di 500 gradi nella classifica di Kaggle. Manipolare Dataset con Python : Unire DataFrame con Pandas L'unione dei dataframe di Panda diventa essenziale quando abbiamo informazioni provenienti da diverse fonti da raccogliere. Si consideri un caso ipotetico in cui le tariffe immobiliari medie (INR per mq) sono disponibili per diversi tipi di proprietà. Definiamo un dataframe Pandas come: prop_rates = pd.DataFrame([1000, 5000, 12000], index=['Rural','Semiurban','Urban'],columns=['rates']) print(prop_rates) Ora possiamo unire queste informazioni con il dataframe Pandas originale come: data_merged = data.merge(right=prop_rates, how='inner',left_on='Property_Area',right_index=True, sort=False) print(data_merged.pivot_table(values='Credit_History',index=['Property_Area','rates'], aggfunc=len)) La tabella pivot convalida l'operazione di unione riuscita. Si noti che l'argomento "valori" è irrilevante qui perché stiamo semplicemente contando i valori. Leggi di più: Riferimento Pandas (unisci) Manipolare Dataset con Python : Ordinamento dei DataFrame di Pandas I panda consentono un facile ordinamento basato su più colonne. Questo può essere fatto come: data_sorted = data.sort_values(['ApplicantIncome','CoapplicantIncome'], ascending=False) print(data_sorted[['ApplicantIncome','CoapplicantIncome']].head(10)) Nota: la funzione "ordina" di Panda è ora deprecata. Dovremmo invece usare "sort_values". Altro: Riferimento Pandas (sort_values) Manipolare Dataset con Python : Funzione di taglio per il binning A volte i valori numerici hanno più senso se raggruppati insieme. Ad esempio, se stiamo cercando di modellare il traffico (#auto su strada) con l'ora del giorno (minuti). Il minuto esatto di un'ora potrebbe non essere rilevante per la previsione del traffico rispetto al periodo effettivo della giornata come "Mattino", "Pomeriggio", "Sera", "Notte", "Late Night". Modellare il traffico in questo modo sarà più intuitivo ed eviterà l'overfitting. Qui definiamo una semplice funzione che può essere riutilizzata per il binning di qualsiasi variabile abbastanza facilmente. #Binning: def binning(col, cut_points, labels=None): #Definisci valori min e max: minval = col.min() maxval = col.max() #crea una lista aggiungendo min e max a cut_points break_points = [minval ] + cut_points + [maxval] #se non vengono fornite etichette, usa le etichette predefinite 0 ... (n-1) if not labels: labels = range(len(cut_points)+1) #Binning usando la funzione di taglio di panda colBin = pd.cut(col,bins=break_points,labels=labels,include_lowest=True) return colBin #Binning age: cut_points = [90,140,190] labels = ["low","medium","high","very high"] data["LoanAmount_Bin"] = binning(data["LoanAmount"], cut_points, labels) print (pd.value_counts(data["LoanAmount_Bin"], sort=False)) Per saperne di più sulla funzione di taglio Pandas qui: Riferimento Pandas (taglio) Manipolare Dataset con Python : Codifica dei dati categorici utilizzando Pandas Spesso troviamo un caso in cui dobbiamo modificare le categorie di una variabile nominale. Ciò può essere dovuto a vari motivi: Alcuni algoritmi (come la regressione logistica) richiedono che tutti gli input siano numerici. Quindi le variabili nominali sono per lo più codificate come 0, 1….(n-1) A volte una categoria può essere rappresentata in 2 modi. Ad esempio, la temperatura potrebbe essere registrata come “Alta”, “Media”, “Bassa”, “H”, “bassa”. Qui, sia "Alto" che "H" si riferiscono alla stessa categoria. Allo stesso modo, in "Basso" e "basso" c'è solo una differenza di maiuscolo. Ma Python li leggerebbe come livelli diversi. Alcune categorie potrebbero avere frequenze molto basse ed è generalmente una buona idea combinarle. Qui ho definito una funzione generica che accetta input come dizionario e codifica i valori usando la funzione "sostituisci" in Pandas. #Definisci una funzione generica usando Pandas sostituisci la funzione def coding(col, codeDict): colCoded = pd.Series(col, copy=True) for key, value in codeDict.items(): colCoded.replace(key, value, inplace=True) return colCoded # LoanStatus come Y=1, N=0: print 'Prima:' print pd.value_counts(data["Loan_Status"]) data["Loan_Status_Coded"] = coding(data["Loan_Status"], {'N':0,'Y':1}) print ('\nDopo la codifica:' ) print (pd.value_counts(data["Loan_Status_Coded"])) Maggiori informazioni sulla funzione di sostituzione di Panda qui: Riferimento Panda (sostituire) Note finali In questo articolo, abbiamo trattato varie funzioni di Pandas che possono semplificarci la vita mentre eseguiamo l'esplorazione dei dati e l'ingegneria delle funzionalità. Inoltre, abbiamo definito alcune funzioni generiche che possono essere riutilizzate per raggiungere obiettivi simili su diversi dataset. Grazie per la lettura condividi l'articolo
- Cosa sono le reti neurali convoluzionali CNN? Introduzione alle reti neurali convoluzionali
Nei precedenti articoli abbiamo parlato molto di deep learning, reti neurali e tipi di esse, ma oggi in questo articolo impareremo a conoscere le reti ANN un tipo di rete neurale della famiglia del deep learning. Prerequisiti : Se non sai cosa è il Machine Learning, clicca qui Se non sai cosa è il Deep Learning, clicca qui Se non conosci le principali applicazioni Deep Learning, clicca qui Se non sai come scaricare e gestire le librerie, clicca qui Se non sai cosa sia un Dataset, clicca qui Cos'è una rete neurale? Una rete neurale è una serie di algoritmi che tenta di riconoscere le relazioni sottostanti in un insieme di dati attraverso un processo che imita il modo in cui opera il cervello umano . le reti neurali si riferiscono a sistemi di neuroni . la rete neurale è anche un insieme di neuroni organizzati . Queste reti neurali hanno molti strati tra gli strati di input e output che e gli strati tra di loro sono nascosti. Cos'è un neurone? Un neurone è una funzione matematica ogni neurone riceve un input ed elabora l'informazione particolare e restituisce l'output. dove x1,x2,x3 sono input e w1,w2,w3 sono i loro pesi e li ranghiamo in un neurone e y è l'output dato dal neurone. Che cos'è una rete neurale convoluzionale (CNN)? Le reti neurali convoluzionali (CNN o ConvNet) sono un tipo di rete neurale artificiale utilizzata per analizzare le immagini visive . Le mappe delle funzionalità vengono generate utilizzando un'architettura a peso condiviso di kernel di convoluzione o filtri che scorrono lungo le funzionalità di input e forniscono risposte equivarianti di traduzione . Le reti neurali convoluzionali si distinguono dalle altre reti neurali per le loro prestazioni superiori con input di segnali di immagini , voce o audio . Hanno tre tipi principali di layer, che sono: Convolutional Layer , Pooling Layer e Fully-Connected Layer . Cosa è Strato convoluzionale ? Lo strato convoluzionale è il componente più importante di una CNN perché è dove avviene la maggior parte del calcolo . Richiede dati di input, un filtro e una mappa delle caratteristiche, tra le altre cose. Cosa è lo Strato di pooling ? Il raggruppamento dei livelli , noto anche come downsampling , riduce il numero di parametri nell'input eseguendo la riduzione della dimensionalità. Il processo di raggruppamento , come il livello convoluzionale , fa scorrere un filtro sull'intero input, ma questo filtro non ha pesi . Cosa è il Livello completamente connesso ? Il nome del livello completamente connesso è autoesplicativo. Nei livelli parzialmente collegati, i valori dei pixel dell'immagine di input non sono direttamente collegati al livello di output. Ogni nodo nel livello di output, d'altra parte, si connette direttamente a un nodo nel livello precedente nel livello completamente connesso. Come funzionano le CNN? Più strati di neuroni artificiali costituiscono reti neurali convoluzionali . I neuroni artificiali sono funzioni matematiche che calcolano la somma ponderata di vari input e producono un valore di attivazione, simile alle loro controparti biologiche. Il componente di base delle reti neurali artificiali , il neurone artificiale, ha la struttura seguente. L'azione di ogni neurone è determinata dai suoi pesi. I neuroni artificialiin una CNN rilevano numerose proprietà visive quando alimentati con valori di pixel. Speriamo davvero che questo articolo sia riuscito a darti l'infarinatura che cercavi sulle CNN. Qui sotto troverai una sezione per fare commenti o domande,e degli articoli correlati. Grazie mille per la lettura condividi l'articolo per supportarci :)
- Cosa sono le reti neurali ricorrenti RNN? Un'introduzione alle reti neurali ricorrenti
Nei precedenti articoli abbiamo parlato molto di deep learning, reti neurali e tipi di esse, ma oggi in questo articolo spiegheremo nel dettaglio RNN un tipo di rete neurale della famiglia del deep learning. Prerequisiti : Se non sai cosa è il Machine Learning, clicca qui Se non sai cosa è il Deep Learning, clicca qui Se non conosci le principali applicazioni Deep Learning, clicca qui Se non sai come scaricare e gestire le librerie, clicca qui Se non sai cosa sia un Dataset, clicca qui Cos'è una rete neurale? Una rete neurale è una serie di algoritmi che tenta di riconoscere le relazioni sottostanti in un insieme di dati attraverso un processo che imita il modo in cui opera il cervello umano . le reti neurali si riferiscono a sistemi di neuroni . la rete neurale è anche un insieme di neuroni organizzati . Queste reti neurali hanno molti strati tra gli strati di input e output che e gli strati tra di loro sono nascosti. Cos'è un neurone? Un neurone è una funzione matematica ogni neurone riceve un input ed elabora l'informazione particolare e restituisce l'output. dove x1,x2,x3 sono input e w1,w2,w3 sono i loro pesi e li ranghiamo in un neurone e y è l'output dato dal neurone. Che cos'è una rete neurale ricorrente (RNN)? Una rete neurale ricorrente è una classe di reti neurali artificiali in cui le connessioni tra i nodi formano un grafo diretto lungo una sequenza temporale. Ciò gli consente di esibire un comportamento dinamico temporale. Derivati da reti neurali feedforward , gli RNN possono utilizzare il loro stato interno (memoria) per elaborare sequenze di input a lunghezza variabile . Ciò li rende applicabili a attività come il riconoscimento della grafia non segmentato, connesso o il riconoscimento vocale. Le reti neurali ricorrenti sono teoricamente complete di Turing e possono eseguire programmi arbitrari per elaborare sequenze arbitrarie di input. Reti neurali feed-forward Una rete neurale feed-forward consente alle informazioni di fluire solo nella direzione in avanti, dai nodi di input , attraverso i livelli nascosti e ai nodi di output . Non ci sono cicli o loop nella rete . Come funzionano le reti neurali ricorrenti? In un RNN l'informazione scorre in un ciclo . Quando prende una decisione , considera l' input corrente e anche ciò che ha appreso dagli input ricevuti in precedenza . I loop in RNN assicurano che le informazioni siano conservate nella sua memoria . In una rete neurale feed-forward , le informazioni possono spostarsi solo in una direzione . cioè, dal livello di input al livello nascosto e quindi al livello di output . È necessario notare che una volta che le informazioni passano, si spostano in una direzione diritta e nessun nodo viene toccato per la seconda volta.Tipi di reti neurali ricorrenti Esistono quattro tipi di reti neurali ricorrenti : Uno a uno Uno a Molti Molti a Uno Molti a molti Uno a Molti Questo tipo di rete neurale è noto come Vanilla Neural Network . Viene utilizzato per problemi generali di apprendimento automatico, che ha un singolo input e un singolo output . Queste sono anche chiamate reti neurali semplici . Uno a Molti Questo tipo di rete neurale ha un ingresso singolo e più uscite. Un esempio è la didascalia dell'immagine . Molti a Uno Questo RNN prende una sequenza di input e genera un singolo output . L'analisi del sentimento è un buon esempio di questo tipo di rete in cui una determinata frase può essere classificata come espressione di sentimenti positivi o negativi . Molti a molti Questo RNN prende una sequenza di input e genera una sequenza di output . La traduzione automatica è uno degli esempi Applicazioni delle Reti Neurali Ricorrenti Generazione sottotitoli delle immagini Previsione di serie temporali Elaborazione del linguaggio naturale Grazie mille per aver letto l'articolo, condividilo per supportarci.
- Cosa sono le reti neurali artificiali ANN? Introduzione alle reti neurali artificiali
Nei precedenti articoli abbiamo parlato molto di deep learning, reti neurali e tipi di esse, ma oggi in questo articolo impareremo a conoscere le reti ANN un tipo di rete neurale della famiglia del deep learning. Prerequisiti : Se non sai cosa è il Machine Learning, clicca qui Se non sai cosa è il Deep Learning, clicca qui Se non conosci le principali applicazioni Deep Learning, clicca qui Se non sai come scaricare e gestire le librerie, clicca qui Se non sai cosa sia un Dataset, clicca qui Cos'è una rete neurale? Una rete neurale è una serie di algoritmi che tenta di riconoscere le relazioni sottostanti in un insieme di dati attraverso un processo che imita il modo in cui opera il cervello umano . le reti neurali si riferiscono a sistemi di neuroni . la rete neurale è anche un insieme di neuroni organizzati . Queste reti neurali hanno molti strati tra gli strati di input e output che e gli strati tra di loro sono nascosti. Cos'è un neurone? Un neurone è una funzione matematica ogni neurone riceve un input ed elabora l'informazione particolare e restituisce l'output. dove x1,x2,x3 sono input e w1,w2,w3 sono i loro pesi e li ranghiamo in un neurone e y è l'output dato dal neurone. Che cos'è una rete neurale artificiale (ANN)? Il termine " Rete neurale artificiale " si riferisce a un sottocampo di intelligenza artificiale ispirato alla biologia e al cervello . Una rete neurale artificiale è solitamente una rete computazionale basata su reti neurali biologiche che costruiscono la struttura del cervello umano. Simile, non uguale, a un cervello umano con neuroni interconnessi tra loro, le reti neurali artificiali hanno anche neuroni collegati tra loro in vari strati delle reti. Come funzionano le reti neurali artificiali? La rete neurale artificiale riceve il segnale in ingresso dalla sorgente esterna sotto forma di pattern e l' immagine sotto forma di vettore. Questi input vengono quindi assegnati matematicamente dalle notazioni x(n) per ogni n numero di input. Successivamente, ciascuno degli ingressi viene moltiplicato per i pesi corrispondenti . Questi pesi rappresentano normalmente la forza dell'interconnessione tra i neuroni all'interno della rete . Tutti gli input pesati sono riepilogati all'interno dell'unità di calcolo. Se la somma ponderata è uguale a zero , viene aggiunta la distorsione per rendere l'output diverso da zero o qualcos'altro per aumentare la risposta del sistema. Il Bias ha lo stesso input e il peso è uguale a 1 . La funzione di attivazione si riferisce all'insieme delle funzioni di trasferimento utilizzate per ottenere l'uscita desiderata. Esiste un diverso tipo di funzione di attivazione , ma principalmente insiemi di funzioni lineari o non lineari. Alcuni degli insiemi di funzioni di attivazione comunemente usati sono le funzioni di attivazione sigmoidale, iperbolica , binaria , lineare e molte altre . nel prossimo futuro scriveremo un articolo in cui spiegheremo tutte le funzioni di attivazione . Tipi di rete neurale artificiale: Esistono vari tipi di reti neurali artificiali (ANN) a seconda del neurone del cervello umano e delle funzioni di rete, una rete neurale artificiale svolge allo stesso modo compiti. I principali Tipi di rete neurale artificiale sono : Feedback ANN Feed Forward ANN Cos'è la Feedback ANN ? In questo tipo di ANN , l'output ritorna nella rete per ottenere internamente i risultati più evoluti. Le reti di feedback reinseriscono le informazioni in se stesse e sono adatte a risolvere i problemi di ottimizzazione. Le correzioni degli errori di sistema interne utilizzano le ANN di feedback . Guarda l'immagine qui sotto e nota che l'output manda un feedback all'input. Cos'è la Feed Forward ANN ? Una rete neurale feed-forward consente alle informazioni di fluire solo nella direzione in avanti, dai nodi di input, attraverso i livelli nascosti e ai nodi di output . Non ci sono cicli o loop nella rete . Attraverso la valutazione del suo output attraverso la revisione del suo input, l'intensità della rete può essere notata in base al comportamento di gruppo dei neuroni associati e l'output è deciso. Il vantaggio principale di questa rete è che riesce a capire come valutare e riconoscere i modelli di input. Guardando l'immagine qui sotto noterai che questa volta son gli input a comunicare con l'output. Speriamo davvero che questo articolo sia riuscito a darti l'infarinatura che cercavi sulle ANN. Qui sotto troverai una sezione per fare commenti o domande,e degli articoli correlati. Grazie mille per la lettura condividi l'articolo per supportarci :)
- Come elaborare le immagini con NumPy e Python
Una guida per principianti all'elaborazione delle immagini utilizzando NumPy. Poiché le immagini possono anche essere considerate come costituite da array, possiamo utilizzare NumPy per eseguire diverse attività di elaborazione delle immagini anche da zero. In questo articolo, impareremo le attività di elaborazione delle immagini che possono essere eseguite solo utilizzando NumPy. Per lo più troviamo gli usi di NumPy nei problemi in cui ci viene richiesto di eseguire operazioni matematiche e logiche su diverse dimensioni di array. Poiché le immagini possono anche essere considerate come costituite da array, possiamo utilizzare NumPy per eseguire diverse attività di elaborazione delle immagini anche da zero. In questo articolo, impareremo le attività di elaborazione delle immagini che possono essere eseguite solo utilizzando NumPy. Questo sarà utile per i principianti per comprendere l'elaborazione delle immagini dalle sue basi. Qui sotto troverai un sommario che ricapitola tutto ciò di cui parleremo in questo articolo Sommario di Come elaborare le immagini con NumPy e Python Caricamento dell'immagine Ritaglio dell'immagine Separazione dei colori Trasformazione Conversione in scala di grigi Segmentazione dell'immagine Questi 6 step solitamente sono i più comuni e quotidianamente usati da chi lavora in ambito computer vision. Come sempre oltre alla parte teorica ci teniamo che tu segua passo passo l'articolo, per questo cliccando su questo Link (poi clicca in basso a destra "crea nuovo blocco note") e copiando e incollando il codice passo passo potrai seguirci senza difficoltà. Che altro dire, iniziamo con l'importazione delle librerie e il caricamento di un'immagine casuale. Caricamento dell'immagine import numpy as np import urllib.request as url stream = url.urlopen("http://matplotlib.sourceforge.net/_static/logo2.png") import matplotlib.pylab as plt %matplotlib inline image = plt.imread(stream) print(image) Output: [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.] ... [0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]] ... [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.] Qui possiamo vedere la forma grezza dell'immagine. Poiché matematicamente le immagini sono costituite da valori di pixel nell'output sopra, possiamo vedere che abbiamo alcuni numeri che definiscono i colori nell'immagine e l'immagine è fondamentalmente un array o un array NumPy. Possiamo anche mostrare l'immagine usando la libreria matplotlib . imgplot = plt.imshow(image) Output: Ritaglio dell'immagine Dopo aver caricato l'immagine siamo pronti per eseguire azioni sull'immagine. Come molto semplice, possiamo eseguire operazioni di ritaglio di base sulla nostra immagine. Per NumPy, l'operazione di ritaglio può essere eseguita tagliando l'array. crop_img = image[20:199,:200,:] imgplot = plt.imshow(crop_img) Output : Qui possiamo vedere che abbiamo ritagliato la nostra immagine. Ora possiamo passare alla nostra prossima fase di elaborazione delle immagini. Separazione dei colori Poiché sappiamo che ogni immagine è composta da valori di pixel e questi valori di pixel rappresentano tre numeri interi noti come valore RGB del suo colore . Per separare l'immagine in questi colori è necessario estrarre la fetta corretta dell'array di immagini. fig, axs = plt.subplots(nrows=1, ncols=3, figsize=(20,8)) for c, ax in zip(range(3), axs): rgb_img = np.zeros(image.shape, dtype="uint8") rgb_img[:,:,c] = image[:,:,c] ax.imshow(rgb_img) ax.set_axis_off() Qui nell'output, potremmo vedere che abbiamo separato l'RGB dell'immagine per questo abbiamo mappato i valori nell'intervallo da 0 a 1 e cast per digitare uint8. Passiamo alla fase successiva dell'elaborazione delle immagini. Trasformazioni In questo passaggio, eseguiremo la trasformazione del colore. A questo scopo, possiamo trattare il pixel dell'immagine come un punto nello spazio. Trattare in questo modo i pixel dell'immagine ci consente di eseguire una trasformazione nel punto di colore. La rotazione del punto di colore può essere un esempio dell'affermazione precedente. Qui stiamo applicando la funzione di notazione di Einstein di Numpy, che è un metodo per applicare una matrice di rotazione, in pixel, all'immagine. def do_normalise(image): return -np.log(1/((1 + image)/257) - 1) def undo_normalise(image): return (1 + 1/(np.exp(-image) + 1) * 257).astype("uint8") def rotation_matrix(theta): return np.c_[ [1,0,0], [0,np.cos(theta),-np.sin(theta)], [0,np.sin(theta),np.cos(theta)] ] img_norm = do_normalise(image) img_rot = np.einsum("ijk,lk->ijl", img_norm, rotation_matrix(np.pi)) img = undo_normalise(img_rot) imgplot = plt.imshow(img_norm) #copiando e incollando questa trasformazione su un altra immagine a caso potresti avere degli errori, ma non preoccuparti presto pubblicheremo guide complete anche sulla traformazione Qui nell'output, potrete vedere che il sigmoid applicato allo spazio colore ha funzionato e stiamo applicando continuamente la rotazione del colore dei pixel. Ora, nel passaggio successivo, vedremo come convertire un'immagine in un'immagine in scala di grigi. Conversione in scala di grigi Possiamo anche usare NumPy per trasformare l'immagine in un'immagine in scala di grigi. Prendendo la media ponderata del valore RGB dell'immagine possiamo eseguire questo. rgb_weights = [0.2989, 0.5870, 0.1140] grayscale_image = np.dot(image[...,:3], rgb_weights) imgplot = plt.imshow(grayscale_image) Output: Ecco l'immagine dell'output del nostro processo di conversione in scala di grigi. Passiamo alla fase successiva dell'elaborazione delle immagini. Segmentazione dell'immagine Questo è uno dei passaggi di elaborazione delle immagini più utilizzati in cui segmentiamo diverse regioni di immagini. Esistono vari modi per farlo, ad esempio in primo piano e in background. Ad esempio, in questo articolo vedremo come possiamo eseguire la segmentazione convertendo l'immagine in scala di grigi e trovando una soglia. I pixel nell'immagine che si trovano al di sopra della soglia si trovano in una regione e gli altri in un'altra regione. def simple_threshold(image, threshold=128): return ((image > threshold) * 255).astype("uint8") def rgb2gray(rgb): r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2] gray = 0.2989 * r + 0.5870 * g + 0.1140 * b return gray thresholds = [100,120,128,138,150] fig, axs = plt.subplots(nrows=1, ncols=len(thresholds), figsize=(20,5)); gray_im = rgb2gray(image) for t, ax in zip(thresholds, axs): ax.imshow(simple_threshold(gray_im, t), cmap='Greys'); ax.set_title("Threshold: {}".format(t), fontsize=20); ax.set_axis_off(); Nell'output che vi uscirà, potrete vedere che abbiamo segmentato l'immagine in due regioni usando diversi valori di soglia. Conclusione In questo articolo, abbiamo discusso le diverse attività di elaborazione delle immagini che abbiamo eseguito utilizzando la libreria NumPy. Inoltre, abbiamo utilizzato la libreria matplotlib per la visualizzazione delle immagini dopo l'elaborazione. Osservando i punti precedenti, possiamo dire che possiamo eseguire anche altri compiti semplicemente usando qualche altra logica.
- Cos'è il Machine Learning in 3 minuti! Spiegato in modo semplice
Ecco! Questo articolo è destinato esclusivamente al pubblico che non sa che cavolo è il Machine Learning (ML) o in italiano apprendimento automatico? Per quelli che si sentono esclusi quando vedono persone che ne parlano. Non è necessario che tu provenga affatto da un background TECH. Ti assicuro che dopo aver letto questo articolo avrai abbastanza informazioni per partecipare a discorsi casuali sul Machine Learning. Cos'è il Machine Learning ? A partire da una definizione ampia, il Machine Learning è... Una sotto area dell'Intelligenza Artificiale , ed è definito come la capacità di una macchina di imitare il modo umano intelligente di apprendere dai dati. ( Noi utilizziamo il cervello biologico, le macchine utilizzano capacità di calcolo è tantissimi dati elaborati da algoritmi e modelli statistici ) Semplice ! Esempio Pratico di Machine Learning ? Per fare un esempio, lascia che ti faccia un quiz... Il tuo obiettivo è quello di indovinare il numero associato al 9 seguendo lo schema dei numeri precedenti. Per favore affinchè tu capisca questo articolo c'è bisogno che non leggi la soluzione senza prima aver provato a capire il numero abbinato a 9. 3 – 9 4 – 16 8 – 64 9 – ? ( Indovina il prossimo senza scorrere ) Non scorrere ... Scorri solo se hai trovato la risposta... Non barare.... Come sei arrivato a 81 ??? Questo è esattamente il tipo di comportamento che stiamo cercando di insegnare alle macchine. Stiamo cercando di insegnare alle macchine a "Imparare dall'esperienza" . Gli algoritmi di apprendimento automatico utilizzano metodi computazionali per "apprendere" le informazioni direttamente dai dati senza fare affidamento su un'equazione predeterminata come modello. Gli algoritmi migliorano in modo adattivo le loro prestazioni all'aumentare del numero di campioni disponibili per l'apprendimento. I famigerati algoritmi ML trovano schemi naturali all'interno dei dati, ottengono approfondimenti e predicono l'ignoto per prendere decisioni migliori. Quali sono i tipi di tecniche di Machine Learning? Esistono vari tipi di tecniche ML ma a te basta conoscere questi due : Apprendimento supervisionato Apprendimento senza supervisione Non preoccuparti e non spaventarti! Un passo alla volta. Apprendimento supervisionato: Trova modelli (e sviluppa modelli predittivi) utilizzando sia i dati di input che i dati di output. Quindi inizialmente saremmo noi stessi ad abbinare gli Input agli output. Tutte le tecniche di apprendimento supervisionato sono sotto forma di classificazione o regressione . Classificazione : La classificazione viene utilizzata per prevedere le risposte discrete. Se un'e-mail è SPAM o NONSPAM? Se l'Italia vincerà i mondiali ? Vince, Perde, SPAM, NONSPAM sono le classi predefinite. E l'output deve rientrare tra questi a seconda dell'input. Regressione : La regressione viene utilizzata per prevedere le risposte continue, per esempio: Andamento dei prezzi di borsa, previsioni del tempo, prezzo degli immobili, numero acquisti prossimo mese sul nostro e-commerce, ecc. Ti potrebbe interessare anche : Classificatore vs Regressione quale usare? Machine learning esempi pratici Apprendimento senza supervisione: Trova i modelli basati solo sui dati di input. Questa tecnica è utile quando non sei sicuro di cosa cercare. Spesso utilizzato per l'analisi esplorativa di dati grezzi. La maggior parte delle tecniche di apprendimento senza supervisione sono una forma di analisi dei cluster. Analisi di gruppo: In Cluster Analysis, si raggruppano elementi di dati che hanno una certa misura di somiglianza basata su valori caratteristici. Alla fine quello che avrai è un insieme di diversi gruppi (supponiamo che A — Z tali gruppi). Un Data Item (d1) in un gruppo (A) è molto simile ad altri Data Item (d2 — dx) nello stesso gruppo (A), ma d1 è significativamente diverso dai Data Item appartenenti a gruppi diversi (B — Z) . Tornando al nostro esempio... Il nostro quiz è stato un esempio di apprendimento supervisionato — tecnica di regressione. Alcune applicazioni comuni di Machine Learning a cui puoi fare riferimento: Il tuo assistente personale Siri o Google utilizza ML. Le previsioni meteorologiche per la prossima settimana vengono fornite utilizzando ML. Win Predictor in un torneo sportivo utilizza ML. La diagnosi medica utilizza prevalentemente ML. E qualcosa con cui saresti familiare, ti sei mai chiesto come mai i siti multimediali ti mostrano consigli e annunci che corrispondono strettamente ai tuoi interessi? Anche loro usano Machine Learning. Per altri esempi clicca qui Spero che questo articolo ti sia piaciuto. Condividi le tue opinioni e dubbi nella sezione commenti qui sotto. Grazie per averlo letto tutto :)
- Importare file excel, csv e html con Python e Pandas
Prerequisiti : Se non sai perchè utilizzeremo python, clicca qui Se non hai ancora installato Python, clicca qui Se non sai come scaricare e gestire le librerie, clicca qui Se non sai cosa sia un Dataset, clicca qui Vediamo adesso come è possibile importare un dataset per successivamente farci delle analisi o creare modelli predittivi grazie alla libreria di Python : Pandas Prima di iniziare in questo articolo diamo per scontato che i dati siano già ordinati. Cosa significa? Che i dati siano strutturati, infatti utilizzeremo pandas per importare dati da fogli Excel, Csv & HTML Installiamo le librerie per importare i file excel o csv Per installare le librerie necessarie per la rappresentazione apriamo il terminale e digitiamo il seguenti comandi: pip install pandas pip3 install pandas #per python3 #se usi il nostro editor è già installato e premiamo invio. Creiamo un nuovo file Python e importiamo la libreria scaricata. import pandas as pd Come Importare un file excel con python Per importare file Excel esiste un apposita funzione " read_excel() ". Vediamo qualche esempio #stampare i dati pd.read_excel("il_tuo_file.xls", sheet_name="Sheet1") #salvare i dati dentro una variabile xlsx = pd.read_excel("il_tuo_file.xls", sheet_name="Sheet1") #filtrare e salvare solo alcune colonne dentro una variabile #in questo caso verranno selezionate la colonna A e le colonne dalla C alla E xlsx = pd.read_excel("il_tuo_file.xls",'Sheet1', usecols='A,C:E') #salvare più fogli with pd.ExcelFile("il_tuo_file.xls") as xls: xlsx1 = pd.read_excel(xls, 'Sheet1') xlsx2 = pd.read_excel(xls, 'Sheet2') Ed ecco il nostro DataFrame pronto da analizzare in pochi click. Questa è la magia di Python e delle sue librerie. Grandi risultati con qualche linea di codice. Come Importare un file csv con python Per importare file Csv o di testo esiste un apposita funzione " read_csv() ". Vediamo qualche esempio #stampare i dati pd.read_csv("il_tuo_file.csv") #salvare i dati dentro una variabile dataset = pd.read_csv("il_tuo_file.csv") #filtrare e salvare i dati dentro una variabile #in questo caso verranno scartate tutte le righe contenti valori numerici dispari dataset = pd.read_csv("il_tuo_file.csv",skiprows=lambda x:x%2!=0) #saltare valori vuoti e salvare i dati dentro una variabile dataset = pd.read_csv("il_tuo_file.csv",skip_blank_lines=True) Ed ecco il nostro DataFrame pronto da analizzare in pochi click. Questa è la magia di Python e delle sue librerie. Grandi risultati con qualche linea di codice. Come Importare un file html con python Per importare file html esiste un apposita funzione " read_html() ". Il terzo metodo che descriverò in questo articolo è come prendere le tabelle che troviamo sul web, come su wikipedia. Spesso questa funzione è molto comoda, sulla rete si trovano informazioni davvero utili. Questo link è la pagina di wikipedia sui presidenti degli stati uniti e appena la apriamo ci accorgiamo che è composta da diverse tabelle molto ben fatte. Vediamo qualche esempio url = "https://en.wikipedia.org/wiki/List_of_Presidents_of_the_United_States" #stampare i dati pd.read_html(url) #salvare i dati dentro una variabile tabella = pd.read_html(url) #filtrare e salvare i dati dentro una variabile #in questo caso verranno scartate tutte le righe che non corrispondono al match match = 'Barack Obama' tabella = pd.read_html(url, match=match) #saltare valori e salvare i dati dentro una variabile tabella = pd.read_html(url, skiprows=range(2)) Ed ecco il nostro DataFrame pronto da analizzare in pochi click. Questa è la magia di Python e delle sue librerie. Grandi risultati con qualche linea di codice. Scarica gratis il codice contenente le funzioni per importare file Excel, Csv & HTML Vuoi mettere in pratica quello che hai letto ? Scarica Progetti già pronti Lavora con il nostro editor online senza dover installare librerie Usa i nostri set di Dati Oppure segui i tutorial correlati : Diventare Data Scientist (Scienziato del dato) in 10 Step partendo da Zero Una Guida Semplice e Completa per passare da Excel a Python Visualizzare i dati con il LinePlot o grafico a linee con Python e MatplotLib Data engineer vs data scientist: quale carriera devi scegliere ? Differenze tra Analisi descrittiva, predittiva e prescrittiva Feature Engineering e Feature Selection per Principianti e non Spiegazione della più semplice rete neurale per principianti Prerequisiti per le carriere di Intelligenza Artificiale - Machine Learning PyScript, come usare Python nel browser! Principali Linguaggi di Programmazione per la Data Science Che cosa è il Machine Learning (ML) Migliori progetti Open Source Python di Intelligenza Artificiale Il tuo Primo Programma di Machine Learning con Python e Google Colab Come Analizzare Un Dataset in Solo 5 Passaggi Il tuo primo Programma di Deep Learning in Python con Keras Step-By-Step Come costruire modelli predittivi sanitari utilizzando PyHealth? Esempio pratico Rilevamento Di Veicoli In Tempo Reale Come implementare l'algoritmo Perceptron da zero in Python Implementare le reti neurali ricorrenti (RNN) con Python e Keras Deep learnign e python : Object Recognition e Object Predict esempio Come salvare e caricare il tuo modello di deep learning Grazie mille per la lettura, condividi l'articolo per sostenerci PROVA A VINCERE UN VIDEOCORSO SULLA DATASCEICE
- Intelligenza Artificiale Pro e Contro - Andiamo a vedere i Vantaggi e Svantaggi dell' I.A.
Tutto ciò che è in eccesso è pericoloso, basta pensare ai farmaci o se ci fa più piacere possiamo pensare al lavoro ma è così anche per l'utilizzo dell'Intelligenza Artificiale. Per chi fosse del tutto estraneo potremmo in modo molto riassuntivo dire che l' I.A. è la scienza e l'ingegneria di realizzare macchine in grado di compiere azioni o decisioni che sono sempre appartenute alla specie umana. ( Giocare a scacchi ne è un esempio ) Prima di leggere i Pro e Contro andiamo a vedere qualche generico utilizzo di Intelligenza Artificiale nelle nostre giornate : Ricerche su internet gestite dall'algoritmo di Google Consigli sui prodotti da Amazon Consigli musicali da Spotify Consigli stradali da Google Maps o Waze Prevenzione delle frodi dalle carte di Credito E di nuovo video Consigliati da Youtube E ancora post e pubblicità proposti da Instagram, Facebook e Tik Tok Tutto funziona senza intoppi grazie all'intelligenza artificiale. Non c'è dubbio nel dire che la tecnologia è una parte essenziale dello sviluppo e della crescita degli esseri umani. Ma ricordiamo sempre la frase con la quale abbiamo iniziato l'articolo "Tutto ciò che è in eccesso è pericoloso" Pro e contro dell'intelligenza artificiale Di seguito sono riportati in dettaglio i vantaggi e gli svantaggi dell'intelligenza artificiale: Vantaggi o Pro dell'intelligenza artificiale 1. "Errare" è umano, quindi perché non usare l'intelligenza artificiale? La macchina prende una decisione in base ai record di dati precedenti. Con gli algoritmi si riducono le possibilità di errore. Questo è un risultato, poiché la risoluzione di problemi complessi richiede calcoli difficili che possono essere eseguiti senza errori. Le organizzazioni aziendali utilizzano gli assistenti digitali per interagire con i propri utenti, questo li aiuta a risparmiare molto tempo. La domanda per le attività degli utenti è soddisfatta e quindi non devono aspettare. Sono programmati per fornire la migliore assistenza possibile a un utente. Non c'è spazio per gli errori con l'intelligenza artificiale. I robot sono alimentati con informazioni che vengono inviate per esplorare lo spazio. I corpi in metallo hanno una maggiore resistenza e una grande capacità di sopportare lo spazio e l'atmosfera ostile. Sono creati e utilizzati in modo tale da non poter essere modificati o sfigurati o rotti in un ambiente ostile. 2. L'intelligenza artificiale non si stanca e si consuma facilmente L'intelligenza artificiale e la scienza della robotica vengono utilizzate nell'estrazione mineraria e in altri processi di esplorazione di combustibili. Queste macchine complesse aiutano a esplorare il fondo dell'oceano e a superare i limiti umani. Grazie alla programmazione i robot, possono svolgere un compito più complesso e avere maggiore resistenza. 3. L'assistenza digitale aiuta nelle faccende quotidiane Siri ci ascolta ed esegue il compito da noi richiesto soltanto avendoci ascoltato. Il GPS ti aiuta a viaggiare per il mondo.La cosa migliore è la funzione di correzione automatica, capisce cosa stai cercando di dire e ti presenta la frase nel miglior modo possibile. Hai notato che mentre pubblichi una foto sui social media tagghi le persone, ma l'app rileva automaticamente il volto della persona e tagga le persone? Lo stesso è quando lavori su Google Foto. Automaticamente, viene creata una cartella delle persone con l'aiuto dei loro volti.L'intelligenza artificiale è ampiamente utilizzata da istituti finanziari e istituti bancari perché aiuta a organizzare e gestire i dati. Inoltre, il rilevamento delle frodi utilizza l'intelligenza artificiale in un sistema basato su smart card. 4. Chi è più razionale di un Computer ? Logica prima di tutto! Le organizzazioni altamente avanzate dispongono di assistenti digitali che le aiutano a interagire con gli utenti e risparmiano la necessità di risorse umane. Le decisioni giuste sul programma possono essere prese se ci si lavora razionalmente. Ma, con gli umani, le emozioni si fanno sentire. Quando un computer allena la sua rete neurale non ha modo di distrarsi. Non hanno un lato emotivo e questo fa pensare ai robot in modo freddo e razionale. Le emozioni non sono ancora implementabili a livello di programmazione quindi l'umore non ne ostacola l'efficienza. In altre parole possiamo vedere le Intelligenze artificiali come un autista che non ha bisogno di bere, mangiare, dormire, non si arrabbia se viene superato o nel caso è la tua giornata no non farà domande scomode. 5. Lavori ripetitivi Un'attività che non aggiunge valore non serve a nulla. Inoltre, i lavori ripetitivi sono di natura monotona e possono essere eseguiti con l'aiuto dell'intelligenza artificiale. Le macchine pensano più velocemente degli umani e possono svolgere diverse funzioni contemporaneamente. Può essere impiegato per svolgere compiti pericolosi e i suoi parametri sono regolati. Questo non è possibile con gli umani poiché la loro velocità e il loro tempo non possono essere calcolati sulla base di parametri. 6. Applicazioni mediche Questa è l'applicazione migliore dell'intelligenza artificiale. Le applicazioni aiutano a istruire la macchina sugli effetti collaterali di vari farmaci. Al giorno d'oggi, i professionisti medici sono formati con simulatori di chirurgia artificiale. Utilizza un'applicazione che aiuta a rilevare e monitorare i disturbi neurologici e a stimolare le funzioni cerebrali. Questo aiuta anche nella radiochirurgia. La radiochirurgia viene utilizzata nell'operare i tumori e aiuta nell'operazione senza danneggiare i tessuti circostanti. 7. Instancabile, altruista e senza pause Una macchina non richiede pause come fanno gli umani. Sono programmati per lunghe ore e possono funzionare continuamente senza annoiarsi o distrarsi. La macchina non si stanca, anche se deve lavorare per ore consecutive. Questo è un grande vantaggio per gli esseri umani, che hanno bisogno di riposo di tanto in tanto per essere efficienti. Tuttavia, nel caso delle macchine, la loro efficienza non è influenzata da alcun fattore esterno e non ostacola il lavoro continuo. 8. Giusto processo decisionale La completa assenza di emozioni da una macchina la rende più efficiente in quanto sono in grado di prendere le giuste decisioni in un breve lasso di tempo. Il miglior esempio di questo è il suo utilizzo nel settore sanitario. L'integrazione degli strumenti di intelligenza artificiale nel settore sanitario ha migliorato l'efficienza dei trattamenti riducendo al minimo il rischio di false diagnosi. 9. Implementazione dell'IA in situazioni rischiose La sicurezza umana è garantita dalle macchine. Gli scienziati utilizzano macchine complesse per studiare il fondo dell'oceano dove la sopravvivenza umana diventa difficile. Questo è il livello di intelligenza artificiale. Raggiunge luoghi che gli umani non possono raggiungere. Pertanto, aiuta a risolvere i problemi in un batter d'occhio. Con i suoi 179.700.000 km², l'Oceano Pacifico supera la superficie complessiva di tutte le terre emerse. Il punto più profondo, invece, si trova nella fossa delle Marianne; si tratta dell'abisso Challenger che raggiunge gli 11.034 metri di profondità. Qualche dubbio sull'articolo su pro e contro dell'intelligenza artificiale fino ad ora? Condividi le tue opinioni nei commenti. Svantaggi o contro dell'intelligenza artificiale Come si dice sempre, ogni moneta ha due facce e anche l'intelligenza artificiale. 1. Costo elevato È vero che l'intelligenza artificiale ha un costo elevato, ma non esiste nemmeno il pranzo gratis. Richiede costi enormi in quanto è una macchina complessa. Oltre al costo di installazione, anche la sua riparazione e manutenzione richiedono costi enormi. I programmi software necessitano di frequenti aggiornamenti e soddisfano le esigenze dell'ambiente in evoluzione. 2. Nessuna replica umana Non importa quanto intelligente diventi una macchina, non potrà mai replicare un essere umano. Le macchine sono razionali ma molto disumane in quanto non possiedono emozioni e valori morali. Non sanno cosa è etico e cosa è legale e per questo non hanno le proprie capacità di giudizio. Fanno quello che gli viene detto di fare e quindi il giudizio di giusto o sbagliato è nullo per loro. Se incontrano una situazione che non è loro familiare, si comportano in modo errato oppure si rompono in tali situazioni. 3. Nessun miglioramento con l'esperienza Memorizza molti dati, ma il modo in cui è possibile accedervi e utilizzarli è molto diverso dall'intelligenza umana. Inoltre, non possono far fronte all'ambiente dinamico e quindi non sono in grado di alterare le loro risposte ai cambiamenti degli ambienti. Siamo costantemente bombardati dalla domanda se sia davvero emozionante sostituire gli esseri umani con le macchine. L'intelligenza artificiale non ha sentimenti e per questo non c'è niente come lavorare con tutto il cuore o con piena passione per loro. Non c'è alcun senso di appartenenza o solidarietà o un tocco umano. Non riescono a distinguere tra un individuo laborioso e un individuo inefficiente. 4. La creatività non è la chiave per l'IA Le macchine non possono essere creative. Possono fare solo ciò che viene loro insegnato o comandato. Sebbene aiutino nella progettazione e nella creazione, non possono eguagliare la potenza di un cervello umano. Gli umani sono sensibili e intellettuali e sono anche molto creativi. Possono generare idee, possono pensare fuori dagli schemi. Vedono, sentono, pensano e sentono quale macchina non può. I loro pensieri sono guidati dai sentimenti che mancano completamente alle macchine. Non importa quanto una macchina diventi troppo grande, non può inerente le capacità intuitive del cervello umano e non può replicarla. 5. Disoccupazione Questo è il più rischioso e può avere effetti gravi. Con le tecnologie ad alta intensità di capitale, i requisiti ad alta intensità umana sono diminuiti in alcuni settori. Se in futuro gli esseri umani non aumentano le loro capacità, allora in poco tempo possiamo vedere che verranno sostituiti con macchine. Il problema principale del fatto che il PIL sia stagnante o non cresce al tasso previsto è la disoccupazione. Le persone non possiedono le competenze richieste che sono richieste. Per questo motivo c'è un enorme divario tra domanda e offerta. Riepilogo Pro e Contro Intelligenza Artificiale Detto questo, valutando i pro ei contro dell'intelligenza artificiale, spetta al lettore, all'utente e alla loro prospettiva. L'intelligenza artificiale e la robotica miglioreranno il nostro modo di pensare, il modo in cui esploriamo nuovi orizzonti, che siano lo spazio o l'oceano. Come dice un vecchio proverbio, la necessità è la madre di tutte le innovazioni, così è il caso dell'IA. Gli esseri umani sanno di cosa hanno bisogno e stanno migliorando sempre di più nel definire i propri desideri e nel trasformarli rapidamente in realtà. Nel prossimo futuro, le cose accadranno così rapidamente che assisteremo a grandi cambiamenti e innovazioni. Trattieni il respiro Sono iniziate le mega interruzioni! Vuoi aggiungere altri pro e contro dell'intelligenza artificiale? Sentiti libero di condividerli con noi. Vuoi mettere in pratica quello che hai letto ? Scarica Progetti già pronti Lavora con il nostro editor online senza dover installare librerie Usa i nostri set di Dati Oppure segui i tutorial correlati : Diventare Data Scientist (Scienziato del dato) in 10 Step partendo da Zero Data engineer vs data scientist: quale carriera devi scegliere ? Feature Engineering e Feature Selection per Principianti e non Spiegazione della più semplice rete neurale per principianti Prerequisiti per le carriere di Intelligenza Artificiale - Machine Learning PyScript, come usare Python nel browser! Principali Linguaggi di Programmazione per la Data Science Che cosa è il Machine Learning (ML) Migliori progetti Open Source Python di Intelligenza Artificiale Il tuo Primo Programma di Machine Learning con Python e Google Colab Il tuo primo Programma di Deep Learning in Python con Keras Step-By-Step Come costruire modelli predittivi sanitari utilizzando PyHealth? Esempio pratico Rilevamento Di Veicoli In Tempo Reale Come implementare l'algoritmo Perceptron da zero in Python Implementare le reti neurali ricorrenti (RNN) con Python e Keras Deep learnign e python : Object Recognition e Object Predict esempio Come salvare e caricare il tuo modello di deep learning
- Filtro collaborativo cos'è e come implementarlo con python
cos'è il Il filtraggio collaborativo ? Il filtraggio collaborativo può essere considerato una tecnica per fornire consigli in un sistema o motore di suggerimenti. In sostanza, possiamo dire che è un modo per trovare somiglianze tra utenti e oggetti. I sistemi di raccomandazione hanno un'ampia gamma di applicazioni in tutti i domini. Costruire un buon sistema di raccomandazione adatto alle esigenze aziendali è sempre una sfida. Un buon sistema può essere sviluppato solo quando c'è una buona comprensione del suo funzionamento. In questo articolo, discuteremo come creare da zero un sistema di raccomandazione , in particolare basato su filtri collaborativi. Inizieremo con i dati casuali e costruiremo un sistema di raccomandazione per generare raccomandazioni. Indice Che cos'è il filtro collaborativo? Uso della correlazione Implementazione del filtraggio collaborativo basato sugli elementi Implementazione del filtraggio collaborativo basato sull'utente Iniziamo con la comprensione del filtro collaborativo. Che cos'è il filtro collaborativo? Il filtraggio collaborativo può essere considerato una tecnica per fornire consigli in un sistema o motore di suggerimenti. In sostanza, possiamo dire che è un modo per trovare somiglianze tra utenti e oggetti. Utilizzandolo possiamo calcolare le valutazioni in base alle valutazioni di utenti simili o articoli simili. I sistemi di raccomandazione basati sul filtraggio collaborativo possono essere classificati nei seguenti modi: Basato sul prodotto: questo tipo di sistema di raccomandazione aiuta a trovare somiglianze tra gli articoli oi prodotti. Questo viene fatto generando dati sul numero di utenti che hanno acquistato due o più articoli insieme e se il sistema trova una correlazione elevata, presume la somiglianza tra i prodotti. Ad esempio, ci sono due prodotti X e Y che sono altamente correlati quando un utente acquista X, il sistema consiglia di acquistare anche Y. Basato sull'utente: questo tipo di sistema aiuta a trovare utenti simili in base alla loro natura di selezione degli articoli. Ad esempio, un utente utilizza un casco, una ginocchiera e una protezione per i gomiti e il secondo utilizza solo un casco e una protezione per i gomiti al momento della guida in bicicletta, il sistema di raccomandazione basato sull'utente consiglierà al secondo utente di utilizzare una protezione per le ginocchia. In questo articolo cercheremo di comprendere da zero il filtraggio collaborativo. Per prima cosa creeremo un esempio di dati e cercheremo di trovare somiglianze tra gli elementi. Trovare la somiglianza tra gli elementi è correlato alla ricerca della correlazione tra gli elementi in base ai dati che abbiamo. Prima di passare all'implementazione ci viene richiesto di capire qual è la correlazione. Uso della correlazione La correlazione può essere considerata come la relazione tra due variabili. Questo può essere di tre tipi positivo, negativo o neutro. Se due variabili sono correlate positivamente, possiamo dire che i cambiamenti in una variabile in direzione positiva o negativa possono fornire un cambiamento nella seconda variabile in direzione positiva o negativa. Se la correlazione è negativa, un cambiamento in una variabile può causare un cambiamento nella direzione opposta. Se le variabili sono correlate in modo neutro, le modifiche in una variabile non provocano una modifica nell'altra. La misurazione della correlazione può essere effettuata utilizzando il coefficiente di correlazione. Il calcolo del coefficiente di correlazione può essere effettuato calcolando prima la covarianza della variabile e poi dividendo per la quantità di covarianza per il prodotto delle deviazioni standard di tali variabili. Matematicamente, Dove, r = coefficiente di correlazione x i = valori di x variabile in un campione x = media dei valori della variabile x y i = valori della variabile y in un campione y = media dei valori della variabile y E' veramente molto semplice, potresti quasi calcolarla con un foglio di carta e una calcolatrice Esistono molti tipi di coefficienti di correlazione utilizzati nell'analisi statistica, utilizziamo principalmente la correlazione di Pearson per i sistemi di raccomandazione perché è una misura della forza e della direzione della relazione lineare tra due variabili. Passiamo all'implementazione di un sistema di raccomandazione. Implementazione del filtraggio collaborativo basato sui prodotti 1. Importiamo le librerie #Importiamo le libreire import pandas as pd import numpy as np import matplotlib.pyplot as plt 2. Set di dati In questo articolo, implementeremo un sistema di raccomandazione utilizzando l'approccio di filtraggio collaborativo a tale scopo lavoreremo su dati semplici. Diciamo che abbiamo alcuni utenti, prodotti e valutazioni di quel prodotto fornite dall'utente. Possiamo creare un tale set di dati utilizzando il codice di seguito #creiamo un dataset finto molto semplice per farti capire come funziona un filtro collaborativo, #successivamente per te sarà facile implementarlo con i tuoi dati data2 = {'user_id':[1, 2, 3, 1, 2], 'product_id':[1, 2, 1,2,3], 'product_name':['product_1', 'product_2', 'product_1','product_2','product_3'], 'rating':[3,3,3,2,2] } items_df = pd.DataFrame(data2) items_df Output: 3. Tabella pivot Creiamo una tabella pivot utilizzando questi dati in base a user_id e product_name. #Creiamo una tabella Pivot tra il voto e i prodotti pivot = pd.pivot_table(items_df,values='rating',columns='product_name',index='user_id') pivot Output: Qui nell'output sopra, possiamo vedere la nostra tabella pivot. Questo formato di tabella può essere utilizzato per calcolare la correlazione. Poiché la correlazione sarà maggiore, possiamo usarli come nostra raccomandazione. Generazione di raccomandazione Per comprendere chiaramente il processo, abbiamo utilizzato un set di dati molto semplice e possiamo dire, vedendo la tabella sopra, che i prodotti 1, 2 e 3 hanno valutazioni simili e il prodotto 1 ha due recensioni. Quindi potrebbe esserci la possibilità che i prodotti 2 e 3 siano consigliati con il prodotto 1. Verifichiamo i nostri risultati. #generiamo una raccompandazione in base a prodotti e rating print('Il prodotto da consigliare quando viene acquistato il product_2 è :') print( pivot.corr()['product_2'].sort_values(ascending=False).iloc[1:2]) Output : Il prodotto da consigliare quando viene acquistato il product_2 è : product_name product_1 NaN Utilizzando le righe di codici sopra, calcoliamo la correlazione tra i prodotti e ordiniamo i valori. Quindi abbiamo stampato 1 valore e abbiamo scoperto che il nostro sistema ci consiglia di acquistare o utilizzare il prodotto 2 con il prodotto 1. Implementazione del filtraggio collaborativo basato sull'utente Nella sezione precedente, abbiamo esaminato il processo di creazione di dati e tabelle pivot. In questa sezione, utilizzeremo dati simili per implementare il filtraggio collaborativo basato sull'utente. 1. Tabella pivot Iniziamo con la creazione di una tabella pivot per il filtraggio collaborativo basato sull'utente. A questo scopo, ci viene richiesto di invertire la nostra vecchia tabella pivot, il che significa che ora stiamo creando una tabella pivot basata sugli utenti come colonne. #Creiamo una tabella Pivot tra il voto e gli utenti pivot1 = pd.pivot_table(items_df,values='rating',columns='user_id',index='product_name') pivot1 Output: Nella tabella sopra, possiamo vedere che abbiamo user-id come colonna e prodotti come riga. 2. Generazione di raccomandazione In questa sezione, troveremo utenti simili in base alle valutazioni fornite. In modo da poter filtrare gli utenti e fornire consigli simili su elementi diversi oppure possiamo anche fornire consigli a un utente in base a una cronologia utente simile. #generiamo una raccompandazione in base a utenti e rating print('Gli utenti simili a user_2 sono :') print( pivot1.corr()[2].sort_values(ascending=True).iloc[1:2]) Output: Gli utenti simili a user_2 sono : user_id 1 NaN Nell'output sopra, possiamo vedere che l'utente 1° è più simile all'utente 2°, ed è perché hanno fornito valutazioni quasi simili nel nostro set di dati principale. Conclusione In questo articolo, abbiamo esaminato le intuizioni di base alla base della creazione di sistemi di raccomandazione utilizzando tecniche di filtraggio collaborativo e abbiamo imparato questo approccio da zero. Condividi l'articolo se ti è piaciuto :)














