机器学习笔记--回归 线性回归&多项式回归--房屋面积与房价的关系

1.数据集

两列数据,分别是房屋面积和房屋价格

2.回归

回归的分类:一般分为线性回归(Linear Regression), 多项式回归(Ploynomial Regression), 岭回归(Ridge Regression),Lasso回归和弹性回归网络(ElasticNet Regression).具体介绍参考https://blog.csdn.net/u013181595/article/details/80517537

此次实验中仅使用线性回归(Linear Regression), 多项式回归(Ploynomial Regression)进行回归预测

 

3.代码实现

# -*- coding: utf-8 -*-
"""
Created on Mon Oct 28 15:49:09 2019

@author: zhang
"""
#线性回归
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt

dataset_X=[]
dataset_y=[]

f = open(***\机器学习\LinearRegression\prices.txt','r')
dataset = f.readlines()

for line in dataset:
    item = line.split(',')
    dataset_X.append(int(item[0]))
    dataset_y.append(int(item[1]))
    
dataset_X = np.array(dataset_X).reshape([len(dataset_X),1])
dataset_y = np.array(dataset_y).reshape([len(dataset_X),1])

LR = LinearRegression()
LR.fit(dataset_X,dataset_y)

X_max=int(max(dataset_X))
X_min=int(min(dataset_y))
X = np.arange(X_min,X_max).reshape([-1,1])

ax =plt.subplot(211)
ax.scatter(dataset_X,dataset_y,c='r')
ax.plot(X,LR.predict(X),c='g')
ax.set_xlabel('sqare')
ax.set_ylabel('price')
ax.set_title('the relationshaip between sqare and price')
plt.show

#多项式回归
#这里仅有面积一项因此为一元多项式回归
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
import matplotlib.pyplot as plt

dataset_X=[]
dataset_y=[]

f = open(***\机器学习\LinearRegression\prices.txt','r')
dataset = f.readlines()

for line in dataset:
    item = line.split(',')
    dataset_X.append(int(item[0]))
    dataset_y.append(int(item[1]))
    
dataset_X = np.array(dataset_X).reshape([len(dataset_X),1])
dataset_y = np.array(dataset_y).reshape([len(dataset_X),1])
poly_reg = PolynomialFeatures(degree = 2)
X_poly = poly_reg.fit_transform(dataset_X)

LR = LinearRegression()
LR.fit(X_poly,dataset_y)

X_max=int(max(dataset_X))
X_min=int(min(dataset_y))
X = np.arange(X_min,X_max).reshape([-1,1])

ax1 = plt.subplot(212)
ax1.scatter(dataset_X,dataset_y,c='r')
ax1.plot(X,LR.predict(poly_reg.fit_transform(X)),c='b')
ax1.set_xlabel('sqare')
ax1.set_ylabel('price')
ax1.set_title('the relationshaip between sqare and price')
plt.show()


 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值