美文网首页
机器学习笔记

机器学习笔记

作者: 琼脂糖 | 来源:发表于2020-07-14 16:07 被阅读0次

    单变量线性回归

    1. 问题
      测试数据集:城市人口和利润数据。希望模型,可以根据新的城市人口来预测利润。
      m个样本,x有n个特征(x1到xn,注意有时候会加入x0=0)


      image.png
    2. 代价函数cost function
      代价函数以参数theta为自变量,衡量模型与数据的贴合程度。


      image.png
    3. 梯度下降
      初始theta,然后找最快的下山路线。


      image.png

    多变量线性回归

    1. 数据集:根据(房子的大小,卧室的数量)预测目标(房子的价格)


      image.png
    2. 特征归一化data2 = (data2 - data2.mean()) / data2.std()
    3. 梯度下降

    逻辑回归

    1. 数据集:想根据两门考试的结果,来决定每个申请人是否被录取。


      image.png
    2. 假设函数



      image.png
    3. 代价函数


      image.png

    python 相关

    scikit learn 线性回归

    data ,X,y: pandas DataFrame

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    path = "吴恩达/ex1data1.txt"
    data = pd.read_csv(path, header=None, names=['Population','Profit'])
    
    cols = data.shape[1]  # 列数
    X = data.iloc[:, :cols-1]  # 取前cols-1列,即输入向量(features)
    y = data.iloc[:, cols-1:cols] # 取最后一列,即目标向量
    
    
    from sklearn import linear_model
    model = linear_model.LinearRegression()
    model.fit(X, y)
    
    x = X
    f = model.predict(X).flatten()
    
    fig, ax = plt.subplots(figsize=(8,5))
    ax.plot(x, f, 'r', label='Prediction')
    ax.scatter(data.Population, data.Profit, label='Traning Data')
    ax.legend(loc=2)
    ax.set_xlabel('Population')
    ax.set_ylabel('Profit')
    ax.set_title('Predicted Profit vs. Population Size')
    plt.show()
    
    image.png
    iloc & loc
    1. 选取标签为A和C的列,并且选完类型还是dataframe
    df = df.loc[:, ['A', 'C']]
    df = df.iloc[:, [0, 2]]
    
    1. 选取标签为C并且只取前两行,选完类型还是dataframe
    df = df.loc[0:2, ['A', 'C']]  
    df = df.iloc[0:2, [0, 2]] 
    

    loc是根据dataframe的具体标签选取列
    iloc是根据标签所在的位置,从0开始计数。
    ","前面的":"表示选取整列,第二个示例中的的0:2表示选取第0行到第二行,这里的0:2相当于[0,2)前闭后开,2是不在范围之内的。

    相关文章

      网友评论

          本文标题:机器学习笔记

          本文链接:https://www.haomeiwen.com/subject/crusjctx.html