【有书共读】python带我起飞读书笔记10
第11章 实战
1. 爬取股票内容
import urllib.request
import re
stock_CodeUrl = 'http://quote.eastmoney.com/stocklist.html'
#获取股票代码列表
def urlTolist(url):
allCodeList = []
html = urllib.request.urlopen(url).read()
html = html.decode('gbk')
s = r'<li><a target="_blank" href="http://quote.eastmoney.com/\S\S(.*?).html">'
pat = re.compile(s)
code = pat.findall(html)
for item in code:
if item[0]=='6' or item[0]=='3' or item[0]=='0':
allCodeList.append(item)
return allCodeList
if __name__=='__main__':
allCodelist = urlTolist(stock_CodeUrl)
print(allCodelist[:10])
第12章 自动化实战:读取Excel数据文件,并用可视化分析
from sklearn.manifold import TSNE
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams['font.family'] = 'STSong'
import pandas as pd
df = pd.read_csv("d://all_stock_data//600001.csv",encoding = "gbk")
print(df.head(1)) # 输出部分信息
df.plot() #图示
price = df[['日期','收盘价']] #选取关注列
print(price[:5]) #输出部分信息
price.columns = ["data",'price'] #修改列名
print(price[:5]) #输出部分信息
df_new = df[['日期','开盘价','收盘价']].set_index('日期')# 修改索引
print(df_new[:5]) #输出部分信息
df_new['收盘价'][:20].plot(kind = 'bar') #以直方图形式显示
df_new[:20].plot() #以直方图形式显示 第13章 从一组看似混乱的数据中找出y=2x的规律
本案例大概分为如下四步:
1.准备数据
2.训练模型并实现可视化
3.评估模型
4.保存模型,并应用模型
1.准备数据
代码:
import numpy as np import matplotlib.pyplot as plt #样本准备 train_X = np.linspace(-1, 1, 100) train_Y = 2 * train_X + np.random.randn(*train_X.shape) * 0.3 # y=2x,但是加入了噪声 #显示模拟数据点 plt.plot(train_X, train_Y, 'ro', label='Original data') plt.legend() plt.show()
输入6,的模型预测结果: [[ 12.03576099]] 线性模型的斜率与截距: [[ 1.99726304]] [ 0.05218275] 使用斜率与截距的计算结果: [[ 12.03576099]]
2.训练模型并实现可视化
代码:
#模型训练及可视化
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(train_X.reshape(100,1),train_Y.reshape(100,1))
print("输入6,的模型预测结果:",model.predict(6))
print("线性模型的斜率与截距:",model.coef_,model.intercept_)
#y = kx+b
print("使用斜率与截距的计算结果:",model.coef_*6 +model.intercept_ ) 3.评估模型
#模型评估
X_test = np.linspace(11,20,20)
Y_test = 2 * X_test + np.random.randn(*X_test.shape) * 0.3
print("模型评估的分值:",model.score(X_test.reshape(20,1),Y_test.reshape(20,1))) 4.保存模型,并应用模型 #模型保存,及应用
from sklearn.externals import joblib
joblib.dump(model, "train_model.m")
model = joblib.load("train_model.m")
print("导入模型,并输入6得到的预测结果:",model.predict(6)) 模型评估的分值: 0.997262181599 导入模型,并输入6得到的预测结果: [[ 12.03576099]]