机器学习笔记

单变量线性回归

  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是不在范围之内的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容