#导入模块包
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn import metrics
import pandas as pd
from sklearn.linear_model import LinearRegression
import numpy as np
import seaborn as sns
#读取数据
``
data = pd.read_csv('Advertising.csv')
#创建特征列表
feature_cols=['TV', 'radio', 'newspaper']
#使用列表选择data的子集
X=data[feature_cols]
# print(X.head())
y=data['sales']
# print(y.head())
X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=1,test_size=0.2)#分为训练集和测试集,训练集占0.8
# print(X_train.shape)
# print(y_test.shape)
#训练模型
linear_reg=LinearRegression()#尝试了下不能直接使用LinearRegression()来进行拟合
model=linear_reg.fit(X_train,y_train)
print('截距是:',model.intercept_)
print('系数是:',model.coef_)
#预测结果
y_predict=linear_reg.predict(X_test)
#测试准确度
'''
print(type(y_predict),type(y_test))
print(len(y_predict),type(y_test))
print(y_predict.shape,y_test.shape)
sum_mean=0
for i in range(len(y_predict)):
sum_mean+=(y_predict[i]-y_test.values[i])**2
sum_erro=np.sqrt(sum_mean/40)
print('Rmse',sum_erro)
这是一个具体的求RMSE 的公式,下边的那个是一个包,可以直接求出
'''
print ('RMSE',np.sqrt(metrics.mean_squared_error(y_test, y_predict)))#squared先求差的平方再求平均数,再求开平方
绘制ROC曲线
plt.figure()
plt.plot(range(len(y_predict)),y_predict,'b',label='predict')
plt.plot(range(len(y_test)),y_test,'r',label='test')
plt.legend()#显示图中的标签
plt.xlabel('the number of sales')#横坐标
plt.ylabel('value of sales')#纵坐标
plt.show()
#结论
通过简单的数据集,分析出影响销售额的三种因素的回归系数
电视广告对商品销售的影响最大,这也是与实际生活中判断的相符
从上图可以看模型的测试集的预测的出的结果y_predict与真实的测试值y_test误差很小,说明整个数据拟合出的模型还是很不错,当然也是因为只考虑了三个简单的影响因素,实际生活中影响销售额的因素是很多的。
我很乐意帮助你优化你的问题,并提供一些提示。你的问题似乎是关于机器学习逻辑回归特征映射的代码难以理解。为了更好地理解你的问题,你可以提供一些具体的代码示例,这将有助于我们更好地帮助你理解代码和解决问题。
另外,我建议你做一个具体的计划来学习逻辑回归和特征映射。这可以包括制定一个时间表,选择一些相关的书籍和视频教程,并保持学习的节奏。如果你想写一篇关于逻辑回归和特征映射的文章,我建议你参考一些相关的文献,并注意使用正确的技术术语。
最后,如果你需要展示一些数据或结果,我建议你使用表格或其他可视化工具,这将使你的数据更易于理解。如果你需要任何帮助,别犹豫,随时联系我。