一些概念
连续型因变量:线性回归模型
离散型因变量(分类问题):逻辑回归、决策树
离散型因变量只有2个取值:二分类问题
线性回归的四大条件 线性回归方程
做线性回归的时候一般需满足:
1)线性(L):因变量与自变量之间呈线性关系;
2)独立(I):各观测值相互独立;
3)正态(N):自变量(X)固定时所对应的因变量(Y)服从正态分布;
4)方差齐(E):不同自变量取值下因变量的方差相等
多重共线性
多重共线性是指线性回归模型中解释变量之间由于存在精确相关关系或高度相关关系而导致模型估计失真或难以估计
可以对线性模型中的每个输入特征计算其方差膨胀因子(VIF)VIF>10 具有极大可能性共线
KNN和K-means的区别
KNN属于监督学习,类别已知,通过对已知分类的数据进行训练和学习,找不同类的特征,再对未分类的数据进行分类。
K-means属于无监督学习,事先不知道数据会分为几类,通过聚类分析将数据聚合成几个群体。聚类不需要对数据进行训练和学习。
一、KNN算法
#使用iris数据集,该数据集是由4个特征Sepal.Length,Sepal.Width,Petal.Length,Petal.Width和一个标签(类别)构成;
#随机给定一个样本,需要判断该样本属于哪个类别?
new_sample <- c(4.8,2.9,3.7,1.7)
names(new_sample) <- c("Sepal.Length","Sepal.Width","Petal.Length","Petal.Width")
new_sample
#去掉标签列,只保留特征列
iris_features <- iris[1:4]
#构造一个函数,用于计算每两个点之间的距离(欧氏距离)
dist_eucl <- function(x1,x2) sqrt(sum((x1-x2) ^2))
#计算测试样本点(也就是待分类点)到iris_features里每个点的距离。apply函数中的1代表按行循环;(1表示按行,2表示按列)
distances <- apply(iris_features,1,function(x) dist_eucl(x,new_sample))
#对计算后的距离进行排序
distances_sorted <- sort(distances,index.return = T)
#查看这个数据框当中有哪些变量,以及变量的类型
str(distances_sorted)
#选取距离最近的前5个点
nn5 <- iris[distances_sorted$ix[1:5],] #ix包含了对应观测数据的行号
nn5