zoukankan      html  css  js  c++  java
  • 用线性回归简单预测波士顿房价

    这次我们会用线性回归来预测波士顿的房价

    首先是导入波士顿房价的数据,这是sklearn中的datasets自带的

    from sklearn import datasets
    boston = datasets.load_boston()

    先用key方法查看数据集

    print(boston.keys())

    得到结果

    dict_keys(['data', 'target', 'feature_names', 'DESCR'])

    这里的data有13个维度,target就是我们要预测的房价,接下来再查看feature_names

    print(boston['feature_names'])
    ['CRIM' 'ZN' 'INDUS' 'CHAS' 'NOX' 'RM' 'AGE' 'DIS' 'RAD' 'TAX' 'PTRATIO' 'B' 'LSTAT']

    其中'RM'列就是我们需要的房间数,接下为了方便处理,我们将其转为DataFrame类型,并进行数据划分得到训练集和测试集

    data = pd.DataFrame(boston['data'],columns=boston['feature_names'])
    x = pd.DataFrame(data['RM'],columns=['RM'])
    y = pd.DataFrame(boston['target'],columns=['target'])
    x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.33, random_state=42)

    接下来训练线性回归模型,并进行预测

    lr = LinearRegression()
    lr.fit(x_train,y_train)
    y_pre = lr.predict(x_test)

    为了评价模型的好坏,我们将从以下的均方误差(MSE),均方根误差(RMSE),平均绝对误差(MAE),R Squared

    from sklearn.metrics import r2_score
    from sklearn.metrics import mean_squared_error 
    from sklearn.metrics import mean_absolute_error 
    print(r2_score(y_test,y_pre))
    print(mean_absolute_error(y_test,y_pre))
    print(mean_squared_error(y_test,y_pre))

    结果为

    0.4834590168919489
    4.271512885857222
    39.09105111486995

    下面用python实现这四种评价指标

    def MSE(y_test,y_pre):
        print(((y_test - y_pre)**2).sum() / len(y_pre))
    def RMSE(y_test,y_pre):
        print((((y_test - y_pre)**2).sum() / len(y_pre))**0.5)
    def MAE(y_test,y_pre):
        y1 = np.array(y_test)
        y2 = np.array(y_pre)
        print(np.sum(np.absolute(y1 - y2))/len(y1))
    def r2_score_(y_test,y_pre):
        print(1 - ((y_test - y_pre)**2).sum() / ((y_test - y_test.mean())**2).sum())
    
    MSE(y_test,y_pre)
    MAE(y_test,y_pre)
    r2_score_(y_test,y_pre)

    结果为

    target    39.091051
    dtype: float64
    4.271512885857222
    target    0.483459
    dtype: float64
  • 相关阅读:
    linux:centOs7换源阿里云
    nginx:负载均衡实战(一)
    linux-安装jdk以及tomcat
    nginx:在linux上进行nginx的安装
    开源 免费 java CMS
    使用PHP获取汉字的拼音(全部与首字母)
    php版获取重定向后地址的代码分享
    php获取数组中重复数据的两种方法
    php删除html标签的三种解决方法
    php curl 伪造IP来源的代码分享
  • 原文地址:https://www.cnblogs.com/mambakb/p/10467383.html
Copyright © 2011-2022 走看看