lizz2276的线性回归helloworld

from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures,StandardScaler,MinMaxScaler
from sklearn.model_selection import train_test_split
import pandas as pd
import numpy as np
from sklearn.metrics import r2_score
In [220]:
df_data=pd.read_csv(‘E:\AI\回归训练数据模板.csv’,encoding=‘gbk’)
df_data=df_data.replace({’ n u l l null null’:np.nan,’/0’:np.NAN})
print(len(df_data))
df_data=df_data.dropna()
print(len(df_data))
df_target=pd.read_csv(‘E:\AI\回归目标预测模板.csv’,encoding=‘gbk’)
df_target=df_target.replace({’ n u l l null null’:np.nan,’/0’:np.NAN})
print(len(df_target))
df_target=df_target.dropna()
print(len(df_target))
E:\ProgramData\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py:2728: DtypeWarning: Columns (3,7,16,17,18,19,21,23,24,25,26,27,30,33,34) have mixed types. Specify dtype option on import or set low_memory=False.
interactivity=interactivity, compiler=compiler, result=result)
39678
39588
15000
14976
In [209]:
df.info()
<class ‘pandas.core.frame.DataFrame’>
Int64Index: 39588 entries, 0 to 39677
Data columns (total 35 columns):
对象名称 39588 non-null object
RRC建立尝试次数(业务)(次) 39588 non-null int64
RRC建立成功次数(业务)(次) 39588 non-null int64
RRC建立成功率(服务类)(%) 39588 non-null object
RRC建立成功率(非服务类)(%) 39588 non-null object
E-RAB建立尝试总次数 39588 non-null int64
E-RAB建立成功总次数 39588 non-null int64
ERAB建立成功率(ALL)(%) 39588 non-null object
E-RAB正常释放总次数 39588 non-null int64
E-RAB异常释放总次数 39588 non-null int64
QCI为1的业务E-RAB异常释放次数 39588 non-null int64
QCI为1的业务E-RAB正常释放次数 39588 non-null int64
掉话率(ALL)(%) 39588 non-null object
覆盖触发的重定向到WCDMA的总次数 39588 non-null int64
E-RAB建立成功总次数_ZTZ 39588 non-null int64
小区切换入E-RAB成功建立总次数 39588 non-null int64
LTE弱覆盖比例(含切) 39588 non-null object
平均CQI 39588 non-null object
平均CQI_ZT 39588 non-null object
CQI大于6比例(周期+非周期)_cell_zj(%) 39588 non-null object
CQI大于6比例(非周期)_cell_zj(%) 39588 non-null object
CQI大等于7的比例(%) 39588 non-null object
CQI大于等于7次数(次) 39588 non-null int64
上行平均干扰_ZT 39588 non-null object
上行平均干扰_ZTZ 39588 non-null object
标签列 39588 non-null object
单用户上行平均速率(Mbps)_ZT 39588 non-null object
系统上行PRB利用率(%) 39588 non-null object
小区上行业务量(GB) 39588 non-null float64
小区下行业务量(GB) 39588 non-null float64
系统下行PRB利用率(%) 39588 non-null object
RRC连接态平均用户数(个数) 39588 non-null float64
RRC连接态最大用户数(个数) 39588 non-null int64
系统每PRB接收的干扰噪声平均值(毫瓦分贝) 39588 non-null object
系统上行每个PRB上检测到的干扰噪声的平均值(毫瓦分贝) 39588 non-null object
dtypes: float64(3), int64(13), object(19)
memory usage: 10.9+ MB
In [210]:
x_columns = [c for c in df_data.columns if c not in [‘对象名称’, ‘时间’] and (‘标签’) not in c]
print(x_columns)
df_data[x_columns]=df_data[x_columns].astype(‘float32’)
y_column=[‘标签列’]
df_data[y_column]=df_data[y_column].astype(‘float32’)
test_count=30
X, df_test_x, y, df_test_y = train_test_split(df_data[x_columns], df_data[y_column], test_size=test_count/100,
random_state=1)

df_target_x=df_target[x_columns].values
df_target_x=df_target_x.astype(‘float32’)
[‘RRC建立尝试次数(业务)(次)’, ‘RRC建立成功次数(业务)(次)’, ‘RRC建立成功率(服务类)(%)’, ‘RRC建立成功率(非服务类)(%)’, ‘E-RAB建立尝试总次数’, ‘E-RAB建立成功总次数’, ‘ERAB建立成功率(ALL)(%)’, ‘E-RAB正常释放总次数’, ‘E-RAB异常释放总次数’, ‘QCI为1的业务E-RAB异常释放次数’, ‘QCI为1的业务E-RAB正常释放次数’, ‘掉话率(ALL)(%)’, ‘覆盖触发的重定向到WCDMA的总次数’, ‘E-RAB建立成功总次数_ZTZ’, ‘小区切换入E-RAB成功建立总次数’, ‘LTE弱覆盖比例(含切)’, ‘平均CQI’, ‘平均CQI_ZT’, ‘CQI大于6比例(周期+非周期)_cell_zj(%)’, ‘CQI大于6比例(非周期)_cell_zj(%)’, ‘CQI大等于7的比例(%)’, ‘CQI大于等于7次数(次)’, ‘上行平均干扰_ZT’, ‘上行平均干扰_ZTZ’, ‘单用户上行平均速率(Mbps)_ZT’, ‘系统上行PRB利用率(%)’, ‘小区上行业务量(GB)’, ‘小区下行业务量(GB)’, ‘系统下行PRB利用率(%)’, ‘RRC连接态平均用户数(个数)’, ‘RRC连接态最大用户数(个数)’, ‘系统每PRB接收的干扰噪声平均值(毫瓦分贝)’, ‘系统上行每个PRB上检测到的干扰噪声的平均值(毫瓦分贝)’]
In [211]:
model=LinearRegression()
In [219]:
n_yuan=3
for i in range(1,n_yuan+1):
ss=StandardScaler()
if i==1:
X_ss=ss.fit_transform(X)
df_test_x_ss=ss.fit_transform(df_test_x)
df_target_x_ss=ss.fit_transform(df_target_x)
else:
X_ss=ss.fit_transform(PolynomialFeatures(degree=i).fit_transform(X))
df_test_x_ss=ss.fit_transform(PolynomialFeatures(degree=i).fit_transform(df_test_x))
df_target_x_ss=ss.fit_transform(PolynomialFeatures(degree=i).fit_transform(df_target_x))
model = model.fit(X_ss, y)
y_predict=model.predict(X_ss)
df_test_y_predict=model.predict(df_test_x_ss)

r2_s_train=r2_score(y,y_predict)
r2_s_test=r2_score(df_test_y,df_test_y_predict)
print(str(i)+'次方训练集的R2值为:'+str(r2_s_train),str(i)+'次方测试集的R2值为:'+str(r2_s_test))

df_target_y_predict=model.predict(df_target_x_ss)
df_target[str(i)+'次方预测值']=df_target_y_predict

1次方训练集的R2值为:0.43635692458812236 1次方测试集的R2值为:0.4277751800259637
2次方训练集的R2值为:0.5869378851607394 2次方测试集的R2值为:-15.35854045709021
E:\ProgramData\Anaconda3\lib\site-packages\numpy\core_methods.py:116: RuntimeWarning: overflow encountered in multiply
x = um.multiply(x, x, out=x)
E:\ProgramData\Anaconda3\lib\site-packages\numpy\core_methods.py:117: RuntimeWarning: overflow encountered in reduce
ret = umr_sum(x, axis, dtype, out, keepdims)
3次方训练集的R2值为:0.7119464776975755 3次方测试集的R2值为:-8.40915390263844e+21
In [207]:
df_target_data[‘预测结果’]=df_target_y_predict
df_target_data.to_csv()
File “”, line 2
df_target_data.
^
SyntaxError: invalid syntax

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值