zoukankan      html  css  js  c++  java
  • sklearn 线性回归

    #

    import numpy as np
    import pandas as pd
    from pandas import Series,DataFrame
    import matplotlib.pyplot as plt
    from pylab import mpl
    
    mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
    mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
    
    导入数据各个海滨城市数据--
    # 去除没用的列
    city_list = [ferrara,torino,mantova,milano,ravenna,asti,bologna,piacenza,cesena,faenza]
    for city in city_list:
        city.drop('Unnamed: 0',axis=1,inplace=True)
    
    #显示最高温度于离海远近的关系(观察多个城市)
    city_max_temp = [] #城市
    city_dist = [] #距离
    for city in city_list: 
        temp = city['temp'].max()
        dist = city['dist'].max()
        city_max_temp.append(temp)
        city_dist.append(dist)
    plt.scatter(city_dist,city_max_temp)   #x自变量   y因变量
    plt.xlabel('距离')
    plt.ylabel('最高温度')
    plt.title('最高温度额距离之间的关系')
    观察发现,离海近的可以形成一条直线,离海远的也能形成一条直线。
    
    - 分别以100公里和50公里为分界点,划分为离海近和离海远的两组数据(近海:小于100  远海:大于50)
    #数据转存到numpy中
    city_dist = np.array(city_dist) #任意维度的数组
    city_max_temp = np.array(city_max_temp)
    #加条件  判断
    condition = city_dist < 100  #True False 布尔值
    near_city_dist = city_dist[condition]  #索引  只拿True对应的值
    near_city_temp = city_max_temp[condition] #索引
    #下面绘图
    plt.scatter(near_city_dist,near_city_temp) #x自变量 y因变量 plt.xlabel('近海距离') plt.ylabel('近海最高温度') plt.title('近海城市最高温度额距离之间的关系')

    # sklearn

    机器学习:
      算法模型 --  特殊对象.内部已经帮我们集成或者封装好一个某一种算法或者某一种方程(还没有解的方程)
      样本数据 --  样本对象的数据  帮助方程求出解
        特征数据 -自变量
        目标数据 -因变量
      模型分类
        有监督学习 样本数据必须包含特征数据和目标数据
          -线性回归算法模型
        无监督学习 只包含特征数据
        半监督学习 前期训练 后期预测 (少用)
      算法模型的作用
    --
        预测未知
        分类
    #特征数据
    feature = near_city_dist.reshape(-1,1)
    #目标数据
    target = near_city_temp
    print('真实值',target)
    print('预测值',linner.predict(feature))
    score 算法
    # 导入sklearn 建立线性回归算法模型对象   
    from sklearn.linear_model import LinearRegression #线性回归   有监督学习
    linner = LinearRegression() #实例化s
    #求解(训练模型):需要将样本数据(特征,目标) 带入到模型对象中
    linner.fit(near_city_dist.reshape(-1,1),near_city_temp) #X 特征数据 只能2维  y:目标  reshape(行 列)
    y = linner.predict([[81],[90]]) #调用方程 (X)
    linner.score(near_city_dist.reshape(-1,1),near_city_temp)   #计算模型分数
    
    #绘制直线(是由点组成)
    x = np.linspace(0,80,100)
    y = linner.predict(x.reshape(-1,1))
    plt.scatter(near_city_dist,near_city_temp)
    plt.xlabel('近海城市距离')
    plt.ylabel('近海城市最高温度')
    plt.title('近海城市最高温度和距离之间的关系')
    plt.scatter(x,y)
  • 相关阅读:
    C 库函数 ------ qsort()
    递归之美
    C函数库 ------ ctype.h
    scanf 多行输入判断结束
    POSIX库、glibc库、pthreads库、libc库、newlib、uClibc
    Docker 私有仓库搭建
    在daemon.json中配置主机后无法启动docker
    MySQL配置HeartBeat实现心跳监控和浮动IP
    Heartbeat基础知识-运维小结
    (二) Docker中启动镜像
  • 原文地址:https://www.cnblogs.com/zhangchen-sx/p/11131717.html
Copyright © 2011-2022 走看看