1.线性回归
线性回归是利用连续性变量来估计实际数值(比如房价等),我们通过线性回归算法找出自变量和因变量的最佳线性关系,图形上可以确定一条最佳的直线.这条最佳直线就是回归线.线性回归关系可以用Y=ax+b表示.
在这个Y=ax+b这个公式里:
Y=因变量
a =斜率
x=自变量
b=截距
a和b可以通过最下化因变量误差的平方和得到(最小二乘法)
我们可以假想一个场景来理解线性回归.比如你让一个五年级的孩子在不问同学具体体重多少的情况下,把班上的同学按照体重从轻到重排队。这个孩子会怎么做呢?他有可能会通过观察大家的身高和体格来排队。这就是线性回归!这个孩子其实是认为身高和体格与人的体重有某种相关。而这个关系就像是前一段的Y和X的关系。
给大家画一个图,方便理解,下图用的线性回归方程是Y=0.28x+13.9.通过这个方程,就可以根据一个人的身高预测他的体重信息.
线性回归还分为:一元线性回归和多元线性回归.很明显一元只有一个自变量,多元有多个自变量.
拟合多元线性回归的时候,可以利用多项式回归或曲线回归
.
Import Library
from sklearn import linear_model
.
.
.
.
x_train=input_variables_values_training_datasets
.
.
y_train=target_variables_values_training_datasets
.
.
x_test=input_variables_values_test_datasets
.
.
.
.
Create linear regression object
.
.
linear = linear_model.LinearRegression()
.
.
.
.
Train the model using the training sets and check score
.
.
linear.fit(x_train, y_train)
.
.
linear.score(x_train, y_train)
.
.
.
.
#Equation coefficient and Intercept
.
.
print(‘Coefficient: \n’, linear.coef_)
.
.
print(‘Intercept: \n’, linear.intercept_)
.
.
.
.
#Predict Output
.
.
predicted= linear.predict(x_test)
.
2.逻辑回归
逻辑回归最早听说的时候以为是回归算法,其实是一个分类算法,不要让他的名字迷惑了.通常利用已知的自变量来预测一个离散型因变量的值(通常是二分类的值).简单来讲,他就是通过拟合一个Lg来预测一个时间发生的概率,所以他预测的是一个概率值,并且这个值是在0-1之间的,不可能出这个范围,除非你遇到了一个假的逻辑回归!
同样用例子来理解:
假设你的一个朋友让你回答一道题。可能的结果只有两种:你答对了或没有答对。为了研究你最擅长的题目领域,你做了各种领域的题目。那么这个研究的结果可能是这样的:如果是一道十年级的三角函数题,你有70%的可能性能解出它。但如果是一道五年级的历史题,你会的概率可能只有30%。逻辑回归就是给你这样的概率结果。
数学又来了,做算法这行业是离不开数学的,还是好好学学数学吧
最终事件的预测变量的线性组合就是:
.
odds= p/ (1-p) = probability of event occurrence / probability of not event occurrence
.
.
.
.
ln(odds) = ln(p/(1-p))
.
.
.
.
logit§ = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3…+bkXk
.
在这里,p是我们感兴趣的事件出现的概率.他通过筛选出特定参数值使得观察到的样本值出现的概率最大化,来估计参数,而不是像普通回归那样最小化误差的平方和.
至于有的人会问,为什么需要做对数呢?简单来说这是重复阶梯函数的最佳方法.
.
from sklearn.linear_model import LogisticRegression
.
.
.
.
model = LogisticRegression()
.
.
.
.