- 第3章 构建应用程序,发现低价的机票
- 第3章国外的购票网站进不去,后续也没去操作了,就先跳过。
第 4 章 使用逻辑回归预测 IPO 市场
IPO 市场。
公开募股是一家私人公司成为上市公司的过程。公开发行为公司募集资金,并让 公众通过购买其股票,获得投资该公司的机会。
pandas
请访问 https://www.iposcoop.com/scoop-track-record-from-2000-to-present /并单击页面底部的按钮,下载一个电子表格。我们将其加载到 pandas。
可视化。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from patsy import dmatrix
from sklearn.ensemble import RandomForestClassifier
from sklearn import linear_model
#%matplotlib inline
ipos = pd.read_excel("C:\\Users\\think\\Desktop\\其他\\SCOOP.xlsx",encoding='latin-1')
print(ipos)
#清理工作
ipos = ipos.applymap(lambda x: x if not '$' in str(x) else x.replace('$',''))
ipos = ipos.applymap(lambda x: x if not '%' in str(x) else x.replace('%',''))
print(ipos)
ipos.info()#查看列的数据类型
ipos.replace('N/C',0, inplace=True)
ipos.replace('NC',0, inplace=True)
ipos['Trade Date'] = pd.to_datetime(ipos['Trade Date'])
print(ipos['Trade Date'].dt.year)
ipos['Offer Price'] = ipos['Offer Price'].astype('float')
ipos['Opening Price'] = ipos['Opening Price'].astype('float')
ipos['1st Day Close'] = ipos['1st Day Close'].astype('float')
ipos['1st Day% Px Chng'] = ipos['1st Day% Px Chng'].astype('float')
ipos['$ Change Close'] = ipos['$ Change Close'].astype('float')
ipos['$ Change Opening'] = ipos['$ Change Opening'].astype('float')
#ipos['Star Ratings'].fillna(0)
ipos['Star Ratings'] = ipos['Star Ratings'].astype('int')
ipos.groupby(ipos['Trade Date'].dt.month)['1st Day% Px Chng'].mean().plot(kind='bar', figsize=(15,10), color='k', title='1st Day Mean IPO Percentage Change')
ipos.groupby(ipos['Trade Date'].dt.month)['1st Day% Px Chng'].median().plot(kind='bar', figsize=(15,10), color='k', title='1st Day Median IPO Percentage Change')
plt.show()
ipos[ipos['Trade Date']=='11/120']
ipos.loc[1660, 'Trade Date'] = '2012-11-20'
print(ipos.info())
•数据清洗和特征工程。
•使用逻辑回归的二元分类。
•模型评估。
•特征的重要性。
特征工程也做不了了,拉不了想要的数据,下面就是限制了。
二元分类
为了预测二进制的结果(即 1 或 0,是或
否),我们将从称为逻辑回归(logistic regression)
的模型开始。逻辑回归使用了逻辑函数。这是很
理想的选择,因为逻辑回归有几个数学属性,
由于逻辑函数的形式,它特别适合于提供概
率的估计,以及依据这些估计的二进制响应。任何大于 0.5 的被分类为 1,而任何低于 0.5
的被分类为 0。这些 1 和 0 可以对应任何我们想要分类的事物。
数据一没有就很难跟着书进行下去。而且数据随着时间,数据会被更新,python操作也随着版本代码有细微差别,写写代码报错好像变的平常,根据报错改改再运行也是有进步的。