肥乡网站建设,python基础教程电子书在线阅读,企业网站建立,软件开发零基础入门大家好#xff0c;生成式人工智能无疑是一个改变游戏规则的技术#xff0c;但对于大多数商业问题来说#xff0c;回归和分类等传统的机器学习模型仍然是首选。
私募股权或风险投资这样的投资者利用机器学习#xff0c;首先必须了解关注的数据以及它是如何被使用的。投资公…大家好生成式人工智能无疑是一个改变游戏规则的技术但对于大多数商业问题来说回归和分类等传统的机器学习模型仍然是首选。
私募股权或风险投资这样的投资者利用机器学习首先必须了解关注的数据以及它是如何被使用的。投资公司的决策不仅仅基于可量化的数据如支出、增长和烧钱率等还包括创始人的记录、客户反馈、产品体验等定性数据。
本文将介绍线性回归的基础知识完整的代码可以从下面的链接获取。
【使用Python机器学习线性回归模型进行利润预测 】
1.项目设置
本文将使用Jupyter Notebook进行这个项目首先导入一些库。
# 绘制图表
import matplotlib.pyplot as plt
# 数据管理和处理
from pandas import DataFrame
# 绘制热力图
import seaborn as sns
# 分析
from sklearn.metrics import r2_score
# 用于训练和测试的数据管理
from sklearn.model_selection import train_test_split
# 导入线性模型
from sklearn.linear_model import LinearRegression
# 代码注释
from typing import List
2.数据
为了简化问题本文将使用区域数据。这些数据代表了公司的支出类别和利润。可以看到一些不同数据点的示例。本文希望使用支出数据来训练一个线性回归模型并预测利润。 重要的是要理解本文将使用的数据描述的是一家公司的支出情况只有将支出数据与收入增长、当地税收、摊销和市场状况等数据结合起来时才能得到有意义的预测能力。 RD SpendAdministrationMarketingSpend Profit165349.2136897.8471784.1192261.83162597.7151377.59443898.53191792.06153441.51101145.55407934.54191050.39 加载数据 companies: DataFrame pd.read_csv(companies.csv, header 0)
3.数据可视化
了解数据对于确定要使用的特征、需要进行归一化和转换的特征、从数据中删除异常值以及对特定数据点进行的处理是很重要的。
可以直接访问利润使用DataFrame绘制直方图Pandas使用Matplotlib来绘制数据帧
companies[Profit].hist( colorg, bins100); 可以看到利润超过20万美元的异常值非常少由此还可以从中推断出本文的数据代表的是具有特定规模的公司。由于异常值的数量相对较少可以将其保留。
下面绘制支出特征直方图希望可以看到使用特征的直方图并查看其分布情况Y轴表示数字频率X轴表示支出。
companies[[RD Spend, Administration, Marketing Spend
]].hist(figsize(16, 20), bins50, xlabelsize8, ylabelsize8)还可以看到有一个健康的分布只有少量的异常值可以预期在研发和市场营销上花费更多的公司利润更高。从下面的散点图中可以看出研发支出和利润之间存在明显的相关性。
profits: DataFrame companies[[Profit]]
research_and_development_spending: DataFrame companies[[RD Spend]]figure, ax plt.subplots(figsize (9, 9))
plt.xlabel(RD Spending)
plt.ylabel(Profits)
ax.scatter(research_and_development_spending, profits, s60, alpha0.7, edgecolorsk,colorg,linewidths0.5
)通过相关热图进一步探索支出和利润之间的相关性从图中可以看出研发和市场营销支出与利润的相关性比行政支出更高。
sns.heatmap(companies.corr())4.模型训练
需要将数据集分割为训练集和测试集两部分Sklearn提供了一个辅助方法来完成这个任务。鉴于本文的数据集很简单且足够小可以按照以下方式将特征和目标分离开来。
features: DataFrame companies[[RD Spend, Administration, Marketing Spend,
]]
targets: DataFrame companies[[Profit]]train_features, test_features, train_targets, test_targets train_test_split(features, targets,test_size0.2
)大多数人会使用不同的命名约定如X_train、y_train或其他类似的变体创建并训练模型。
model: LinearRegression LinearRegression()
model.fit(train_features, train_targets)
5.模型评估
对模型的性能及其可用性进行评估首先查看计算得到的系数。在机器学习中系数是用来与每个特征相乘的学习到的权重或数值期望看到每个特征都有一个学习系数。
coefficients model.coef_
We should see the following in our consoleCoefficients [[0.55664299 1.08398919 0.07529883]]正如上述所看到的有3个系数每个特征对应一个系数“研发支出”、“行政支出”、“市场营销支出”。还可以将其绘制成图表以便更直观地了解每个系数。
plt.figure()
plt.barh(train_features.columns, coefficients[0])
plt.show()为了解模型的误差率将使用Sklearn的R2得分
test_predictions: List[float] model.predict(test_features)
root_squared_error: float r2_score(test_targets, test_predictions)
float
We should see an ouput similar to this
0.9781424529214315离1越近模型就越准确实际上可以用一种非常简单的方式对这一点进行测试。
可以取数据集的第一行如果使用下面的支出模型来预测利润期望得到一个足够接近192261美元的数字。
RD Spend | Administration | Marketing Spend | Profit
165349.2 136897.8 471784.1 192261.83接下来创建一个推理请求
inference_request: DataFrame pd.DataFrame([{RD Spend:165349.2, Administration:136897.8, Marketing Spend:471784.1
}])运行模型
inference: float model.predict(inference_request)We should get a number that is around
199739.88721901现在可以看到的误差率是abs(199739-192261)/1922610.0388这说明模型是非常准确的。
综上处理数据、搭建模型和分析数据有很多方法没有一种解决方案适用于所有情况。当用机器学习解决业务问题时其中一个关键过程是搭建多个旨在解决同一个问题的模型并选择最有前途的模型。