• 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

     

  • 相关阅读:
    使用jedis连接redis
    布隆过滤器redis缓存
    SQL与NOSQL
    Charles 移动端抓包工具,使用方法以及注意事项
    安装npm包的时候报错rollbackFailedOptional: verb npm-session
    You may need an appropriate loader to handle this file type.
    数组去重
    判断两个数组是否相等(包括数组里边的键值对是否相等)
    数组里的字符串转为数字
    背景色铺满整个屏幕
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/13270705.html
Copyright © 2020-2023  润新知