博文

目前显示的是 七月, 2019的博文

pause 暂停 开始

#remotes::install_github("thebioengineer/pause") set.seed(42) library(tidyverse) library(pause) df<-data.frame(x=LETTERS,y=runif(26),z=sample(letters,26,replace = TRUE)) df2<-data.frame(x=LETTERS,w=sample(c(1,2),size = 26,replace = TRUE)) df %>%   mutate(vowel=LETTERS%in%c("A","E","I","O","U","Y")) %>%   filter(y>.5) %//%   df2 %>%   filter(w==1) %>>>%   left_join(by="x") %>%   filter(!is.na(w)) df %>%   mutate(vowel=LETTERS%in%c("A","E","I","O","U","Y")) %>%   filter(y>.5) %//%   filter(y>.75) %>>>%   bind_rows(.x1,.x2)

tidymodels

library(butcher) #在R中对流水线进行建模有时会导致拟合的模型对象占用太多内存。 # 为了充分利用您的内存,此软件包提供了五个S3泛型,您可以删除模型对象的一部分: # axe_call():删除调用对象。 # axe_ctrl():删除与训练相关的控件。 # axe_data():删除原始训练数据。 # axe_env():删除环境。 # axe_fitted():删除拟合值。 our_model <- function() {   some_junk_in_the_environment <- runif(1e6) # we didn't know about   lm(mpg ~ ., data = mtcars) } # 适合数据库内的模型。 modeldb适用于大多数数据库后端,因为它利用dplyr和dbplyr进行算法的最终SQL转换。 它目前支持: # K均值聚类 线性回归 library(modeldb) con <- DBI::dbConnect(RSQLite::SQLite(), path = ":memory:") RSQLite::initExtension(con) dplyr::copy_to(con, mtcars) library(dplyr) tbl(con, "mtcars") %>%   select(wt, mpg, qsec) %>%   linear_regression_db(wt) km <- tbl(con, "mtcars") %>%   simple_kmeans_db(mpg, wt) colnames(km) dbplyr::remote_query(km) # rsample包含一组函数,可以为其分析创建不同类型的重新采样和相应的类。目标是拥有一组模块化方法,可以在不同的R包中使用: # 用于估计统计量和采样分布的传统重采样技术 # 使用保持集估计模型性能 # rsample的范围是为创建和分析数据集的重采样提供基本构建块,但不包括用于建模或计算统计数据的代码。 “使用重新采样集”小插图演示了如何使用rsample工具。 library(rsample) library(mlben

ymlthis包

#remotes::install_github("rstudio-education/ymlthis") library(ymlthis) yml() %>%   yml_author(c("Yihui Xie", "Hadley Wickham"), affiliation = "RStudio") %>%   yml_date(lubridate::today()) %>%   yml_title("Reproducible Research in R") %>%   yml_category(c("r", "reprodicibility")) %>%   yml_output(     pdf_document(keep_tex = TRUE,toc = TRUE, includes = includes2(after_body = "footer.tex")),     bookdown::html_document2()   ) %>%   yml_latex_opts(biblio_style = "apa-like") yml(author = FALSE, date = FALSE) %>%   yml_author("Yihui Xie") %>%   yml_date("02-02-2002") %>%   yml_title("R Markdown: An Introduction") %>%   yml_subtitle("Introducing ymlthis") %>%   yml_abstract("This paper will discuss a very important topic") %>%   yml_keywords(c("r", "reproducible research")) %>%   yml_subject(&quo

tidymodels包

library(broom) fit <- lm(Sepal.Width ~ Petal.Length + Petal.Width, iris) summary(fit) #tidy()生成一个tibble(),其中每一行都包含有关模型重要组件的信息。 #对于回归模型,这通常对应于回归系数。 如果要检查模型或创建自定义可视化,这可能很有用。 tidy(fit) #glance()返回一个恰好有一行模型自生的度量和相关统计数据的tibble。 #这对于检查模型错误指定和比较许多模型很有用。 glance(fit) #augment将数据列添加到数据集,其中包含拟合值,残差或群集分配等信息。 添加到数据集的所有列都有。 前缀以防止覆盖现有列。 augment(fit, data = iris) library(parsnip) #统一模型调用接口和参数 rand_forest(mtry = 12, trees = 2000) %>%   set_engine("ranger", importance = 'impurity') %>%   fit(y ~ ., data = dat) rand_forest(mtry = 12, trees = 2000) %>%   set_engine("spark") %>%   fit(y ~ ., data = dat) library(modeldb) #数据库中拟合模型 con <- DBI::dbConnect(RSQLite::SQLite(), path = ":memory:") RSQLite::initExtension(con) dplyr::copy_to(con, mtcars) tbl(con, "mtcars") %>%   select(wt, mpg, qsec) %>%   linear_regression_db(wt) km <- tbl(con, "mtcars") %>%   simple_kmeans_db(mpg, wt) library(recipes) #用于创建和预处理可用于建模或可视化的设计矩阵的替代方

modelr模型

library(tidyverse) library(modelr) data("sim3") mod1 <- lm(y ~ x1 + x2, data = sim3) mod2 <- lm(y ~ x1 * x2, data = sim3) #分布均匀的数值网格,找出其中的唯一值,然后生成所有组合 grid <- sim3 %>%   data_grid(x1, x2) %>%   #两个模型同时生成预测   gather_predictions(mod1, mod2) ggplot(sim3, aes(x1, y, color = x2)) +   geom_point() +   geom_line(data = grid, aes(y = pred)) +   facet_wrap(~ model) sim3 <- sim3 %>%   gather_residuals(mod1, mod2) ggplot(sim3, aes(x1, resid, color = x2)) +   geom_point() +   facet_grid(model ~ x2)

corrr包

# install.packages(“remotes”) #remotes :: install_github(“tidymodels / corrr”) library(MASS) library(corrr) set.seed(1) # 模拟三列,相关性为.7 mu <- rep(0, 3) Sigma <- matrix(.7, nrow = 3, ncol = 3) + diag(3)*.3 seven <- mvrnorm(n = 1000, mu = mu, Sigma = Sigma) # 模拟三列,相关性为.4  mu <- rep(0, 3) Sigma <- matrix(.4, nrow = 3, ncol = 3) + diag(3)*.6 four <- mvrnorm(n = 1000, mu = mu, Sigma = Sigma) # Bind together d <- cbind(seven, four) colnames(d) <- paste0("v", 1:ncol(d)) # Insert some missing values d[sample(1:nrow(d), 100, replace = TRUE), 1] <- NA d[sample(1:nrow(d), 200, replace = TRUE), 5] <- NA # Correlate x <- correlate(d) class(x) library(dplyr) # Filter rows by correlation size x %>% filter(v1 > .6) x <- datasets::mtcars %>%   correlate() %>%    #创建相关数据框(cor_df)   focus(-cyl, -vs, mirror = TRUE) %>%  #专注于没有'cyl'和'vs'的cor_df   rearrange() %>%  #重新排列相关性   shave() #shave()上三角或下三角(设置为NA) #漂亮印花的相关性 fashion(x) #与

gather spread 使用

data("mtcars") library(tidyverse) mtcars %>%   spread(am,mpg) ->mtcars_wide %>%   gather(key=variable, value,-c(cyl,disp,hp)) # gather(data, key, value, …, na.rm = FALSE, convert = FALSE) # data:需要被转换的宽形表 # key:将原数据框中的所有列赋给一个新变量key # value:将原数据框中的所有值赋给一个新变量value # …:可以指定哪些列聚到同一列中 # # spread(data, key, value, fill = NA, convert = FALSE, drop = TRUE) # data:为需要转换的长形表 # key:需要将变量值拓展为字段的变量 # value:需要分散的值 # fill:对于缺失值,可将fill的值赋值给被转型后的缺失值 # # unite(data, col, …, sep = “_”, remove = TRUE) # data:为数据框 # col:被组合的新列名称 # …:指定哪些列需要被组合 # sep:组合列之间的连接符,默认为下划线 # remove:是否删除被组合的列 unite(mtcars_wide,testname, disp, hp, sep= "-") ->mtcars_wide # separate()函数可将一列拆分为多列,一般可用于日志数据或日期时间型数据的拆分,语法如下: # # separate(data, col, into, sep = “[^[:alnum:]]+”, remove = TRUE, #          convert = FALSE, extra = “warn”, fill = “warn”, …) # data:为数据框 # col:需要被拆分的列 # into:新建的列名,为字符串向量 # sep:被拆分列的分隔符 # remove:是否删除被分割的列 separate(mtcars_wide, testname,c("disp","hp"), sep = &

R 变量名小写

lowercase <- function(data) {   if (!require("tidyverse")) install.packages("tidyverse")   names(data) <- data %>% names() %>% tolower()   return(data) } iris <- lowercase(iris)

Googlenew

from bs4 import BeautifulSoup as soup import pandas as pd import urllib.request import urllib class GoogleNews(): def __init__(self): self.texts = [] self.links = [] self.results = [] def search(self, key): self.key = "+".join(key.split(" ")) self.getpage() def getpage(self, page=1): self.user_agent='Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:64.0) Gecko/20100101 Firefox/64.0' self.headers={'User-Agent':self.user_agent} ##中文url做了特殊处理 self.url="https://www.google.com/search?q="+urllib.parse.quote(self.key)+"&tbm=nws&start=%d" % (10*(page-1)) try: self.req=urllib.request.Request(self.url, headers=self.headers) self.response=urllib.request.urlopen(self.req) self.page=self.response.read() self.content=soup(self.page, "html.parser") result=self.content.find(id="ires").find_all("div", class_="g") for item in result: self.texts.append(item.find("h3").text) self.

python selenium

from selenium import webdriver from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup import time import pandas as pd driver = webdriver.Firefox() driver.get('https://www.google.com/') #https://news.google.cn #https://scholar.google.com/ q = driver.find_element_by_name('q') q.send_keys('疫苗') q.send_keys(Keys.RETURN) #time.sleep(5) titles=[] links=[] for p in range(3): soup = BeautifulSoup(driver.page_source, 'lxml') for element in soup.select("#rso div.r a"): #print(ele.text) for i in element.select('h3'): titles.append(i.text) links.append(element['href']) time.sleep(1) driver.find_element_by_link_text('下一頁').click() for a in soup.find_all('a', href=True): print(a['href']) soup.find_all('h3') all_href = soup.find_all('a',href=True) all_href = [l['href'] for l in all_href]

tidymodels交叉验证教程

library("tidyverse") library("tidymodels") library("parsnip") library("brotools") library("mlbench") #随机森林预测房价 data("BostonHousing2") head(BostonHousing2) boston <- BostonHousing2 %>%   select(-medv, -town, -lon, -lat) %>%   rename(price = cmedv) #删除了town , lat和lon因为列栏中包含的信息就足够了。 #为了训练和评估模型的性能,数据分成两部分。 训练集分为两个训练集,测试集最后使用。 train_test_split <- initial_split(boston, prop = 0.9) housing_train <- training(train_test_split) housing_test <- testing(train_test_split) #我想训练一个随机森林来预测房屋的价格,但随机森林有所谓的超参数,这些参数是无法从数据中估算或学习的参数。 #相反,这些参数必须由分析师选择。 为了选择它们,您可以使用似乎运行良好的文献中的值(如在宏计量经济学中完成)或者您可以进一步将列车集拆分为两个,创建超参数网格,在一个上训练模型网格的所有值的部分数据,并比较数据的第二部分上的模型的预测。 #然后,您将坚持使用最佳性能的模型,例如,具有最低RMSE的模型。 问题是,您无法仅使用一个值来估计RMSE的真实值。 这就像你想通过从人口中抽取一个单一的观察来估计人口的高度。 #为了给出一组超参数的RMSE的真实值,而不是做一次拆分,我会做30.然后计算平均RMSE,这意味着为超参数的每个值的组合训练30个模型我有兴趣。 #先让我们使用{rsample}包中的mc_cv()函数再次拆分训练数据。 此函数实现蒙特卡罗交叉验证: validation_data <- mc_cv(housing_train, prop = 0.9, times = 30)

python 获取文件夹下指定后悔的文件名

import os import pandas def file_name(file_dir): L = [] for root, dirs, files in os.walk(file_dir): for file in files: if os.path.splitext(file)[1] == '.py': L.append(file[:-3]) return L name = file_name('/home/xuefliang/PycharmProjects/untitled/') print(type(name)) # df=pandas.DataFrame(name) # df.to_csv('/home/xuefliang/filename.csv')

python连接oracle数据库

import cx_Oracle import pandas as pd import numpy as np import os os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.UTF8' conn = cx_Oracle.connect('****/****@192.168.30.12:1521/JZDB1') print(conn) cursor = conn.cursor() cursor.execute('select * from SYS_XZQH_ZZJG') result = cursor.fetchall() df = pd.DataFrame(result)

Ubuntu 安装twisted

 sudo apt-get install python3-setuptools sudo apt-get install python3-dev sudo pip3 install twisted