数据分析:人工智能篇

这篇具有很好参考价值的文章主要介绍了数据分析:人工智能篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第三章 数据可视化库matplotlib

3.1 matplotlib基本绘图操作

  • import matplotlib.pyplot as plt
    import numpy as np
    # 中文设置
    plt.rcParams['font.sans-serif'] =['KaiTi'] # 指定默认字体
    plt.rcParams['axes.unicode_minus'] = False #解决保存图像是负号'-'显示为方块的问题
    
    # 设置图形大小,即设置画布
    plt.figure(figsize=(10,5))
    
    # 画直线
    x = np.arange(10)
    y = 2 * x + 10
    plt.plot(x, y) # 画图
    
    # x,y轴的名称
    plt.xlabel('x')
    plt.ylabel('y')
    
    # 标题
    plt.title("简单的直线")
    
    plt.show() # 展示图形
    

数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

3.2 plot的线条和颜色

  1. 线条形状设置

    • 字符 线条类型 字符 线条类型
      ‘-’ 实线 ‘–’ 虚线
      ‘-.’ 虚点线 ‘:’ 点线
      ‘.’ ‘,’ 像素点
      ‘o’ 圆点 ‘v’ 下三角点
      ‘^’ 上三角形 ‘<’ 左三角形
      ‘>’ 右三角形 ‘1’ 下三叉点
      ‘2’ 上三叉点 ‘3’ 左三叉点
      ‘4’ 右三叉点 ‘s’ 正方点
      ‘p’ 五角点 ‘*’ 星形点
      ‘h’ 六边形点 ‘H’ 六边形点2
      ‘+’ +号点 ‘x’ 乘号点
      ‘D’ 实习菱形点 ‘d’ 瘦菱形点
  2. 常用颜色缩写

    • 字符 颜色 英文全称
      ‘b’ 蓝色 blue
      ‘g’ 绿色 green
      ‘r’ 红色 reed
      ‘c’ 青色 cyan
      ‘m’ 品红 magenta
      ‘y’ 黄色 yellow
      ‘k’ 黑色 black
      ‘w’ 白色 white
  3. 示例:

    • import matplotlib.pyplot as plt
      import numpy as np
      x = np.linspace(-10,10)
      len(x)
      
      ## 50
      
      y = np.sin(x)
      len(y)
      
      ## 50
      
      
      # 设置图形大小,即设置画布
      plt.figure(figsize=(10,5))
      
      # plt.plot(x, y,'-.',color='r') # 画图
      plt.plot(x, y,'b-.') 
      
      # 标题
      plt.title("正弦函数")
      # x,y轴的名称
      plt.xlabel('x')
      plt.ylabel('y')
      
      plt.show() ## 展示图片
      

      数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

3.3 条形图分析

数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

  1. 示例一:

    • import matplotlib.pyplot as plt
      import numpy as np
      
      # 中文设置
      plt.rcParams['font.sans-serif'] = ['KaiTi'] # 设置默认字体
      plt.rcParams['axes.unicode_minus'] = False #解决保存图像是负号'-'显示为方块的问题
      
      x = ['北京', '上海', '深圳', '广州']
      y = [20, 18, 21, 18]
      
      # 设置画布
      plt.figure(figsize=(10,6))
      # 设置标题
      plt.title('各个城市的销量',fontsize=16) ## fontsize设置字体大小
      # 画条形图
      plt.bar(x, y)
      plt.show()
      

      数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

      # 设置画布
      plt.figure(figsize=(10,6))
      # 设置标题
      plt.title('各个城市的销量',fontsize=16) ## fontsize设置字体大小
      # 画条形图
      plt.barh(x, y) 
      plt.show()
      

      数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

  2. 示例二(数据实操):

    • # 读取data文件夹下面的学生信息表
      import pandas as pd
      data = pd.read_excel("data/学生信息.xlsx")
      data
      
      ## 
      	班级	学号	性别	身高	体重
      0	11101173	63
      1	11102192	73
      2	11103186	82
      3	11104167	81
      4	11105159	64
      5	21201188	68
      6	21202176	94
      7	21203160	53
      8	21204162	63
      9	21205167	63
      10	31301161	68
      11	31302175	57
      12	31303188	82
      13	31304195	70
      14	31305187	69
      15	12101174	84
      16	12102161	61
      17	12103157	61
      18	12104159	97
      19	12105170	81
      20	22201193	100
      21	22202194	77
      22	22203155	91
      23	22204175	74
      24	22205183	76
      25	32301157	78
      26	32302171	88
      27	32303190	99
      28	32304164	81
      29	32305187	73
      30	42401192	62
      31	42402166	82
      32	42403158	60
      33	42404160	84
      34	42405193	54
      
    • # 查看有多少个班级,分析各个班学生的身高分布(即平均值)
      data['班级'].unique() ##array(['1班', '2班', '3班', '4班'], dtype=object)
      a = data.groupby("班级")["身高"].mean().reset_index()
      a
      
      ##
      	班级	身高
      0	1169.8
      1	2175.3
      2	3177.5
      3	4173.8
      
      plt.figure(figsize=(10,6))
      plt.bar(a["班级"],a["身高"])
      plt.show()
      
      
      
      
      # 分析各个班级的体重
      b = data.groupby("班级")["体重"].mean().reset_index()
      b
      
      ##
      	班级	体重
      0	174.7
      1	275.9
      2	376.5
      3	468.4
      
      plt.figure(figsize=(10,6))
      plt.bar(b["班级"],b["体重"])
      plt.show()
      

      数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

      数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

3.4 箱型图分析

  1. 箱型图

    • 反映一组数据的分布特征,如:分布是否对称,是否存在异常点;
    • 对多维数据的分布可以进行比较;
    • 针对连续性变量分析;

    数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

  2. 示例:

    • ## data文件夹下的箱型图数据.xlsx
      import matplotlib.pyplot as plt
      import numpy as np
      import pandas as pd
      
      data = pd.read_excel("data/箱型图数据.xlsx")
      data
      
      ##
      	数据1			数据2		数据3
      0	0.673772	2.877434	2.049346
      1	2.094364	1.744089	-2.000739
      2	-0.229255	-3.478537	-1.174358
      3	0.162415	-0.161255	-0.192022
      4	1.601201	0.249620	-3.260043
      ...	...	...	...
      95	0.802054	-2.125556	4.469550
      96	0.704063	-0.020990	-0.325966
      97	-1.003454	-0.645414	-3.517653
      98	1.009918	1.299786	1.303022
      99	0.798712	2.160066	4.128328
      100 rows × 3 columns
      
      
      
      # 单个
      plt.boxplot(data["数据1"])
      plt.show()
      
      # 三个放一起
      plt.boxplot([data["数据1"],data["数据2"],data["数据3"]],labels=["数据1", "数据2", "数据3"])
      plt.show()
      

      数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

      数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

3.5 直方图分析

  1. 直方图:

    • 直方图又称频率分布图,是一种显示数据分布情况的柱形图,即不同数据出现的频率

    • 通过这些高度不同的柱形,可以直观、快速地观察数据的分散程度和中心趋势,从而分析流程满足客户的程度

    • 数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

  2. 示例(数据实操):

    • # data文件夹下的直方图数据下有两个xlsx文件
      import matplotlib.pyplot as plt
      import pandas as pd
      
      data = pd.read_excel("data/直方图数据/乘客信息.xlsx")
      data
      
      ##
      	乘客编号	年龄
      0	1	22
      1	2	38
      2	3	26
      3	4	35
      4	5	35
      ...	...	...
      709	886	39
      710	887	27
      711	888	19
      712	890	26
      713	891	32
      714 rows × 2 columns
      
      
      data1 = pd.read_excel("data/直方图数据/学生分数.xlsx")
      data1
      
      ## 
      学生编号	分数
      0	162	56
      1	129	28
      2	25	2
      3	114	21
      4	130	29
      ...	...	...
      185	178	78
      186	148	42
      187	123	25
      188	82	10
      189	30	3
      190 rows × 2 columns
      
    • # 分析其年龄分布情况
      
      # 中文设置
      plt.rcParams["font.sans-serif"] = ["KaiTi"] # 设置默认字体
      plt.rcParams["axes.unicode_minus"] = False # 解决"-"号显示为方块的问题
      
      plt.hist(data["年龄"], bins=20, density=True, color='r', edgecolor='k') 
      # bins表示区间数 # density表示对直方图作出规划(纵轴变为频率了)# edgecolor表示对边缘加颜色
      plt.xlabel("年龄")
      plt.ylabel("频率")
      plt.title("直方图")
      plt.show() 
      
      
      
      # 分析班级里面学生成绩的分布情况
      plt.hist(data1["分数"], bins=50, density=True,color='y',edgecolor='k')
      plt.xlabel("分数")
      plt.ylabel("频率")
      plt.title("直方图")
      plt.show()
      

      数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

      数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

3.6 散点图分析

  1. 散点图:

    • 用两组数据构成多个坐标点,考察坐标点之间的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式
    • 散点图主要用来研究两个连续性变量之间的关系
    • 数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn
  2. 示例(数据实操):

    • # data文件夹下的国民经济核算季度数据.xlsx
      import matplotlib.pyplot as plt
      import pandas as pd
      
      data = pd.read_excel("data/国民经济核算季度数据.xlsx")
      data.columns
      
      ##
      Index(['序号', '时间', '国内生产总值_当季值(亿元)', '第一产业增加值_当季值(亿元)', '第二产业增加值_当季值(亿元)',
             '第三产业增加值_当季值(亿元)', '农林牧渔业增加值_当季值(亿元)', '工业增加值_当季值(亿元)',
             '建筑业增加值_当季值(亿元)', '批发和零售业增加值_当季值(亿元)', '交通运输、仓储和邮政业增加值_当季值(亿元)',
             '住宿和餐饮业增加值_当季值(亿元)', '金融业增加值_当季值(亿元)', '房地产业增加值_当季值(亿元)',
             '其他行业增加值_当季值(亿元)'],
            dtype='object')
      
    • # 分析国内生产总值和第一产业的值之间的相关性
      # 单个散点图
      plt.scatter(data["国内生产总值_当季值(亿元)"],data["第一产业增加值_当季值(亿元)"])
      plt.show()
      
      
      
      # 分析国内生产总值和第一产业的值之间的相关性
      # 分析国内生产总值和第二产业的值之间的相关性
      # 分析国内生产总值和第三产业的值之间的相关性
      # 多个散点图
      plt.scatter(data["国内生产总值_当季值(亿元)"],data["第一产业增加值_当季值(亿元)"], label="第一产业")
      plt.scatter(data["国内生产总值_当季值(亿元)"],data["第二产业增加值_当季值(亿元)"], label="第二产业")
      plt.scatter(data["国内生产总值_当季值(亿元)"],data["第三产业增加值_当季值(亿元)"], label="第三产业")
      plt.legend() # legend可以将label调用
      plt.show()
      

      数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

      数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

3.7 图表的美化

  1. 基本设置:

    • 图例设置 plt.legend(loc=“best”)
      画布设置 plt.figure(figsize=(10,6))
      标题设置 plt.title(string,size=10,color=“red”)
      横轴设置 plt.xlabel(string,fontsize=10)
      纵轴设置 plt.ylabel(string,fontsize=10)
      是否显示网络 plt.grid(False)
    • loc=“best” 自动找到最佳位置
      loc=“upper left” 左上角位置
      loc=“upper right” 右上角位置
      loc=“lower left” 左下角位置
      loc=“lower right” 右下角位置
      loc=“center left” 左边中间位置
      loc=“center right” 右边中间位置
  2. 示例:

    • import matplotlib.pyplot as plt
      import numpy as np
      
      # 中文设置
      plt.rcParams["font.sans-serif"] = ["KaiTi"] # 设置默认字体
      plt.rcParams["axes.unicode_minus"] = False # 解决"-"号显示为方块的问题
      
      plt.figure(figsize=(10,6)) # 画布大小
      x = np.linspace(0,20,100)
      plt.plot(x, 2*x, label="曲线1")
      plt.plot(x, 3*x, label="曲线2")
      plt.plot(x, 4*x, label="曲线2")
      plt.legend(loc="best")  ## 默认best
      plt.title("三条曲线",size=16,color="r")
      plt.xlabel("变量1", fontsize=16,color='c')
      plt.ylabel("变量2", fontsize=16, color='m')
      plt.grid(True) 
      plt.show()
      

      数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

第四章 数据预测库Sklearn

4.1 sklearn预测未来

数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

4.2 回归数据的预测

4.2.1 回归数据的切分

数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

  1. 示例(数据实操):

    • # data文件夹下的房价数据.xlsx
      import pandas as pd
      
      data = pd.read_excel("data/房价数据.xlsx")
      data
      
      ##	
         	城镇人均犯罪率	城镇非零售商用土地比例	一氧化氮浓度	住宅平均房间数	到城市中心区域的加权距离	房价(万元)
      0	0.00632	2.31	0.538	6.575	4.0900	2.40
      1	0.02731	7.07	0.469	6.421	4.9671	2.16
      2	0.02729	7.07	0.469	7.185	4.9671	3.47
      3	0.03237	2.18	0.458	6.998	6.0622	3.34
      4	0.06905	2.18	0.458	7.147	6.0622	3.62
      ...	...	...	...	...	...	...
      501	0.06263	11.93	0.573	6.593	2.4786	2.24
      502	0.04527	11.93	0.573	6.120	2.2875	2.06
      503	0.06076	11.93	0.573	6.976	2.1675	2.39
      504	0.10959	11.93	0.573	6.794	2.3889	2.20
      505	0.04741	11.93	0.573	6.030	2.5050	1.19
      506 rows × 6 columns
      
    • ## 用前五个属性来预测房价
      from sklearn.model_selection import train_test_split  # 训练跟测试切分的方法
      train, valid = train_test_split(data, test_size=0.2, shuffle=True, random_state=2020)  # 0.8作为训练集,0.2作为验证集,0.2表示把验证集 大小切成0.2
      # shuffle=True切分的时候把数据打乱, 便于切出来的数据比较均匀  # random_state 随机种子,返回的是一个列表
      # 返回的数据分别是训练集和验证集,分别把他们赋值给train和valid两个变量
      
      data.shape  ## 未切分前的形状
      
      ## (506, 6)
      
      
      train.shape  ## 切分后的形状
      
      ## (404, 6)
      
      
      valid.shape ## 切分后的形状
      
      ## (102, 6)
      
      
      404 / 506 # 训练集
      ## 0.7984189723320159
      
      102 / 506 # 验证集
      ## 0.2015810276679842
      
      
    • train
      
      ##
      城镇人均犯罪率	城镇非零售商用土地比例	一氧化氮浓度	住宅平均房间数	到城市中心区域的加权距离	房价(万元)
      215	0.19802	10.59	0.489	6.182	3.9454	2.50
      191	0.06911	3.44	0.437	6.739	6.4798	3.05
      107	0.13117	8.56	0.520	6.127	2.1224	2.04
      442	5.66637	18.10	0.740	6.219	2.0048	1.84
      230	0.53700	6.20	0.504	5.981	3.6715	2.43
      ...	...	...	...	...	...	...
      195	0.01381	0.46	0.422	7.875	5.6484	5.00
      118	0.13058	10.01	0.547	5.872	2.4775	2.04
      323	0.28392	7.38	0.493	5.708	4.7211	1.85
      392	11.57790	18.10	0.700	5.036	1.7700	0.97
      352	0.07244	1.69	0.411	5.884	10.7103	1.86
      404 rows × 6 columns
      
      
      valid
      
      ##
      城镇人均犯罪率	城镇非零售商用土地比例	一氧化氮浓度	住宅平均房间数	到城市中心区域的加权距离	房价(万元)
      409	14.43830	18.10	0.5970	6.852	1.4655	2.75
      247	0.19657	5.86	0.4310	6.226	8.0555	2.05
      399	9.91655	18.10	0.6930	5.852	1.5004	0.63
      300	0.04417	2.24	0.4000	6.871	7.8278	2.48
      321	0.18159	7.38	0.4930	6.376	4.5404	2.31
      ...	...	...	...	...	...	...
      204	0.02009	2.68	0.4161	8.034	5.1180	5.00
      495	0.17899	9.69	0.5850	5.670	2.7986	2.31
      244	0.20608	5.86	0.4310	5.593	7.9549	1.76
      413	28.65580	18.10	0.5970	5.155	1.5894	1.63
      216	0.04560	13.89	0.5500	5.888	3.1121	2.33
      102 rows × 6 columns
      
4.2.2 线性回归数据模型

数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

  1. 示例(实操接4.2.1数据):

    • # 预测房价
      # 导入线性回归模型
      from sklearn.linear_model import LinearRegression
      
      model = LinearRegression() # 定义一个数据模型
      
      # train , valid # 训练集训练数据,验证集用来预测数据
      model.fit(train[['城镇人均犯罪率', '城镇非零售商用土地比例','一氧化氮浓度','住宅平均房间数','到城市中心区域的加权距离']], train['房价(万元)'])  
      # fit传入需要训练的特征,这里需要传入除预测外的所有属性 ,fit表示训练的意思
      
      ## LinearRegression()
      
      
      pred = model.predict(valid[['城镇人均犯罪率', '城镇非零售商用土地比例','一氧化氮浓度','住宅平均房间数','到城市中心区域的加权距离']])
      pred
      # predict表示预测,对验证集的每条数据进行预测
      
      ##
      array([ 2.46474589,  2.2128151 ,  1.65888896,  2.85265327,  2.52879848,
              2.2258853 ,  2.57939134,  2.59693129,  1.82202357,  2.40885497,
              2.77841379,  1.64989292,  2.25647387,  3.30694586,  1.94037339,
              2.49620692,  2.03597603,  2.61239847,  1.95491352,  1.73957756,
              2.1573622 ,  2.82385479,  2.09397049,  2.33096025,  0.80547778,
              0.83617233,  2.43902438,  1.73929665,  3.29007521,  0.96528621,
              2.80937346,  2.75473389, -0.04440117,  2.4362086 ,  2.053418  ,
              0.87830185,  2.00948295,  2.45519188,  1.94278751,  2.27900789,
              2.80594378,  2.2755299 ,  2.15347854,  3.23576954,  1.9600308 ,
              2.26173723,  2.29422412,  2.06932986,  2.27333606,  2.95266904,
              2.84799092,  2.59296111,  2.65458646,  1.42464319,  1.82023523,
              1.16141491,  2.70465962,  2.31695954,  1.55678262,  2.46458798,
              2.43287322,  2.23338117,  2.67973044,  4.33672353,  2.95615622,
              2.53254281,  2.70089423,  0.27060842,  1.71579957,  2.12512989,
              2.5633941 ,  2.31433153,  2.84858425,  2.03601581,  2.46245774,
              2.02078349,  2.25731773,  2.38199773,  2.14867614,  2.46881375,
              2.32091925,  2.16436359,  3.11908093,  3.43351395,  3.3118866 ,
              1.69532309,  1.87010176,  2.3609788 ,  3.13228058,  2.08536776,
              1.75231547,  1.93768106,  2.04788031,  2.28601279,  2.1095751 ,
              2.38820313,  1.59125697,  3.93697614,  1.97308141,  1.75644051,
              0.92296715,  2.05833759])
      
      
      len(pred)
      
      ## 102
      
      
      train.columns
      
      ## 
      Index(['城镇人均犯罪率', '城镇非零售商用土地比例', '一氧化氮浓度', '住宅平均房间数', '到城市中心区域的加权距离',
             '房价(万元)'],
            dtype='object')
      
      
      valid.columns
      
      ##
      Index(['城镇人均犯罪率', '城镇非零售商用土地比例', '一氧化氮浓度', '住宅平均房间数', '到城市中心区域的加权距离',
             '房价(万元)'],
            dtype='object')
      
4.2.3 回归模型评估方法-MSE

数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

  1. MSE

    • 即均方误差
    • MSE的值越大,表明预测效果越差
  2. 示例(实操接4.2.2数据):

    • # vaild验证集是真实准确的数据,pred是经过验证集预测的数据
      import numpy as np
      # 导入均方误差
      from sklearn.metrics import mean_squared_error  # mean_squared_error表示均方误差
      
      mse_error = mean_squared_error(valid['房价(万元)'],pred)  # 先传入实际值,再传入预测值
      mse_error
      
      ## 0.38184398467340286
      
      
      np.sqrt(mse_error)  # 对均方误差进行开方,就可以知道每个样本的偏离程度 # np.sqrt 是numpy的开方
      
      ## 0.6179352592896791
      
      

4.3 二分类数据的预测

4.3.1 二分类数据的切分
  1. 示例(数据实操):

    • # data文件夹下的泰坦尼克号数据.xlsx  # 0是死亡,1是存活
      import pandas as pd
      data = pd.read_excel("data/泰坦尼克号数据.xlsx")
      data
      
      ## 
      	乘客编号	船票种类	性别	年龄	乘客兄弟姐妹/配偶的个数	乘客父母/孩子的个数	是否存活
      0	1	3	male	22.0	1	0	0
      1	2	1	female	38.0	1	0	1
      2	3	3	female	26.0	0	0	1
      3	4	1	female	35.0	1	0	1
      4	5	3	male	35.0	0	0	0
      ...	...	...	...	...	...	...	...
      886	887	2	male	27.0	0	0	0
      887	888	1	female	19.0	0	0	1
      888	889	3	female	-10.0	1	2	0
      889	890	1	male	26.0	0	0	1
      890	891	3	male	32.0	0	0	0
      891 rows × 7 columns
      
      data.dtypes  
      # 性别 是字符串类型,不符合字符类型,需要转为数值类型。因为数学模型里面必须要都是数值类型才可以分析
      
      ##
      乘客编号              int64
      船票种类              int64
      性别               object
      年龄              float64
      乘客兄弟姐妹/配偶的个数      int64
      乘客父母/孩子的个数        int64
      是否存活              int64
      dtype: object
          
      data['性别'].value_counts()
      
      ##
      male      577
      female    314
      Name: 性别, dtype: int64
              
      data['性别'] = data['性别'].apply(lambda x: 0 if x == 'male'else 1)  
      # 用pandas学的apply快速实现转换,然后更新列的数据
      data.head()  # 显示修改后的前五条数据
      
      ##
      	乘客编号	船票种类	性别	年龄	乘客兄弟姐妹/配偶的个数	乘客父母/孩子的个数	是否存活
      0	1	3	1	22.0	1	0	0
      1	2	1	1	38.0	1	0	1
      2	3	3	1	26.0	0	0	1
      3	4	1	1	35.0	1	0	1
      4	5	3	1	35.0	0	0	0
      
    • from sklearn.model_selection import train_test_split
      
      train,valid = train_test_split(data, test_size=0.2, shuffle=True, random_state=2020)
      
      data["是否存活"].value_counts() # 0是死亡,1是存活
      
      ##
      0    549
      1    342
      Name: 是否存活, dtype: int64
              
      549 / 342 # 死亡:活着
      ##1.605263157894737
      
      train['是否存活'].value_counts()
      
      ##
      0    444
      1    268
      Name: 是否存活, dtype: int64
              
      444/268
      ## 1.6567164179104477
      
      valid['是否存活'].value_counts()
      
      ##
      0    105
      1     74
      Name: 是否存活, dtype: int64
              
      105/74
      ## 1.4189189189189189
      
      # 由以上数据可知 训练集是1.6多,而验证集是1.4,跟预测数据1.60的比值差别太大差别太大
      
      ### 解决办法 # 用stratify,进行分层抽样
      train,valid = train_test_split(data, test_size=0.2, shuffle=True, random_state=2020, stratify=data["是否存活"])
      
      train['是否存活'].value_counts()
      
      ##
      0    439
      1    273
      Name: 是否存活, dtype: int64
      
      439/273
      ## 1.6080586080586081
      
      valid['是否存活'].value_counts()
      
      ##
      0    110
      1     69
      Name: 是否存活, dtype: int64
          
      110/69
      ## 1.5942028985507246
      
      
4.3.2 逻辑回归数据模型

数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

  1. logistic函数:

    • # logistic函数曲线
      import numpy as np
      import matplotlib.pyplot as plt
      x = np.linspace(-10, 10, 100)
      y = 1 / (1 + np.exp(-x))  # np.exp就是数学中的自然e,np.exp(-x)表示e的-x次方
      plt.plot(x, y)
      plt.show()
      

      数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

  2. 示例(实操接4.3.1数据):

    • from sklearn.linear_model import LogisticRegression # LogisticRegression 逻辑回归
      
      model = LogisticRegression() # 定义一个数据模型
      
      train.columns # 因为每个乘客的乘客编号都不同,就不熟他们特有的特征了,索引只取其他五个特有的属性
      
      ##
      Index(['乘客编号', '船票种类', '性别', '年龄', '乘客兄弟姐妹/配偶的个数', '乘客父母/孩子的个数', '是否存活'], dtype='object')
      
      
      # 训练
      model.fit(train[['船票种类', '性别', '年龄', '乘客兄弟姐妹/配偶的个数', '乘客父母/孩子的个数']], train['是否存活'])
      
      ## LogisticRegression() # 成功
      
      
      # 预测
      pred = model.predict(valid[['船票种类', '性别', '年龄', '乘客兄弟姐妹/配偶的个数', '乘客父母/孩子的个数']])
      pred # 预测结果
      
      ##
      array([0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0,
             0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
             1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1,
             0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0,
             1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1,
             0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0,
             1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,
             0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1,
             0, 0, 0], dtype=int64)
      
      
      
4.3.3 二分类模型评估指标-准确率

数据分析:人工智能篇,python,数据分析,matplotlib,数据分析,python,matplotlib,sklearn

  1. 准确率:

    • 准确率,Accuracy,表示模型预测正确地比例

    • A c c u r a c y = M / N Accuracy = M/N Accuracy=M/N

    • M表示预测对的数量,N表示需要预测的数据

    • Accuracy的值越大,表明预测的效果越好

  2. 示例(实操接4.3.2数据):文章来源地址https://www.toymoban.com/news/detail-737613.html

    • from sklearn.metrics import accuracy_score # accuracy_score 准确率分数,用来计算准确率的
      accuracy_score(valid["是否存活"], pred)  # 先传入真实数据再传入预测数据
      
      ## 0.776536312849162
      
      

到了这里,关于数据分析:人工智能篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GPT4助力Python数据分析与可视化、人工智能建模及论文高效撰写

    详情点击链接:GPT4助力Python数据分析与可视化、人工智能建模及论文高效撰写 第一: GPT 4 基础入门 1、ChatGPT概述(GPT-1、GPT-2、GPT-3、GPT-3.5、GPT-4模型的演变) 2、ChatGPT对话初体验(注册与充值、购买方法) 3、GPT-4与GPT-3.5的区别,以及与国内大语言模型(文心一言、星火等

    2024年01月18日
    浏览(56)
  • Python+ChatGPT,Python与ChatGPT结合进行数据分析、自动生成代码、人工智能建模、论文高效撰写等

    熟练地掌握ChatGPT4.0在数据分析、自动生成代码等方面的强大功能,同时更加系统地学习人工智能(包括传统机器学习、深度学习等)的基础理论知识,以及具体的代码实现方法, 掌握ChatGPT4.0在科研工作中的各种使用方法与技巧,以及人工智能领域经典机器学习算法(BP神经

    2024年01月19日
    浏览(69)
  • ChatGPT4和python完美融合,快速完成数据分析与可视化、人工智能建模及论文高效撰写

    2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5,将人工智能的发展推向了一个新的高度。2023年4月,更强版本的ChatGPT4.0上线,文本、语音、图像等多模态交互方式使其在各行各业的应用呈现了更多的可能性。202

    2024年02月03日
    浏览(63)
  • 人工智能在物流数据分析中的应用:基于人工智能的物流智能监控与分析

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 随着全球经济的快速发展和物流行业的不断壮大,对物流管理的效率与质量的要求也越来越高。传统的物流管理手段已经难以满足现代物流行业的需要,人工智能技术在物流管理中的应用显得尤为重要。 1.2. 文章目的 本文旨

    2024年02月08日
    浏览(48)
  • 数据分析:人工智能篇

    3.1 matplotlib基本绘图操作 3.2 plot的线条和颜色 线条形状设置 字符 线条类型 字符 线条类型 ‘-’ 实线 ‘–’ 虚线 ‘-.’ 虚点线 ‘:’ 点线 ‘.’ 点 ‘,’ 像素点 ‘o’ 圆点 ‘v’ 下三角点 ‘^’ 上三角形 ‘’ 左三角形 ‘’ 右三角形 ‘1’ 下三叉点 ‘2’ 上三叉点 ‘3’

    2024年02月06日
    浏览(46)
  • 数据分析、大数据分析和人工智能之间的区别

    数据分析、大数据分析和人工智能近年来十分热门,三者之间看起来有相似之处,也有不同之处。今天就来谈谈三者间的区别。 数据分析 数据分析是指对数据进行分析,从中提取有价值的信息,以支持企业或组织的决策制定。数据分析可以针对不同的数据来源和类型,包括

    2024年02月06日
    浏览(58)
  • 人工智能安全的数据治理和数据分析

    作者:禅与计算机程序设计艺术 随着人工智能的普及和应用,越来越多的个人和组织使用基于机器学习、深度学习等技术进行各种各样的业务决策、工作指导和服务推荐。然而,随之而来的安全问题也逐渐显现出来,尤其是在对模型训练、模型部署、模型迭代、模型交付等环

    2024年02月09日
    浏览(53)
  • 人工智能:数据分析之数据预处理、分析模型与可视化

    在人工智能和数据科学领域,数据分析是一种核心过程,它帮助我们从大量的数据中提取有价值的信息。数据分析的质量和结果直接影响到决策的效率和准确性。在这篇博客中,我们将详细探讨数据分析的关键步骤,包括数据预处理、分析模型和可视化,并通过实际应用案例

    2024年03月10日
    浏览(59)
  • 大数据毕业设计python+spark天气预测 天气可视化 天气大数据 空气质量检测 空气质量分析 气象大数据 气象分析 大数据毕设 计算机毕业设计 机器学习 深度学习 人工智能 知识图谱

    论文题目 选题依据 天气预测是指综合使用现代科学技术对某一地区未来一段时间的温度、湿度、风力、风向、天气状况等进行预测。在当今社会,天气预测对人们的生产生活有着举足轻重的影响,与日常出行、农业生产、自然灾害预防等多个领域息息相关,是现代社会正常运转

    2024年04月26日
    浏览(45)
  • 【展望】多方计算展望:基于人工智能的数据分析平台

    作者:禅与计算机程序设计艺术 当前,随着人类对社会生活的依赖程度越来越高、信息化水平越来越高,越来越多的个人消费行为被计算机和智能手机等各种设备所代替。而数字经济也正在以惊人的速度发展。尽管如此,人工智能技术在数据驱动下对实体经济产生的深远影响

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包