8.1 机器学习—R语言-线性回归

机器学习就是拟人
数据+算法-->找规律
大数据公司主要分四类:
1,数据拥有者,数据源,PB级数据的包子铺
2,大数据咨询公司,Cloudera--CDH
3,大数据工具公司,Databricks--Apache Shark
4,整合应用型,结合机器学习来解决更多实际的痛点
机器学习是什么
已有的数据(经验)
某种模型(迟到的规律)
利用此模型预测未来(是否迟到)
机器学习界“数据为王”思想
R语言
主要用于 统计分析绘图数据挖掘
环境安装:
R-3.1.3-win.exe------->相当于JDK
RStudio-0.99.447.exe-------->相当于eclipse
安装R-3.1.3-win.exe的时候路径注意不要有汉字和空格
R语言的数据结构:
向量
R的基本数据结构式向量。向量存储一组有序的值,称为元素
R中的向量有固有的顺序,所以其数据能通过计算向量中各元 素的序号来访问,序号是从1开始
因子
因子是向量的一个特例,它单独用来标识名义属性
把字符型向量转换成因子,只需要应用factor()函数
列表
一种特殊类型的向量--列表,它用来存储一组有序的值
列表允许收集不同类型的值
用列表构建”对象”进行访问
数组
数据框
机器学习中使用的最重要的R数据结构就是数据框,因为它既 有行数据又有列数据,所以它是一个与电子表格或数据库相类 似的结构
提取其中的整个向量数据,就如列表提取一个元素那么简单, 通过名字
数据框是二维的,格式为“[rows, columns]”也可以提取数据
矩阵
保存和加载R数据结构:
save(x,y,z, file="mydata.RData")
load("mydata.RData")
用CSV文件导入和保存数据:
#stringsAsFactors=FALSE指的是读入的数据中的字符串数据是否要变成属性数据
pt_data <- read.csv("pt_data.csv", stringsAsFactors=FALSE)
#header=FALSE指的是第一列不是数据
pt_data <- read.csv("pt_data.csv", stringsAsFactors=FALSE, header=FALSE)
write.csv(pt_data, file="pt_data2.csv")
R语言中“<-”表示赋值,如“x <- 3”表示赋予对象x的值为3。请不要用等号!
R代码中“#”后边的都表示注释,不会被执行此时可输入中文。在代码中R语言支持中文但并不好,建议全英环境
读取指定路径文件:
setwd("D://data")#指定路径
insurance <- read.csv("insurance.csv", stringsAsFactors = TRUE)#上面指定路径下的文件
两个练习R文件:
dataManagement_dataUnderstanding.R:
subject_name <- c("John Doe","Jane Doe","Steve Graves")

temperature <- c(98.1, 98.6, 101.4)

flu_status <- c(FALSE, FALSE, TRUE)



temperature[2]

temperature[2:3]

temperature[-2]

temperature[c(TRUE,TRUE,FALSE)]



gender <- factor(c("MALE","MALE","FEMALE"))

gender

blood <- factor(c("O","AB","A"),levels = c("A","B","AB","O"))

blood



subject_name[1]

temperature[1]

flu_status[1]

gender[1]

blood[1]



subject1 <- list(fullname = subject_name[1],

                 temperature = temperature[1],

                 flu_status = flu_status[1],

                 gender = gender[1],

                 blood = blood[1])

subject1

subject1[2]

subject1$temperature

subject1[c("temperature","flu_status")]



pt_data <- data.frame(subject_name, temperature, flu_status, gender, blood, stringsAsFactors = FALSE)

pt_data

pt_data$subject_name

pt_data[c("temperature","flu_status")]



pt_data[1,2]

pt_data[c(1,3),c(2,4)]

pt_data[,1]

pt_data[1,]

pt_data[,]



pt_data[c(1,3),c("temperature","gender")]

pt_data[-2,c(-1,-3,-5)]



x <- subject_name

y <- subject1

z <- pt_data

save(x,y,z, file="mydata.RData")

load("mydata.RData")



pt_data <- read.csv("pt_data.csv", stringsAsFactors=FALSE)

pt_data <- read.csv("pt_data.csv", stringsAsFactors=FALSE, header=FALSE)



write.csv(pt_data, file="pt_data2.csv")



str(pt_data)

summary(pt_data$temperature)

summary(pt_data[c("gender","temperature")])



model_table <- table(pt_data$gender)

pmt <- prop.table(model_table)

round(pmt, digits=1)



plot(x = pt_data$temperature, y = pt_data$flu_status,

     main = "Temperature vs. Flu",

     xlab = "温度",

     ylab = "感冒")



mydb <- odbcConnect("127.0.0.1", uid="root", pwd="123123")
线性回归
对于简单线性回归问题,也就是小学大家就都会了的解应用题。 Y=a+bx
两个变量之间的相关系数是一个数,它表示两个变量服从一条 直线的关系有多麽紧密
相关系数就是指Pearson相关系数,它是数学家Pearson提出 来的,相关系数的范围是-1~+1之间,两端的值表示一个完美 的线性关系
相关系数接近于0则表示不存在线性关系。协方差函数cov(), 标准方差函数sd(),可以求出来cor()
多元线性回归insurance.R:保险费

insurance <- read.csv("insurance.csv", stringsAsFactors = TRUE)
str(insurance)

#既然因变量是charges,我们就来看一下它是如何分布的
summary(insurance$charges)
hist(insurance$charges)

table(insurance$region)
cor(insurance[c("age","bmi","children","charges")])
pairs(insurance[c("age","bmi","children","charges")])

library("psych")
pairs.panels(insurance[c("age","bmi","children","charges")])
#lm代表线性回归算法
ins_model <- lm (charges ~ age + children + bmi + sex + smoker + region, data=insurance)
ins_model <- lm(charges ~ . , data=insurance)
ins_model
summary(ins_model)

insurance$age2 <- insurance$age^2
insurance$bmi30 <- ifelse(insurance$bmi >= 30, 1, 0)

ins_models <- lm(charges ~ age + age2 + children + bmi + sex + bmi30*smoker + region , data=insurance)
summary(ins_models)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值