使用sklearn解决回归问题

依然是加载数据

  import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets boston = datasets.load_boston()
X = boston.data
y = boston.target X = X[y < 50.0]
y = y[y < 50.0]

通过shape看X矩阵中的结构

  X.shape

然后对数据集进行切分,由于sklearn中的随机和分割方法不同,因此,使用自己的会比较能体现出来,但是,我懒得改了

  from sklearn.model_selection import train_test_split

  X_train,X_test,y_train,y_test =       train_test_split(X,y,random_state=666)

在sklearn中使用线性回归

引用并实例化

  from sklearn.linear_model import LinearRegression

  lin_reg = LinearRegression()

将X_train,y_train传进去,进行fit

  lin_reg.fit(X_train,y_train)

查看其中的内容

lin_reg.coef_

lin_reg.intercept_

lin_reg.score(X_test,y_test)

Knn regressor

我们也可以使用knn来解决回归问题

先到用相应的类并对其进行初始化,k默认为5,在fit以后,最后看一下准确率

  from sklearn.neighbors import KNeighborsRegressor

  knn_reg = KNeighborsRegressor()
knn_reg.fit(X_train,y_train)
knn_reg.score(X_test,y_test)

knn中含有超参数,我们使用网格搜索的方式来搜索一下相应的超参数,需要定义数组规定范围,创建变量构造函数,使用并行处理(-1为全部核心),并进行输出

  from sklearn.model_selection import GridSearchCV
param_grid = [
{
'weights':['uniform'],
'n_neighbors':[i for i in range(1,11)]
},
{
'weights':['distance'],
'n_neighbors':[i for i in range(1,11)],
'p': [i for i in range(1,6)]
}
] knn_reg = KNeighborsRegressor()
grid_search = GridSearchCV(knn_reg,param_grid ,n_jobs=-1,verbose=1)
grid_search.fit(X_train,y_train)

得到结果以后可以简单地来看看最好的结果(不知道为啥,很多计算的数据结果我都和课程不一样,不知道是电脑问题还是版本问题)

  grid_search.best_params_

预测准确率

  grid_search.best_score_

为了得到相同的衡量标准的预测率结果,来真正看基于网格搜索算法的结果

  grid_search.best_estimator_.score(X_test,y_test)

这是不如线性回归的结果的

但是也是有一部分原因是因为使用网格搜索的时候我们比较实用的score是 GridSearchCV中的score的计算方法,我们没有挑出来使用我们这组数据中的score的来获得的最佳参数,不能武断的说某算法不如某算法,要结合应用环境以及场景才行

【笔记】使用scikit-learn解决回归问题的更多相关文章

  1. (原创)(四)机器学习笔记之Scikit Learn的Logistic回归初探

    目录 5.3 使用LogisticRegressionCV进行正则化的 Logistic Regression 参数调优 一.Scikit Learn中有关logistics回归函数的介绍 1. 交叉 ...

  2. (原创)(三)机器学习笔记之Scikit Learn的线性回归模型初探

    一.Scikit Learn中使用estimator三部曲 1. 构造estimator 2. 训练模型:fit 3. 利用模型进行预测:predict 二.模型评价 模型训练好后,度量模型拟合效果的 ...

  3. 【笔记】SVM思想解决回归问题

    使用svm思想解决回归问题 使用svm思想解决是如何解决回归问题,其中回归问题的本质就是找一条线,能够最好的拟合数据点 怎么定义拟合就是回归算法的关键,线性回归算法就是让预测的直线的MSE的值最小,对 ...

  4. Scikit Learn: 在python中机器学习

    转自:http://my.oschina.net/u/175377/blog/84420#OSC_h2_23 Scikit Learn: 在python中机器学习 Warning 警告:有些没能理解的 ...

  5. scikit learn 模块 调参 pipeline+girdsearch 数据举例:文档分类 (python代码)

    scikit learn 模块 调参 pipeline+girdsearch 数据举例:文档分类数据集 fetch_20newsgroups #-*- coding: UTF-8 -*- import ...

  6. UFLDL深度学习笔记 (二)SoftMax 回归(矩阵化推导)

    UFLDL深度学习笔记 (二)Softmax 回归 本文为学习"UFLDL Softmax回归"的笔记与代码实现,文中略过了对代价函数求偏导的过程,本篇笔记主要补充求偏导步骤的详细 ...

  7. 机器学习:SVM(SVM 思想解决回归问题)

    一.SVM 思想在解决回归问题上的体现 回归问题的本质:找到一条直线或者曲线,最大程度的拟合数据点: 怎么定义拟合,是不同回归算法的关键差异: 线性回归定义拟合方式:让所有数据点到直线的 MSE 的值 ...

  8. Scikit Learn

    Scikit Learn Scikit-Learn简称sklearn,基于 Python 语言的,简单高效的数据挖掘和数据分析工具,建立在 NumPy,SciPy 和 matplotlib 上.

  9. 《机器学习实战》学习笔记第五章 —— Logistic回归

    一.有关笔记: 1..吴恩达机器学习笔记(二) —— Logistic回归 2.吴恩达机器学习笔记(十一) —— Large Scale Machine Learning 二.Python源码(不带正 ...

随机推荐

  1. Redis和Memcached到底有什么区别?

    前言 我们都知道,Redis和Memcached都是内存数据库,它们的访问速度非常之快.但我们在开发过程中,这两个内存数据库,我们到底要如何选择呢?它们的优劣都有哪些?为什么现在看Redis要比Mem ...

  2. php-高级计算器

    HTML代码: <!doctype html><html lang="en"><head> <meta charset="UTF ...

  3. 解决数据库连接池连接mysql时,每隔8小时mysql自动断开所有连接的问题

    解决数据库连接池连接mysql时,每隔8小时mysql自动断开所有连接的问题 最近有个问题非常讨厌,我们的工程中使用自己的连接池连接mysql数据库,可mysql数据库每隔8小时就会自动断开所有链接, ...

  4. 看看PHP迭代器的内部执行过程(转)

      1 class myIterator implements Iterator { 2 private $position = 0; 3 private $array = array( 4 &quo ...

  5. 严重:Exception sending context initialized event to listener instance of class [myJava.MyServletContextListener] java.lang.NullPointerException

    以上错误是我在自定义Servlet监听器时遇到的,首先大致介绍一下我要实现的功能(本人刚开始学,如有错误,请多多指正): 为了统计网站访问量,防止服务器重启后,原访问次数被清零,因此自定义监听器类,实 ...

  6. XCTF_RE-Crc-300

    这题讲道理其实还算简单的,还以为是啥算法呢..吓我一跳..拖入ida之后,发现逻辑还是挺清晰的 这个是关键函数,第一个if就可以求出后10个字符是啥了.. 接下就是对一个列表的赋值,然后就是一个dow ...

  7. TransE 算法学习笔记

    http://yaoleo.github.io/2017/10/27/TransE算法的理解/ tranE是在模型中嵌入知识图谱等三元组类的一个方法,就像是句子利用词典嵌入一样.

  8. ROS笔记一

    1.lwip:瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈.实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用. 2.RTOS:实时操作 ...

  9. Outlook配置163邮箱

    一.在163邮箱设置处设置POP3/SMTP/IMAP 二.开启客户端授权码 三.打开Outlook,选择手动设置 选择POP/IMAP 密码是上文中的授权码 点击其它设置,勾选以下选项 点击完成即可

  10. 交换机H3C S3100V2-52TP-WiNet

    H3C S3100V2-52TP-WiNet参数  使用手册三层交换机 默认管理IP:192.168.0.234 将电脑IP设置为192.168.0.0这一组,网络连接交换机,默认用户名密码都为adm ...