zoukankan      html  css  js  c++  java
  • scikit-learn机器学习(一)简单线性回归

     

    # -*- coding: utf-8 -*-
    import numpy as np
    import matplotlib.pyplot as plt
    ## 设置字符集,防止中文乱码
    import matplotlib
    matplotlib.rcParams['font.sans-serif']=[u'simHei']
    matplotlib.rcParams['axes.unicode_minus']=False
    
    
    # X为披萨的直径
    X = np.array([[6],[8],[10],[14],[18]]).reshape(-1,1)
    # y是披萨的价格
    y = [7,9,13,17.5,18]
    
    plt.figure()
    plt.title('披萨直径和价格的关系')
    plt.xlabel("直径")
    plt.ylabel("价格")
    plt.plot(X,y,'ro')
    plt.axis([0,25,0,25])
    plt.grid(True)
    
    # 建立线性回归模型
    from sklearn.linear_model import LinearRegression
    LR = LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,
                     normalize=False)
    #参数介绍
    #fit_intercept:是否有截据,如果没有则直线过原点。
    #normalize:是否将数据归一化。
    #copy_X:默认为True,当为True时,X会被copied,否则X将会被覆写。(这一参数的具体作用没明白,求大神指教了)
    #n_jobs:默认值为1。计算时使用的CPU核数。
    LR.fit(X,y)
    
    
    # 画出图
    # 输出斜率
    print(LR.coef_)
    # 输出截距
    print(LR.intercept_)
    xx=range(0,25)
    yy = LR.coef_*xx+LR.intercept_
    plt.plot(xx,yy,'g')
    
    # 输出RSS残差平方和
    print("RSS:%.2f" % np.mean((LR.predict(X)-y)**2))
    
    
    # 预测一个直径之前从未见过的披萨价格
    test_pizza = np.array([[12]])
    predicted_price = LR.predict(test_pizza)[0]
    print("预测直径为%d的披萨价格为 $%f" % (12,predicted_price))
    
    # 评价模型
    # score可以直接输出R方
    X_test = np.array([8,9,11,16,12]).reshape(-1,1)
    y_test = [11,8.5,15,18,11]
    r_squared = LR.score(X_test,y_test)
    print(r_squared)

    print(LR.coef_)
    [0.9762931]
    
    print(LR.intercept_)
    1.965517241379315
    
    print("RSS:%.2f" % np.mean((LR.predict(X)-y)**2))
    RSS:1.75
    
    print("预测直径为%d的披萨价格为 $%f" % (12,predicted_price))
    预测直径为12的披萨价格为 $13.681034
    
    print(r_squared)
    0.6620052929422553

     

  • 相关阅读:
    揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器&开源项目介绍
    打造一个上传图片到图床利器的插件(Mac版 开源)
    游戏编程十年总结(下)
    游戏编程十年总结(上)
    使用“Cocos引擎”创建的cpp工程如何在VS中调试Cocos2d-x源码
    手机网游实时同步方案
    Unity AssetBundle爬坑手记
    Unity3D新手引导开发手记
    敏捷开发随笔(一)高效软件开发之道
    U3D DrawCall优化手记
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/11184454.html
Copyright © 2011-2022 走看看