zoukankan      html  css  js  c++  java
  • sklearn学习笔记之简单线性回归

    来自:Magle

    简单线性回归

    线性回归的思想其实就是解一组方程,得到回归函数,不过在出现误差之后,方程的解法就存在改变,一般使用最小二乘法计算。

    使用sklearn.liner_model.LinearRegression进行线性回归

    sklearn对Data Mining的各类算法已经有了较好的封装,基本可以使用fitpredictscore来训练、预测、评价模型。一个简单的例子如下:

    >>> from sklearn import linear_model
    >>> clf = linear_model.LinearRegression()
    >>> X = [[0. 0], [1, 1], [2, 2]]
    >>> y = [0, 1, 2]
    >>> clf.fit(X, y)
    >>> print(clf.coef_)
    [0.5 0.5]
    
    >>> print(clf.intercept_)
    1.11022302463e-16

    LinearRegression已经实现了多元线性回归模型,当然,也可以用来计算一元线性模型.

    使用方法 

    实例化 

    使用clf = LinearRegression()就可以完成,下面是可能会用到的参数:

    • fit_intercept:是否存在截距,默认存在
    • normalize:标准化开关,默认关闭

    回归 

    fit进行回归计算:

    • fit(X, y, sample_weight = None):X, y以矩阵的方式传入,而sample_weight则是每条测试数据的权重,同样以array格式传入。
    • predict(X):预测方法,将返回预测值y_pred
    • score(X, y, sample_weight = None):评价函数,将返回一个小于1的得分,可能会小于0

    方程

    LinearRegression将方程分为两个部分存放,coef_存放回归系数,intercept_则存放截距,因此要查看方程,就是查看这两个变量的取值。

    多项式回归

    其实,多项式就是多元回归的一个变种,只不过是原来需要传入的是X向量,而多项式则只要一个X值就行。通过将x扩展为指定阶数的向量,就可以使用LinearRegression进行回归了。sklearn已经提供了扩展的方法——sklearn.preprocessing.PolynomialFeatures。利用这个类可以轻松的将x扩展为X向量,如下:

    >>> from sklearn.preprocessing import PolynomialFeatures
    >>> X_train = [[1],[2],[3],[4]]
    >>> quadratic_featurizer = PolynomialFeatures(degree=2)
    >>> X_train_quadratic = quadratic_featurizer.fit_transform(X_train)
    >>> print(X_train_quadratic)
    [[ 1  1  1]
     [ 1  2  4]
     [ 1  3  9]
     [ 1  4 16]]

    经过以上处理,就可以使用LinearRegression进行回归计算了。

  • 相关阅读:
    BroadcastReceiver总结
    一二三(The Seventh Hunan Collegiate Programming Contest)
    使用 JQueryMobile 点击超链接提示“error loading page” 错误
    盒子游戏(The Seventh Hunan Collegiate Programming Contest)
    遗留系统升级改造方案思路
    根据外接鼠标控制笔记本触摸板禁用或启用
    设计模式之策略模式
    android4.3环境搭建
    清晰明亮的白色lua协程(coroutine)
    基于JUnit和Ant测试程序正在运行使用Kieker(AspectJ)监测方法
  • 原文地址:https://www.cnblogs.com/keye/p/8833515.html
Copyright © 2011-2022 走看看