机器学习-线性回归与逻辑回归

机器学习被很多新手认为非常的神秘,经常会为学到了几个新鲜的名词而自我陶醉。那今天
就来唠一唠这回归分析。回归分析包含着线性回归与逻辑回归。先从基本概念入手。理论加
实战才能学的深刻。下面的一些图片来源于贪心学院训练营和网络。

回归算法是一种通过最小化预测值与实际结果值之间的差距,而得到输入特征之间的最佳组合
方式的一类算法。对于连续值预测有线性回归等,而对于离散值/类别预测,我们也可以把逻辑
回归等也视作回归算法的一种。 
线性回归与逻辑回归是机器学习中比较基础又很常用的内容。线性回归主要用来解决连续值预测
的问题,逻辑回归用来解决分类的问题,输出的属于某个类别的概率,工业界经常会用逻辑回归
来做排序。在SVM、GBDT、AdaBoost算法中都有涉及逻辑回归,回归中的损失函数、梯度下降、
过拟合等知识点也经常是面试考察的基础问题。

下面看一下线性回归的数学含义与解释,主要是先有一个概念。

上面给大家展现了一些数学公式的推导,感觉是枯燥了点。下面给大家提供一个有趣的
实战案例,实战案例让大家熟练机器学习的一些流程与线性回归的简单应用。
这是一个与金融有关的,也是与大家息息相关的股票的预测,让我们一起来看看吧!
#导入先常用库
import numpy as np # 数学计算
import pandas as pd # 数据处理, 读取 CSV 文件 (e.g. pd.read_csv)
import matplotlib.pyplot as plt #用来做基本的数据可视化
from datetime import datetime as dt  #处理时间的一个模块
# 你可以使用如下的方法下载某一个公司的股票交易历史
# 000001 为平安银行
# 如果你还没有安装, 可以使用 pip install tushare 安装tushare python包
#import tushare as ts
#df = ts.get_hist_data('000001')
#print(df)
#df.to_csv('000001.csv')
#下面我们使用的就是平安银行的股票交易历史数据
df = pd.read_csv('000001.csv')  #读入这个文件
print(np.shape(df))  #看一下数据的大致情况
df.head()

数据大致有这些属性列,蓝色箭头所指之处就是默认的索引列。
上面的属性分别有如下含义:
date:日期
open:开盘价
high:最高价
close:收盘价
low:最低价
volume:成交量
price_change:价格变动
p_change:涨跌幅
ma5:5日均价
ma10:10日均价
ma20:20日均价
v_ma5:5日均量
v_ma10:10日均量
v_ma20:20日均量
# 拿到数据我们必然要对数据做一些处理。由于数据中有时间这一属性,在dataframe中是
#字符串形式,因此我们要做处理,让计算机知道他是时间格式

# 将每一个数据的键值的类型从字符串转为日期
df['date'] = pd.to_datetime(df['date'])
df = df.set_index('date')
# 按照时间升序排列
df.sort_values(by=['date'], inplace=True, ascending=True)
df.tail()
#结果如下

# 紧接着就是检测是否有缺失数据 NaNs

df.dropna(axis=0 , inplace=True)
df.isna().sum()

#结果如下
open            0
high            0
close           0
low             0
volume          0
price_change    0
p_change        0
ma5             0
ma10            0
ma20            0
v_ma5           0
v_ma10          0
v_ma20          0
dtype: int64
既然数据没有什么需要处理的地方,那我们利用金融领域常用的K线图的方法看一下数据展示。

上面K线图,我们发现在短暂几天内变化趋势还是非常的明显的,那我们就用数据利用线性回归
方法去预测5天之后的股票情况。
from sklearn.linear_model import LinearRegression
from sklearn import preprocessing
# 创建新的列, 包含预测值, 根据当前的数据预测5天以
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值