简单的线性回归预测房价

#!/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 笔记的更多相关文章

  1. python 10大算法之二 LogisticRegression 笔记

    使用的包 import matplotlib.pyplot as plt import pandas as pd import numpy as npfrom sklearn import datas ...

  2. 数据挖掘10大算法(1)——PageRank

    1. 前言 这系列的文章主要讲述2006年评出的数据挖掘10大算法(见图1).文章的重点将偏向于算法的来源以及算法的主要思想,不涉及具体的实现.如果发现文中有错,希望各位指出来,一起讨论. 图1 来自 ...

  3. 数据结构笔记01:编程面试过程中常见的10大算法(java)

    以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念.由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍.本文将从Java的角度看问题,包含下面的这些概念: ...

  4. 面试10大算法汇总——Java篇

    问题导读 1 字符串和数组 2 链表 3 树 4 图 5 排序 6 递归 vs 迭代 7 动态规划 8 位操作 9 概率问题 10 排列组合 11 其他 -- 寻找规律 英文版 以下从Java角度解释 ...

  5. 面试10大算法汇总+常见题目解答(Java)

    原文地址:http://www.lilongdream.com/2014/04/10/94.html(为转载+整理) 以下从Java的角度总结了面试常见的算法和数据结构:字符串,链表,树,图,排序,递 ...

  6. JavaScript实现10大算法可视化

    参考博客: https://www.cnblogs.com/Unknw/p/6346681.html#4195503 十大经典算法 一张图概括: 名词解释: n:数据规模 k:“桶”的个数 In-pl ...

  7. python聚类算法实战详细笔记 (python3.6+(win10、Linux))

    python聚类算法实战详细笔记 (python3.6+(win10.Linux)) 一.基本概念:     1.计算TF-DIF TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库 ...

  8. Python十大经典排序算法

    现在很多的事情都可以用算法来解决,在编程上,算法有着很重要的地位,将算法用函数封装起来,使程序能更好的调用,不需要反复编写. Python十大经典算法: 一.插入排序 1.算法思想 从第二个元素开始和 ...

  9. 人们对Python在企业级开发中的10大误解

    From : 人们对Python在企业级开发中的10大误解 在PayPal的编程文化中存在着大量的语言多元化.除了长期流行的C++和Java,越来越多的团队选择JavaScript和Scala,Bra ...

随机推荐

  1. animation 动画

    语法 animation: name duration timing-function delay iteration-count direction fill-mode play-state ani ...

  2. Disconf 分布式配置管理平台(安装配置)

    Disconf 分布式配置管理平台(安装配置) 依赖环境 Nginx:处理静态资源请求.动态请求转发到Tomcat Tomcat:处理Nginx的请求 Redis:用户session管理 MySQL: ...

  3. MySQL INSERT UPATE DELETE语句

    插入完整一行 INSERT INTO customers(cust_name,cust_contact,cust_email,cust_address,cust_city,cust_state,cus ...

  4. EF CodeFirst系列(6)---配置1对1,1对多,多对多关系

    这一节介绍EF CodeFirst模式中的1对0/1,1对多,多对多关系的配置,只有梳理清楚实体间的关系,才能进行愉快的开发,因此这节虽然很简单但是还是记录了一下. 1. 1对0/1关系配置 1. 通 ...

  5. Django2.1,Xadmin2.0下的问题记录

    此篇博文长期更新…… 环境: Ubuntu18.04, Python3.6, Django2.1, Xadmin2.0 1. Xadmin添加用户小组件时报错:xadmin render() got ...

  6. 入门嵌入式选择2440?树莓派?STM32?4412开发板?

    如果了解一下当前IT和物联网发展的形势,就会发现Android工程师越来越受欢迎,相比之下单纯的Linux工程师却逊色不少,当然,Android系统的内核也是Linux的,Linux和Android作 ...

  7. 分布式系列七: zookeeper简单用法

    zookeeper是分布式开源框架, 是Google Chubby的一个实现, 主要作为分布式系统的协调服务. Dobbo等框架使用了其功能. zookeeper特性 顺序一致性: 事务请求最终会严格 ...

  8. 使用工具intellij idea 进行java web开发简介

    一.工具下载及安装准备 1.首先下载工具  Intellij idea ,下载地址:https://www.jetbrains.com/ 2.破解 百度下载一个 JetbrainsCrack-2.7- ...

  9. 手写代码 - java.util.Arrays 相关

    1-拷贝一个范围内的数组 Arrays.copyOfRange( array, startIndex, endIndex); include startIndex... exclude endInde ...

  10. hiho 1098 最小生成树二·Kruscal算法 (最小生成树)

    题目: 时间限制:10000ms 单点时限:1000ms 内存限制:256MB   描述 随着小Hi拥有城市数目的增加,在之间所使用的Prim算法已经无法继续使用了——但是幸运的是,经过计算机的分析, ...