<jupyter_start><jupyter_text>说明：1、这里以空气质量监测的部分数据为例，对PM2.5（输出变量）进行预测。首先考虑只有一个输入变量CO的情况，建立一元线性回归模型。然后，研究SO2和CO对PM2.5的影响，建立多元线性回归模型。2、建立线性回归模型需引用sklearn中的linear_model。首先，modelLR=LM.LinearRegression()定义modelLR对象为线性模型；然后，modelLR.fit(X,y)表示基于给出的X和y估计模型参数。其中，X为输入变量（矩阵形式），y为输出变量。最后，modelLR.predict(X)表示将X带入回归方程计算y的预测值。3、线性回归模型参数的估计值存储在intercept_和.coef_属性中，依次为截距项和回归系数。4、在研究CO对PM2.5的影响时，CO的回归系数估计值（60.59）大于0，表示其他因素不变条件下，CO浓度增加一个单位将导致PM2.5均值增加60.59。5、在研究SO2和CO对PM2.5的影响时，CO的回归系数估计值（56.86）大于SO2（0.86），表明CO对PM2.5的正向贡献大于SO2。<jupyter_code>data=pd.read_excel('北京市空气质量数据.xlsx')
data=data.replace(0,np.NaN)
data=data.dropna()
data['有无污染']=data['质量等级'].map({'优':0,'良':0,'轻度污染':1,'中度污染':1,'重度污染':1,'严重污染':1})
print(data['有无污染'].value_counts())

fig = plt.figure()
ax = fig.add_subplot(111)
flag=(data['有无污染']==0)
ax.scatter(data.loc[flag,'PM2.5'],data.loc[flag,'PM10'],c='cornflowerblue',marker='o',label='无污染',alpha=0.6)
flag=data['有无污染']==1
ax.scatter(data.loc[flag,'PM2.5'],data.loc[flag,'PM10'],c='grey',marker='+',label='有污染',alpha=0.4)
ax.set_xlabel('PM2.5')
ax.set_ylabel('PM10')
plt.legend()

##Logistic回归
X=data[['PM2.5','PM10']]
y=data['有无污染']
modelLR=LM.LogisticRegression()
modelLR.fit(X,y)
print("截距项:%f"%modelLR.intercept_)
print("回归系数:",modelLR.coef_)
print("优势比{0}".format(np.exp(modelLR.coef_)))
yhat=modelLR.predict(X)
print("预测结果：",yhat)<jupyter_output>0    1204
1     892
Name: 有无污染, dtype: int64
截距项:-4.858429
回归系数: [[0.05260358 0.01852681]]
优势比[[1.05401173 1.0186995 ]]
预测结果： [0 1 0 ... 0 0 0]
{'fraction_non_alphanumeric': 0.218436873747495, 'fraction_numerical': 0.08617234468937876, 'mean_word_length': 12.140350877192983, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '545777', 'license': 'MIT', 'n_tokens_mistral': 1011, 'n_tokens_neox': 1035, 'n_words': 46, 'path': 'chapter2-1.ipynb', 'repo_name': 'cutelittletiantian/python-ML-principles-and-practice', 'size': '1497'}