python 10大算法之一 LinearRegression 笔记
简单的线性回归预测房价
- #!/usr/bin/env python
- # encoding: utf-8
- """
- @version:
- @author: --*--.
- @file: LinearRegression.py
- @time: 2018/11/1 11:05
- @desc:
- """
- # Required Packages
- import matplotlib.pyplot as plt
- import numpy as np
- from sklearn import linear_model
- def get_data():
- """
- 生成随机的线性数据集
- :return:
- """
- x = 100 * np.random.rand(100, 1).astype(np.float32)
- y = 2 * x + 10 # 直线
- # y = 7 * x ** 5 + 3 * x + 10 # 曲线
- y += 50 * np.random.rand(100, 1).astype(np.float32)
- return x, y
- # Function for Fitting our data to Linear model
- def linear_model_main(X_parameters, Y_parameters, predict_value):
- # Create linear regression object
- regr = linear_model.LinearRegression()
- regr.fit(X_parameters, Y_parameters,sample_weight=None) # 权重
- predict_outcome = regr.predict(predict_value)
- predictions = {}
- predictions['intercept'] = regr.intercept_
- predictions['coefficient'] = regr.coef_
- predictions['predicted_value'] = predict_outcome
- return predictions
- # Function to show the resutls of linear fit model
- def show_linear_line(X_parameters, Y_parameters, predictvalue):
- # Create linear regression object
- regr = linear_model.LinearRegression()
- regr.fit(X_parameters, Y_parameters)
- fig = plt.figure()
- ax1 = fig.add_subplot(111)
- # 设置标题
- ax1.set_title('Housing Forecast')
- ax1.scatter(X_parameters, Y_parameters, color='blue', marker='*')
- ax1.plot(X_parameters, regr.predict(X_parameters), color='c', linewidth=1)
- # 画点
- ax1.scatter(predictvalue, regr.predict(predictvalue), color='red')
- # 画水平虚线
- plt.axvline(x=predictvalue, ls='dotted', color='y')
- plt.axhline(y=regr.predict(predictvalue), ls='dotted', color='y')
- plt.xlabel('x:area')
- plt.ylabel('y:price')
- plt.show()
- if __name__ == "__main__":
- X, Y = get_data()
- predictvalue = 90 # 面积
- # 新版必须2维哦
- predictvalue = np.array(predictvalue,dtype=np.int32).reshape(1, -1)
- result = linear_model_main(X, Y, predictvalue)
- print("截距-Intercept value ", result['intercept'])
- print("回归系数-coefficient", result['coefficient'])
- print("y-Predicted value: ", result['predicted_value'])
- print("面积 %d 的价格预测为 %d" % (predictvalue, result['predicted_value']))
- show_linear_line(X, Y, predictvalue)
输出结果为:
- /usr/bin/python3.5 /home/think-hxr/PycharmProjects/MachineLearningAlgorithms/LinearRegression.py
- Intercept value [ 38.77058411]
- coefficient [[ 1.92119944]]
- Predicted value: [[ 211.67853379]]
- 面积 90 的价格预测为 211
画图:
python 10大算法之一 LinearRegression 笔记的更多相关文章
- python 10大算法之二 LogisticRegression 笔记
使用的包 import matplotlib.pyplot as plt import pandas as pd import numpy as npfrom sklearn import datas ...
- 数据挖掘10大算法(1)——PageRank
1. 前言 这系列的文章主要讲述2006年评出的数据挖掘10大算法(见图1).文章的重点将偏向于算法的来源以及算法的主要思想,不涉及具体的实现.如果发现文中有错,希望各位指出来,一起讨论. 图1 来自 ...
- 数据结构笔记01:编程面试过程中常见的10大算法(java)
以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念.由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍.本文将从Java的角度看问题,包含下面的这些概念: ...
- 面试10大算法汇总——Java篇
问题导读 1 字符串和数组 2 链表 3 树 4 图 5 排序 6 递归 vs 迭代 7 动态规划 8 位操作 9 概率问题 10 排列组合 11 其他 -- 寻找规律 英文版 以下从Java角度解释 ...
- 面试10大算法汇总+常见题目解答(Java)
原文地址:http://www.lilongdream.com/2014/04/10/94.html(为转载+整理) 以下从Java的角度总结了面试常见的算法和数据结构:字符串,链表,树,图,排序,递 ...
- JavaScript实现10大算法可视化
参考博客: https://www.cnblogs.com/Unknw/p/6346681.html#4195503 十大经典算法 一张图概括: 名词解释: n:数据规模 k:“桶”的个数 In-pl ...
- python聚类算法实战详细笔记 (python3.6+(win10、Linux))
python聚类算法实战详细笔记 (python3.6+(win10.Linux)) 一.基本概念: 1.计算TF-DIF TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库 ...
- Python十大经典排序算法
现在很多的事情都可以用算法来解决,在编程上,算法有着很重要的地位,将算法用函数封装起来,使程序能更好的调用,不需要反复编写. Python十大经典算法: 一.插入排序 1.算法思想 从第二个元素开始和 ...
- 人们对Python在企业级开发中的10大误解
From : 人们对Python在企业级开发中的10大误解 在PayPal的编程文化中存在着大量的语言多元化.除了长期流行的C++和Java,越来越多的团队选择JavaScript和Scala,Bra ...
随机推荐
- Djangon
2.怎么样从浏览器获得用户输入的数据? request.浏览器的八种申请方式.get(条件) request.浏览器的八种申请方式[] request.浏览器的八种申请方式(这里什么也不要写)> ...
- this指针详解
什么是this this是一个const指针,存的是当前对象的地址,指向当前对象,通过this指针可以访问类中的所有成员. 当前对象是指正在使用的对象,比如a.print(),a就是当前对象. 关于t ...
- Codeforces 1082B Vova and Trophies(前缀+后缀)
题目链接:Vova and Trophies 题意:给定长度为n的字符串s,字符串中只有G和S,只允许最多一次操作:任意位置的两个字符互换.求连续G的最长长度. 题解:维护pre和pr,nxt和nx. ...
- Cucumber环境配置
1.JDK下载和配置 2.Maven下载和环境配置 3.IDEA下载和Cucumber插件安装 下载地址官网,一般IDEA自带cucumber插件 如果没有安装过的话,点击以下进行搜索安装,安装完成后 ...
- 解决CentOS出现"No package redis available"提示问题
[root@bogon src]# yum install redis Loaded plugins: fastestmirror, langpacks Repository base is list ...
- Python并发编程之IO模型
目录 IO模型介绍 阻塞IO(blocking IO) 非阻塞IO(non-blocking IO) IO多路复用 异步IO IO模型比较分析 selectors模块 一.IO模型介绍 Stevens ...
- bootstrap浅谈
学习地址:http://www.runoob.com/bootstrap/bootstrap-tutorial.html 自己练习了下 主要是使用了bootstrap中包含的class类样式,只要给相 ...
- 深入学习c++(虚函数遇到析构函数就退化了)
1. 在构造函数和析构函数中调用的虚函数并不具备虚函数的特性 因为基类的构造函数先构造, 析构函数后析构
- velocity 新手用小常识--开源,简单易上手
项目中经常用到的 .vm 后缀文件是什么? 基于 java 的 velocity 模版引擎的一种页面控制文件,是一些类似 html 语句和一种叫 VLT 的语句构成 velocity --美 [v ...
- C# 执行oracle sql 语句出现中文不兼容的问题
最近我用C#调用 操作oracle 数据库 出现了一个问题就是 我的查询语中的条件语句 含有中文 字符在C#中查询不了 ,但是在pl sql 中能够正常的查询出来. 这个原因是 C# 执行orccl ...