python计算股票趋势_通过机器学习的线性回归算法预测股票走势(用Python实现)...

1 波士顿房价数据分析

安装好Python的Sklearn库后,在安装包下的路径中就能看到描述波士顿房价的csv文件,具体路径是“python安装路径\Lib\site-packages\sklearn\datasets\data”,在这个目录中还包含了Sklearn库会用到的其他数据文件,本节用到的是包含在boston_house_prices.csv文件中的波士顿房价信息。打开这个文件,可以看到如图所示的数据。

第1行的506表示该文件中包含506条样本数据,即有506条房价数据,而13表示有13个影响房价的特征值,即从A列到M列这13列的特征值数据会影响第N列MEDV(即房价值),在表13.1中列出了部分列的英文标题及其含义。

波士顿房价文件部分中英文标题一览表

标题名 中文含义

CRIM 城镇人均犯罪率

ZN 住宅用地超过某数值的比例

INDUS 城镇非零售商用土地的比例

CHAS 查理斯河相关变量,如边界是河流则为1,否则为0

NOX 一氧化氮浓度

RM 住宅平均房间数

AGE 1940年之前建成的自用房屋比例

DIS 到波士顿五个中心区域的加权距离

RAD 辐射性公路的接近指数

TAX 每 10000 美元的全值财产税率

PTRATIO 城镇师生比例

MEDV 是自住房的平均房价

从表中可以看到,波士顿房价的数值(即MEDV)和诸如“住宅用地超过某数值的比例”等13个特征值有关。而线性回归要解决的问题是,量化地找出这些特征值和目标值(即房价)的线性关系,即找出如下的k1到k13系数的数值和b这个常量值。

MEDV = k1*CRIM + k2*ZN + … + k13*LITAT + b

上述参数有13个,为了简化问题,先计算1个特征值(DIS)与房价(MEDV)的关系,然后在此基础上讲述13个特征值与房价关系的计算方式。

如果只有1个特征值DIS,它与房价的线性关系表达式如下所示。在计算出k1和b的值以后,如果再输入对应DIS值,即可据此计算MEDV的值,以此实现线性回归的预测效果。

MEDV = k1*DIS + b

2 以波士顿房价数据为案例,搭建含一个特征值的线性预测模型

在下面的OneParamLR.py范例程序中,通过调用Sklearn库中的方法,以训练加预测的方式,推算出一个特征值(DIS)与目标值(MEDV,即房价)的线性关系。

1 # !/usr/bin/env python

2 # coding=utf-8

3 import numpy as np

4 import pandas as pd

5 import matplotlib.pyplot as plt

6 from sklearn import datasets

7 from sklearn.linear_model import LinearRegression

在上述代码中导入了必要的库,其中第6行和第7行用于导入sklearn相关库。

8 # 从文件中读数据,并转换成DataFrame格式

9 dataset=datasets.load_boston()

10 data=pd.DataFrame(dataset.data)

11 data.columns=dataset.feature_names # 特征值

12 data['HousePrice']=dataset.target # 房价,即目标值

13 # 这里单纯计算离中心区域的距离和房价的关系

14 dis=data.loc[0:data['DIS'].size-1,'DIS'].as_matrix()

15 housePrice=data.loc[0:data['HousePrice'].size-1,'HousePrice'].as_matrix()

在第9行中,加载了Sklearn库下的波士顿房价数据文件,并赋值给dataset对象。在第10行通过dataset.data读取了文件中的数据。在第11行通过dataset

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于通过机器学习线性回归算法预测股票走势,下面是一个简单的 Python 实现过程: 1. 首先,导入必要的库,包括 pandas、numpy、matplotlib 和 scikit-learn: ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression ``` 2. 然后,读入股票数据,这里以某公司股票为例: ```python df = pd.read_csv('stock_data.csv') ``` 3. 接着,对数据进行预处理,将日期转换为时间戳,并将股票价格作为模型的目标变量: ```python df['Date'] = pd.to_datetime(df['Date']).astype(int) // 10**9 X = df[['Date']] y = df['Price'] ``` 4. 将数据集分为训练集和测试集,这里采用 80% 的数据作为训练集: ```python train_size = int(len(X) * 0.8) X_train, y_train = X[:train_size], y[:train_size] X_test, y_test = X[train_size:], y[train_size:] ``` 5. 创建线性回归模型,并对训练集进行拟合: ```python model = LinearRegression() model.fit(X_train, y_train) ``` 6. 对测试集进行预测,并计算预测结果与真实结果之间的均方误差: ```python y_pred = model.predict(X_test) mse = np.mean((y_pred - y_test) ** 2) print('Mean Squared Error:', mse) ``` 7. 可以将预测结果与真实结果进行可视化,这里用 matplotlib 绘制了一条拟合直线和散点图: ```python plt.scatter(X_test, y_test, color='black') plt.plot(X_test, y_pred, color='blue', linewidth=3) plt.xticks(()) plt.yticks(()) plt.show() ``` 以上就是通过机器学习线性回归算法预测股票走势Python 实现过程。需要注意的是,这只是一个简单的示例,实际应用需要考虑更多因素,并且需要对数据进行更细致的处理和特征工程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值