人工智能学习笔记
人工智能学习笔记
什么是人工智能?
:star:人制造出来的机器,来模仿人的行为。还有就是能够自主学习及解决问题更新自己的知识库。让机器能够像人一样思考和行动。比如以下几种:
- 人脸识别、车牌识别、自动驾驶
- 机器翻译、人机互动、GPT
- 智能机器人、AlphaGO等等
人工智能实现方法:
符号学习:原理是基于逻辑与规则的学习方法,其原理主要为物理符号系统假设和有限合理性原理,不能升级模型。
:star:机器学习:从数据中寻找规律、建立关系,根据建立的关系去解决问题的方法,从数据中学习并且实现自我优化升级,其原理是数据驱动。
:bulb:机器学习是一种实现人工智能的方法,从数据中学习然后对真实世界的时间做出决策和预测,比如,垃圾邮件检测、房价预测等等。
:bulb:深度学习是一种实现机器学习的技术。模仿人类神经网络,建立模型,进行数据分析,比如,人脸识别、无人驾驶等等。
工具安装:
- python 官网下载安装
- jupyter notebook
- pandas、matplib、numpy
在系统的一个位置新建一个文件夹,比如:e:_log
1 |
|
在虚拟环境的目录下创建一个txt
文件并该后缀为bat
,编辑内容为:
1 |
|
这就启动了jupyter了
安装pandas等
1 |
|
工具使用和介绍
1 |
|
安装和使用matplotlib
1 |
|
1 |
|
1 |
|
安装和使用numpy
1 |
|
<class 'numpy.ndarray'>
[[1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]
1 |
|
[[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]
(5, 5)
1 |
|
(5, 5)
[[2. 1. 1. 1. 1.]
[1. 2. 1. 1. 1.]
[1. 1. 2. 1. 1.]
[1. 1. 1. 2. 1.]
[1. 1. 1. 1. 2.]]
安装和使用pandas
这里有个提示:就是有时候windows的路径是反斜杠,我们需要改成正斜杠。
1 |
|
Name Age City
0 Alice 24 New York
1 Bob 27 Los Angeles
2 Charlie 22 Chicago
3 David 32 Houston
4 Eve 29 Phoenix
1 |
|
0 Alice
1 Bob
2 Charlie
3 David
4 Eve
Name: Name, dtype: object
1 |
|
0 24
1 27
2 22
3 32
4 29
Name: Age, dtype: int64
1 |
|
1 27
3 32
4 29
Name: Age, dtype: int64
1 |
|
[['Alice' 24 'New York']
['Bob' 27 'Los Angeles']
['Charlie' 22 'Chicago']
['David' 32 'Houston']
['Eve' 29 'Phoenix']]
保存为本地文件
1 |
|
机器学习——线性回归
机器学习是一种实现人工智能的方法,从数据中寻找规律、建立关系,根据建立的关系去解决问题。
机器学习应用场景:
- 数据挖掘
- 计算机视觉
- 自然语言处理
- 证券分析
- 医学诊断
- 机器人
- DNA测序等等
机器学习基本框架:数据——>函数——>解决问题
机器学习类别:
监督学习
告诉机器什么是对的
- 线性回归
- 逻辑回归
- 决策树
- 神经网络、卷积神经网络、循环神经网络
无监督学习
让机器自己去数据中寻找规律
- 聚类算法
半监督学习
告诉机器一部分正确的,剩下的让机器自己去理解
强化学习(深度学习)
根据每次结果收获的奖惩进行学习,实现优化
线性回归
找到两个(或两个以上)数据对应关系的一条线,通过拟合这条线进行新的预测。
\(y = ax +
b\)其中a为斜率,b为截距(y为0或者x为0的时候另一个点在哪里)
\(y = f(x_1,x_2\dots x_n)\)
- 一元回归:\(y=f(x)\)
- 多元回归:\(y = f(x_1,x_2\dots x_n)\)
- 线性回归:\(y=ax+b\)
- 非线性回归:\(y=ax^2+bx+c\)
\(j = \frac{1}{2m}\sum_{i=1}^{m}(y_1-y)^2 =
\frac{1}{2m}\sum_{i=1}^{m}(ax_i+b-y_i)^2 = g(a,b)\)
j的值越小,就代表越接近真实的值。
线性回归实战准备
1 |
|
1 |
|
x | y | |
---|---|---|
0 | 1 | 7 |
1 | 2 | 9 |
2 | 3 | 11 |
3 | 4 | 13 |
4 | 5 | 15 |
1 |
|
1 |
|
python调用Sklearn实现线性回归
1 |
|
1 |
|
[[12.]]
1 |
|
[[2.]] [5.]
1 |
|
3.1554436208840474e-31 1.0
Ashare用法
from Ashare import *
df=get_price('sh000001',frequency='1d',count=5) #默认获取今天往前5天的日线实时行情 print('上证指数日线行情',df)
df=get_price('000001.XSHG',frequency='1d',count=5,end_date='2021-04-30') #可以指定结束日期,获取历史行情 print('上证指数历史行情',df)
df=get_price('000001.XSHG',frequency='1w',count=5,end_date='2018-06-15')
#支持'1d'日, '1w'周, '1M'月
print('上证指数历史周线',df)
df=get_price('sh600519',frequency='15m',count=5) #分钟线实时行情,可用'1m','5m','15m','30m','60m' print('贵州茅台15分钟线',df)
df=get_price('600519.XSHG',frequency='60m',count=6) #分钟线实时行情,可用'1m','5m','15m','30m','60m' print('贵州茅台60分钟线',df)
完整代码:多家公司股价预测
1. 安装依赖包
确保你已经安装了必要的库:
1 |
|
2. 准备 CSV 文件
假设你的 CSV 文件结构如下(文件名为
stock_data.csv
):
Date | Open | High | Low | Close | Volume |
---|---|---|---|---|---|
2024-01-01 | 150.00 | 155.00 | 148.00 | 152.00 | 1000000 |
2024-01-02 | 210.00 | 215.00 | 208.00 | 212.00 | 1500000 |
... | ... | ... | ... | ... | ... |
3. 机器学习代码
1 |
|
4. 使用方法说明
- 加载数据:
- 将你的 CSV 文件(如
stock_data.csv
)存放在脚本的同一目录中,或使用绝对路径。 - 使用
pandas.read_csv()
函数加载 CSV 数据。
- 将你的 CSV 文件(如
- 数据预处理:
- 将日期列转换为
datetime
类型并设为索引。 - 为所有记录添加前一天的开盘价和收盘价作为特征,并删除缺失值。
- 将日期列转换为
- 数据分割:
- 使用
train_test_split()
将数据集分为训练集和测试集。test_size=0.2
表示 20% 的数据用于测试。
- 使用
- 模型训练:
- 使用
LinearRegression
构建线性回归模型。 - 调用
fit()
方法训练模型。
- 使用
- 预测与评估:
- 使用
predict()
方法对测试集进行预测。 - 计算均方误差(MSE)评估模型性能。
- 使用
- 结果展示:
- 将预测值和实际值显示出来,以比较模型的预测效果。
- 图形化展示:
- 使用
matplotlib
库绘制预测值与实际值的对比图,帮助你直观地了解模型的表现。
- 使用
注意事项
- 你可以将 CSV 文件替换为你自己的股票数据,确保文件的格式与示例相匹配。
- 该示例使用简单的线性回归模型,可以尝试其他高级模型(如 LSTM、XGBoost)以提高预测效果。
- 数据中的噪声和不可预测性可能会影响预测准确性,在实际应用中需要小心处理。