ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ML01 LinearRegression

2021-09-19 22:02:16  阅读:181  来源: 互联网

标签:plt linear ML01 poly train LinearRegression test import


ML实战:线性回归+多项式回归

  • 本次实验采用的数据集是sklearn内置的波斯顿房价数据集

代码实现

from sklearn import datasets
from sklearn.linear_model import LinearRegression
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
import sys

np.set_printoptions(suppress=True)#取消科学计数法输出


x=datasets.load_boston().data
y=datasets.load_boston().target
#初始化数据集

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=0)
#拆分成训练集和测试集,测试集占20%

X = np.arange(1, len(y_test) + 1)
#用于画图使用

def showres(y_predict,name=None):
    #画图打印结果
    plt.figure(figsize=(20,8),dpi=80)
    plt.title(name)
    plt.plot(X,y_test,label='real',color='red')
    plt.scatter(X,y_test,color='blue')
    plt.plot(X,y_predict,label='predict',color='green')
    plt.scatter(X,y_predict,color='blue')
    plt.legend(loc=[1, 0])
    #plt.savefig('E:/Python/ml/pic/LinearRegression_'+name+".png")

def linear_poly():
    #多项式回归
    poly=PolynomialFeatures(degree=2)#设置阶数为2
    x_train_poly=poly.fit_transform(x_train)
    x_test_poly=poly.fit_transform(x_test)
    linear=LinearRegression()
    linear.fit(x_train_poly,y_train)
    showres(linear.predict(x_test_poly),name='PolynomialFeatures')

def linear():
    #线性回归
    transfer=StandardScaler()
    x_train_standard=transfer.fit_transform(x_train)
    x_test_standard=transfer.fit_transform(x_test)
    linear=LinearRegression()
    linear.fit(x_train_standard,y_train)
    showres(linear.predict(x_test_standard),name='LinearRegression')


linear()
linear_poly()

sys.exit(0)

结果

线性回归

多项式回归

标签:plt,linear,ML01,poly,train,LinearRegression,test,import
来源: https://www.cnblogs.com/MrDaddy/p/15312906.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有