文章适合于所有的相关人士进行学习
各位看官看完了之后不要立刻转身呀
期待三连关注小小博主加收藏
小小博主回关快 会给你意想不到的惊喜呀
先说一下爬虫的相关内容,因为最近也正在做相关后续的爬虫知识,剩下的一个抓包过程在以后的博客中我们会继续进行讲解。然后讲一下我们接下来将要更新的任务。我们接下来会主要讲解有关于机器学习方面的相关经典算法,包括实战内容,并且会带大家去做一些相关实战,然后涉及到的数据分析与挖掘还有爬虫的知识请各位大佬进行相关了解,或者后续通过我的博客继续学习!!!
当我们在进行机器学习的过程当中,由于会有较多的数据推导过程,所以会导致有的时候会很难理解,但是我们要保持守门员精神,不要轻言放弃,跟住!!!
我们初中的时候就已经了解过甚至进行学习过简单的线性回归,包括y=kx+b,y=x2这种简单的线性方程式。那么什么是一元线性回归模型呢?我们又可以使用它做什么呢?
下面我们来看一个例子:
这个不难看出,这是一个关乎于工作年限和工资的一个对应关系,这个我估计是描述程序员的!很明显工作年限和工资有一种线性关系,而且工作年限是因,工资是果,那么有没有一种关系可以对其进行刻画呢?
于是我们进行了这样的一种刻画,其中a代表截距项,简单理解就是我们的y=kx+b中的b,b为斜率项也就是我们常说的k,那么其中的ᵰ 什么呢?就是误差项,也就是说我们图中数据点和线的距离。
那么我们就像,如果我们这条拟合线如果拟合的十分完美的话,那么就应该是所有的点都在这条直线上,也就是误差项应该是0,但是这种状态在现实情况中在做机器学习的时候基本上无法实现。所以我们放宽一点政策,反过来想,就是误差项如果越小,是不是就说明我们这条拟合线拟合的就越好!
那么我们就以这个为目标,开始进行探索。
这里就是我们对于误差平方和的推导,其实就是用到了我们高数中学到的偏导数等于0的这个特点求最小值。最终我们求出了a和b这两个参数对应的数值。
这里我们原理就介绍完了,然后我们进入代码部分。
这里我们用到的是anaconda3下面的jupyter来实现这个功能然后我们可以再利用python来具体的去实现一下。
首先我们导入相关的库,在这之前我们要介绍一个这个库。
首先导入第三方模块
import statsmodels.api as sm
sm.ols(formula, data, subset=None, drop_cols=None)
formula:以字符串的形式指定线性回归模型的公式,如’y~x’就表示简单线性回归模型
data:指定建模的数据集
subset:通过bool类型的数组对象,获取data的子集用于建模
drop_cols:指定需要从data中删除的变量
import pandas as pd
import statsmodels.api as sm
#数据读入
income=pd.read_csv("Salary_Data.csv")
#相关数据请到我的下载资源中获取
#拟合
fit=sm.formula.ols('Salary~YearsExperience',data=income).fit()
#输出参数
fit.params
我们根据前面的数学推导可以知道我们需要求样本总数n,n个x*y的和,n个x的和,n个y的和。
import pandas as pd
income=pd.read_csv('Salary_Data.csv',delimiter=',')
#其中delimiter表示定界符
n=income.shape[0]
#样本量
sum_x=income.YearsExperience.sum()
sum_y=income.Salary.sum()
sum.x2=income.YearsExperience.pow(2).sum()
xy=income.YearsExperience*income.Salary
sum_xy=xy.sum()
a=income.Salary.mean()-b*income.YearsExperience.mean()
b=(sum_xy-sum_x*sum_y/n)/(sum.x2-sum_x**2/n)
print(a)
print(b)
这里就是把我们推导的过程完美呈现出来了!!!有助于大家理解,今天我们到这里了。
具体的anaconda的安装教程请根据csdn中相关大佬进行安装,直接搜索就可以。
文章适合于所有的相关人士进行学习
各位看官看完了之后不要立刻转身呀
期待三连关注小小博主加收藏
小小博主回关快 会给你意想不到的惊喜呀