zoukankan      html  css  js  c++  java
  • ml的线性回归应用(python语言)

    线性回归的模型是:y=theta0*x+theta1   其中theta0,theta1是我们希望得到的系数和截距。

    下面是代码实例:

    1. 用自定义数据来看看格式:

    # -*- coding:utf-8 -*-
    
    from sklearn import linear_model
    from resys.SplitData import *
    from numpy import *
    import matplotlib.pyplot as plt
    
    ## 注意:
    ## python线性回归的数据输入格式
    ## x的每个值以列表格式存在
    x=[[150.0],[200.0],[250.0],[300.0],[350.0],[400.0],[600.0]]
    y=[6450.0,7450.0,8450.0,9450.0,11450.0,15450.0,18450.0]
    x_test=800.0
    
    #建模
    regr=linear_model.LinearRegression()
    regr.fit(x,y)
    regr.score(x,y)
    
    #返回系数和截距
    print("efficient :n", regr.coef_)
    print("intercept :n",regr.intercept_)
    
    #预测
    predicted=regr.predict(x_test)
    print ("predicted results: n",predicted)
    
    # ----------------------------------------------------
    # 描出训练点和拟合的直线
    def show_linear_line(x,y):
        regr=linear_model.LinearRegression()
        regr.fit(x,y)
        plt.scatter(x,y,color='blue')
        plt.plot(x,regr.predict(x),color='red',linewidth=4)
        plt.xticks(())
        plt.yticks(())
        plt.show()
    
    show_linear_line(x,y)

    2. 从文件中读取数据:

    # -*- coding:utf-8 -*-
    
    from sklearn import linear_model
    from resys.SplitData import *
    from numpy import *
    import matplotlib.pyplot as plt
    
    ## test是一个数据文件,包含4列,以tab分割
    #我们只需要取出第一列来作为x, 第三列作为y
    #然后把数据再分为两部分,训练集和测试集
    data3=open("e:/python/movie_ratings/test.dat","r")
    
    xlist=[]
    ylist=[]
    
    for data in data3:
        xlist.append(''.join(str(data.split('	')[0])))
        ylist.append(''.join(str(data.split('	')[2])))
    
    data3.close()
    
    xlist_train,xlist_test=SplitData(xlist, 7, 3, 10)  #SplitData是我自定义的切分函数
    ylist_train,ylist_test=SplitData(ylist, 7, 3, 10)
    
    x_train=[]              #这是第一种,把['1','2','3'] 转化为需要的[[1.0],[2.0],[3.0]]的方法
    for i in xlist_train:
        b=[]
        b.append(float(i))
        x_train.append(b)
    
    x_test=[]                             #第二种,更简便明了一些
    for i in xlist_test:
        x_test.append([float(i)])
    
    y_train=[float(i) for i in ylist_train]   #y格式要求很简单,[1.0, 2.0, 3.0]即可
    
    #建模
    linear=linear_model.LinearRegression()
    linear.fit(x_train,y_train)
    linear.score(x_train,y_train)
    
    # 返回系数和截距
    print('Coefficient:n',linear.coef_)       
    print('Intercept:n',linear.intercept_)   
    
    #预测
    predicted=linear.predict(x_test)
    print("predicted results:n",predicted)
    
    # ----------------------------------------------------
    # 描出训练集;及拟合的直线
    def show_linear_line(x,y):
        regr=linear_model.LinearRegression()
        regr.fit(x,y)
        plt.scatter(x,y,color='blue')
        plt.plot(x,regr.predict(x),color='red',linewidth=4)
        plt.xticks(())
        plt.yticks(())
        plt.show()
    
    show_linear_line(x_train,y_train)
  • 相关阅读:
    Java OCR tesseract 图像智能字符识别技术
    模板
    模板
    奇怪的haproxy 跳转
    奇怪的haproxy 跳转
    tomcat path配置
    tomcat path配置
    Mongodb 安装迁移
    image.xx.com 通过haproxy 跳转到内部图片服务器
    mysqldump 利用rr隔离实现一致性备份
  • 原文地址:https://www.cnblogs.com/skyEva/p/5407326.html
Copyright © 2011-2022 走看看