• 线性回归

  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Wed Aug 30 19:55:37 2017
  4.  
  5. @author: Administrator
  6. """
  7.  
  8. '''
  9. 背景:与房价密切相关的除了单位的房价,还有房屋的尺寸。我们可以根
  10. 据已知的房屋成交价和房屋的尺寸进行线性回归,继而可以对已知房屋尺
  11. 寸,而未知房屋成交价格的实例进行成交价格的预测
  12. '''
  13.  
  14. import matplotlib.pyplot as plt
  15. import numpy as np
  16. from sklearn import linear_model
  17.  
  18. # 读取数据集
  19. datasets_X = []
  20. datasets_Y = []
  21. fpath='F:\\RANJIEWEN\\MachineLearning\\Python机器学习实战_mooc\\data\\回归\\'
  22. fr = open(fpath+'prices.txt','r')
  23. lines = fr.readlines()
  24. for line in lines:
  25. items = line.strip().split(',')
  26. datasets_X.append(int(items[0]))
  27. datasets_Y.append(int(items[1]))
  28.  
  29. length = len(datasets_X)
  30. datasets_X = np.array(datasets_X).reshape([length,1])
  31. datasets_Y = np.array(datasets_Y)
  32.  
  33. minX = min(datasets_X)
  34. maxX = max(datasets_X)
  35. X = np.arange(minX,maxX).reshape([-1,1])
  36.  
  37. linear = linear_model.LinearRegression()
  38. linear.fit(datasets_X, datasets_Y)
  39.  
  40. # 图像中显示
  41. plt.scatter(datasets_X, datasets_Y, color = 'red')
  42. plt.plot(X, linear.predict(X), color = 'blue')
  43. plt.xlabel('Area')
  44. plt.ylabel('Price')
  45. plt.show()
  • 多项式回归

  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Wed Aug 30 20:24:09 2017
  4.  
  5. @author: Administrator
  6. """
  7.  
  8. '''
  9. 我们在前面已经根据已知的房屋成交价和房屋的尺寸进行了线
  10. 性回归,继而可以对已知房屋尺寸,而未知房屋成交价格的实例进行了成
  11. 交价格的预测,但是在实际的应用中这样的拟合往往不够好,因此我们在
  12. 此对该数据集进行多项式回归。
  13.  
  14. '''
  15.  
  16. import matplotlib.pyplot as plt
  17. import numpy as np
  18. from sklearn import linear_model
  19. from sklearn.preprocessing import PolynomialFeatures
  20.  
  21. # 读取数据集
  22. datasets_X = []
  23. datasets_Y = []
  24.  
  25. fpath='F:\\RANJIEWEN\\MachineLearning\\Python机器学习实战_mooc\\data\\回归\\'
  26. fr = open(fpath+'prices.txt','r')
  27. lines = fr.readlines()
  28. for line in lines:
  29. items = line.strip().split(',')
  30. datasets_X.append(int(items[0]))
  31. datasets_Y.append(int(items[1]))
  32.  
  33. length = len(datasets_X)
  34. datasets_X = np.array(datasets_X).reshape([length,1])
  35. datasets_Y = np.array(datasets_Y)
  36.  
  37. minX = min(datasets_X)
  38. maxX = max(datasets_X)
  39. X = np.arange(minX,maxX).reshape([-1,1])
  40.  
  41. poly_reg = PolynomialFeatures(degree = 2)
  42. X_poly = poly_reg.fit_transform(datasets_X)
  43. lin_reg_2 = linear_model.LinearRegression()
  44. lin_reg_2.fit(X_poly, datasets_Y)
  45.  
  46. # 图像中显示
  47. plt.scatter(datasets_X, datasets_Y, color = 'red')
  48. plt.plot(X, lin_reg_2.predict(poly_reg.fit_transform(X)), color = 'blue')
  49. plt.xlabel('Area')
  50. plt.ylabel('Price')
  51. plt.show()
  • 岭回归

  • 还有就是容易过拟合,才出现了岭回归,L2正则项

  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Wed Aug 30 20:33:00 2017
  4.  
  5. @author: Administrator
  6. """
  7.  
  8. '''
  9. 数据介绍:
  10. 数据为某路口的交通流量监测数据,记录全年小时级别的车流量。
  11. 实验目的:
  12. 根据已有的数据创建多项式特征,使用岭回归模型代替一般的线性模型,对
  13. 车流量的信息进行多项式回归。
  14. '''
  15.  
  16. import numpy as np
  17.  
  18. from sklearn.linear_model import Ridge
  19. from sklearn import cross_validation
  20. import matplotlib.pyplot as plt
  21. from sklearn.preprocessing import PolynomialFeatures
  22.  
  23. fpath='F:\RANJIEWEN\MachineLearning\Python机器学习实战_mooc\data\回归\岭回归.csv'
  24.  
  25. data=pd.read_csv(fpath,encoding='gbk',parse_dates=[0],index_col=0)
  26.  
  27. #data.sort_index(0,ascending=True,inplace=True)
  28.  
  29. X=data.iloc[:,:4] ##语法
  30. y=data.iloc[:,4]
  31. poly=PolynomialFeatures(6) #设置多项式的最高次数
  32. X=poly.fit_transform(X)
  33.  
  34. train_set_X,test_set_X,train_set_y,test_set_y= \
  35. cross_validation.train_test_split(X,y,test_size=0.3,random_state=0) #设置测试集的比例,random_state随机数种子
  36.  
  37. clf=Ridge(alpha=1.0,fit_intercept=True)
  38. clf.fit(train_set_X,train_set_y)
  39. clf.score(test_set_X,test_set_y)
  40.  
  41. #plot
  42. start=200
  43. end=300
  44. y_pre=clf.predict(X)
  45. time=np.arange(start,end)
  46. plt.plot(time,y[start:end],'b',label='real')
  47. plt.plot(time,y_pre[start:end],'r',label='predict')
  48. plt.legend(loc='upper left')
  49. plt.show()
  • Lasso回归,添加L1正则项,具有稀疏解

Python机器学习--回归的更多相关文章

  1. 吴裕雄 python 机器学习——回归决策树模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_s ...

  2. python机器学习《回归 一》

    唠嗑唠嗑 依旧是每一次随便讲两句生活小事.表示最近有点懒,可能是快要考试的原因,外加这两天都有笔试和各种面试,让心情变得没那么安静的敲代码,没那么安静的学习算法.搞得第一次和技术总监聊天的时候都不太懂 ...

  3. 常用python机器学习库总结

    开始学习Python,之后渐渐成为我学习工作中的第一辅助脚本语言,虽然开发语言是Java,但平时的很多文本数据处理任务都交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处 ...

  4. [Python] 机器学习库资料汇总

    声明:以下内容转载自平行宇宙. Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy.其中Numpy是一个用python实现的科学计算包.包括: 一个强大的N维数组对象Array: ...

  5. 2016年GitHub排名前20的Python机器学习开源项目(转)

    当今时代,开源是创新和技术快速发展的核心.本文来自 KDnuggets 的年度盘点,介绍了 2016 年排名前 20 的 Python 机器学习开源项目,在介绍的同时也会做一些有趣的分析以及谈一谈它们 ...

  6. [resource]Python机器学习库

    reference: http://qxde01.blog.163.com/blog/static/67335744201368101922991/ Python在科学计算领域,有两个重要的扩展模块: ...

  7. python机器学习实战(四)

    python机器学习实战(三) 版权声明:本文为博主原创文章,转载请指明转载地址 www.cnblogs.com/fydeblog/p/7364317.html 前言 这篇notebook是关于机器学 ...

  8. python机器学习工具包

    1. scikit-learn: Machine Learning in Python scikit-learn是一个基于NumPy, SciPy, Matplotlib的开源机器学习工具包,主要涵盖 ...

  9. Python机器学习:5.6 使用核PCA进行非线性映射

    许多机器学习算法都有一个假设:输入数据要是线性可分的.感知机算法必须针对完全线性可分数据才能收敛.考虑到噪音,Adalien.逻辑斯蒂回归和SVM并不会要求数据完全线性可分. 但是现实生活中有大量的非 ...

随机推荐

  1. CSS3-文本-text-overflow

    text-overflow 语法: text-overflow : clip | ellipsis 取值说明: 1.clip:表示不显示省略标记(...),而只是简单的裁切,需要在一定的高度范围内配合 ...

  2. Perl学习之四:语句

    语句:if/unless while/foreach/do..while/for 1.表达式真价值总结任何表达式都有真假值:逻辑.字符串.列表.文件 2.if if(expression1){ sta ...

  3. Objective-C urlEncode urlDecode

    @interface NSString (stringByDecodingURLFormat) - (NSString *)stringByDecodingURLFormat; - (NSString ...

  4. cs229_part3

    接下来就是最最最重要的一个有监督学习算法了. 支持向量机 问题背景 样本集表示: \[(x,y)\in D, x\in R^n, y\in \{-1,+1\}\] 回到之前的逻辑回归模型中: 逻辑回归 ...

  5. awk之NF的妙用

       在awk中大家都知道NF的作用,它是一个awk的内建变量,代表是每行的字段数量.常用的几种方式我给大家慢慢到来.最多的就是在读取每个字段内容 for(i=1;i<=NF;i++) 这个运用 ...

  6. IntelliJ IDEA 类和方法注释的生成以及Javadoc的简单使用记录

    idea,设置类注释和,方法注释的常见的设置方法(不同的版本设置方法有所偏差,简单记录一些目前自己在使用的方法,) 方法注释:在keyMap中搜索Fix doc comment ,后点击右键设置一个快 ...

  7. Knockout v3.4.0 中文版教程-9-计算监控-API参考

    5.参考 下面的内容描述了如何构建和使用计算监控. 1. 构建一个计算监控 可以用如下的形式构建一个计算监控: ko.computed( evaluator [, targetObject, opti ...

  8. 九度oj 题目1104:整除问题

    题目描述: 给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除. 输入: 两个整数n(2<=n<=1000),a(2<=a<=1000) 输出: 一个整数. ...

  9. MySQL 子查询优化案例

    开发人员给了一个sql ,结构如下delete from B where ID in (select NID from H where guid='xxx'); 内部sql满足条件的结果集只有一条,但 ...

  10. 对拍程序(Win)

    代码如下: @echo off :again rand.exe echo "rand finish" asd.exe echo "1.exe finish" 未 ...