Skip to content

Instantly share code, notes, and snippets.

View phileas-condemine's full-sized avatar

Philéas Condemine phileas-condemine

View GitHub Profile
@phileas-condemine
phileas-condemine / clean_finess_geoloc_from_datagouvfr.R
Last active November 25, 2020 15:21
Génération de fichiers avec une ligne par établissement géographique, coordonnées en WGS84 longitude latitude (EPSG:4326) et encodage en UTF-8
library(data.table)
library(sf)
library(tidyr)
library(leaflet)
library(dplyr)
# télécharger le fichier FINESS géocodé le plus récent et le renommer finess_geocoded_latest.csv
fi1 = fread("finess_geocoded_latest.csv",encoding="Latin-1",colClasses = "character")
n = nrow(fi1)
fi2 = fread("finess_geocoded_latest.csv",encoding="Latin-1",colClasses = "character",skip = n+1,sep=";")
@phileas-condemine
phileas-condemine / shiny-oauth.r
Last active December 22, 2020 21:13 — forked from hadley/shiny-oauth.r
Sketch of shiny + oauth
library(shiny)
library(httr)
library(shinydashboard)
library(magrittr)
mykey = paste(sample(LETTERS,20,replace = T),collapse="")#should be secret
# OAuth setup --------------------------------------------------------
# Most OAuth applications require that you redirect to a fixed and known
# set of URLs. Many only allow you to redirect to a single URL: if this
# is the case for, you'll need to create an app for testing with a localhost
@phileas-condemine
phileas-condemine / TD_word2vec_glove.Rmd
Last active June 23, 2020 15:06
Exemple d'utilisation des techniques word2vec & GloVe en R
## Word2vec & GloVe
Certains chercheurs mettent à disposition des modèles word2vec, GloVe, LSA qui peuvent être considérés comme des tables de correspondance entre des mots et un vecteur numérique dans un espace d'une certaine taille (en générale très inférieure à la taille du vocabulaire qui est, on le rappelle, grande). Cet espace est un espace "sémantique" en quelques sortes.
Glove, Word2vec et LSA produisent tous les 3 des vectorisations du langage ie des représentations dans un espace vectoriel réel de taille N (choisie)
- word2vec : s'appuie sur un simple perceptron multi-couches (réseau de neurone) à une couche cachée (de taille N) où la tâche est de prédire le mot en fonction du contexte ou réciproquement. La vectorisation en dimension N est fournie par l'ensemble des poids des neurones de la couche cachée.
- global vector : s'appuie sur la factorisation de la matrice de co-occurrence des termes.
- LSA : s'appuie sur la décomposition en valeurs singulières de la matrice termes-documents.
@phileas-condemine
phileas-condemine / bike_rental.R
Created February 3, 2020 14:31
Benchmark glmnet svr xgboost sur un problème de régression
#------------------
# Data Preparation
#------------------
library(data.table)
library(ggplot2)
library(plotly)
#Read datasets
#Download the data from http://www.saedsayad.com/datasets/BikeRental.zip
train <- read.csv("data/BikeRental/bike_rental_train.csv")
test <- read.csv("data/BikeRental/bike_rental_test.csv")
@phileas-condemine
phileas-condemine / lsa_tsne_lemonde
Last active November 4, 2019 18:18
le monde => text prep => stemming => prune low freq words => DTM | cooc | cosine-sim => SVD => tsne => plotly
# https://joparga3.github.io/Udemy_text_analysis/#document-similarity-cosine-similarity-and-latent-semantic-analysis
library(data.table)
library(tm)
library(SnowballC)
library(Rtsne)
library(irlba)
library(plotly)
# articles =fread("data_text_mining/lemonde_csv_formation.csv",encoding='UTF-8')
# données scrapées avec le gist scraping_lemonde
scrape = pbapply::pblapply(list.files("lemonde_scraping/"),function(x){
@phileas-condemine
phileas-condemine / harvest_lemonde
Last active November 4, 2019 18:50
Un script pour collecter les en-têtes d'articles du site Le Monde.fr à des fins exploratoire (text mining)
library(rvest)
library(data.table)
annees=1980:2019
annee = sample(annees,1)
pbapply::pblapply(annees,function(annee){
pbapply::pblapply(1:250,function(i){
tryCatch({
url = sprintf(paste0("https://www.lemonde.fr/recherche/",
"?search_keywords=a&start_at=01/01/%s&",
@phileas-condemine
phileas-condemine / Batch_Route_with_OSRM
Last active August 30, 2019 16:00
This script routes the 2M population squares (of 200m x 200m) with 10 nearest maternity wards (defined with flying distance w. FNN) per 50k batches
library(data.table)
prep_data=F
if(prep_data){
# https://www.insee.fr/fr/statistiques/2520034
carreaux=foreign::read.dbf("external_data/carroyage_200m.dbf")
carreaux=data.table(carreaux)
head(carreaux)
carreaux[,idINSPIRE:=as.character(idINSPIRE)]
#############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######
#### GRRRRR FUCKING ECRITURE SCIENTIFIQUE !!!! #####
#############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######
# FIX !!!! options(scipen = 999)
one_mat= NN[mater==mater_id]
lon_lat_mat=one_mat[1,c("lon_mater","lat_mater")]%>%paste(collapse=",")
divide_and_conquer <- function(data,mater_id,position = "0"){
print(paste(position,nrow(data)))