最新回归算法理解、实现及应用(1)线性回归

来源:互联网 发布:2k16捏脸数据科比 编辑:程序博客网 时间:2024/06/06 07:31

一、回归模型间的关系,回归是统计学中最有力的算法之一:

1.1 回归:(regression):用已知样本对未知公式参数的估计,给出一个点集D,用一个函数去拟合这个点集,并且使得点集与拟合函数间的误差最小,如果这个函数曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归

1.2.线性回归(linear regression):回归的一种,回归函数是一次函数,例如:f(x,y,z,…)=ax+by+cz+…+…其中x,y,z是训练样本集中样本的各个特征(feature),a,b,c是模型的未知参数。

1.3.逻辑回归(logistic regression):将result归一化到[0, 1]区间,即使用一个逻辑方程将线性回归归一化。


二 、线性回归(linear regression)

线性回归中的函数并不是指线性函数,属于监督学习。

hθ(x)=θ0+θ1x

我们常称x为feature,h(x)为hypothesis

diabetes dataset (数据集)

  • 样本总数 442
  • 维数 10 这里只用到了1维
  • 特征范围-.2 < x < .2
  • 标签:integer 25 - 346

#_*_ coding:utf-8 _*_#__author__=="dragon"import matplotlib.pyplot as plt import numpy as np from sklearn import datasets,linear_model#从sklearn中导入数据diabetes = datasets.load_diabetes()#只用到数据集中的一种特征diabetes_x = diabetes.data[:,np.newaxis,2]#将数据分成训练和测试集diabetes_x_train = diabetes_x[:-20]##442diabetes_x_test = diabetes_x[-20:]##20##将标签分为测试和训练集合diabetes_y_train = diabetes.target[:-20]diabetes_y_test = diabetes.target[-20:]##建立一个线线回归对象regr = linear_model.LinearRegression()#训练regr.fit(diabetes_x_train,diabetes_y_train)#coefficientsprint('coefficients = %f\n' % float(regr.coef_))##均方误差(残差)print('Residual sum of squares: %.2f' % np.mean((regr.predict(diabetes_x_test)-diabetes_y_test)**2))##变异指数,为1时最优print('variance score: %.2f' % regr.score(diabetes_x_test,diabetes_y_test))##输出图plt.scatter(diabetes_x_test,diabetes_y_test,color='red')plt.plot(diabetes_x_test,regr.predict(diabetes_x_test),color='blue',linewidth=3)plt.xticks(())plt.yticks(())plt.show()

输出结果:

coefficients = 938.237861Residual sum of squares: 2548.07variance score: 0.47

输出图片:

这里写图片描述

源码地址:

我戳!!!!!

1 0
原创粉丝点击