Python机器学习Sklearn入门之线性回归

来源:互联网 发布:微信签到抽积分 源码 编辑:程序博客网 时间:2024/05/16 10:23

Python机器学习Sklearn入门之线性回归

其表达形式为 y = w’x + e,e为误差服从均值为0的正态分布

读数据,保存到变量 x_train,y_train

fs0='dat/iris_'print('\n1# fs0,',fs0)x_train=pd.read_csv(fs0+'xtrain.csv',index_col=False);y_train=pd.read_csv(fs0+'ytrain.csv',index_col=False);

输出训练数据尾部

print('\n2# train')print(x_train.tail())print(y_train.tail())

对应输出结果

      x1   x2   x3   x4107  6.3  2.8  5.1  1.5108  6.4  3.1  5.5  1.8109  6.3  2.5  4.9  1.5110  6.7  3.1  5.6  2.4111  4.9  3.1  1.5  0.1     xid107    1108    1109    3110    1111    2

调用线性回归函数,建立模型,保存到 mx

mx =zai.mx_line(x_train.values,y_train.values)

mx_line函数

def mx_line(train_x,train_y):    mx = LinearRegression()    mx.fit(train_x,train_y)    return mx
    调用 LinearRegression() 函数生成模型,运行 fit,分析学习数据。Sklearn 模块库中的各种机器学习函数基本上都是采用 fit 自动学习和建立模型

线性回归函数接口

LinearRegression(fit_intercept = True,normalize = False,copy_x = True,n_jobs = 1)

读入测试数据

x_test=pd.read_csv(fs0+'xtest.csv',index_col=False)df9=x_test.copy()print('\n4# x_test')print(x_test.tail())

对应输出

     x1   x2   x3   x433  6.4  2.8  5.6  2.134  5.8  2.8  5.1  2.435  5.3  3.7  1.5  0.236  5.5  2.3  4.0  1.337  5.2  3.4  1.4  0.2

预测

print('\n5# 预测')y_pred = mx.predict(x_test.values)df9['y_predsr']=y_pred

读训练数据的正确结果,保存到 y_test

y_test=pd.read_csv(fs0+'ytest.csv',index_col=False)print('\n6# y_test')print(y_test.tail())

输出结果

    xid33    134    135    236    337    2

整理结果,保存文件

df9['y_test'],df9['y_pred']=y_test,y_preddf9['y_pred']=round(df9['y_predsr']).astype(int)   df9.to_csv('tmp/iris_9.csv',index=False)print('\n7# df9')print(df9.tail())

输出结果

     x1   x2   x3   x4  y_predsr  y_test  y_pred33  6.4  2.8  5.6  2.1  1.551677       1       234  5.8  2.8  5.1  2.4  1.209887       1       135  5.3  3.7  1.5  0.2  2.093058       2       236  5.5  2.3  4.0  1.3  2.317451       3       237  5.2  3.4  1.4  0.2  2.300976       2       2

检验测试结果

dacc=zai.ai_acc_xed(df9,1,False)print('\n8# mx:mx_sum,kok:{0:.2f}%'.format(dacc))   

预测结果

8# mx:mx_sum,kok:44.74%

线性回归的准确率只有 44.74%

Python机器学习入门源代码和数据集 请点这里

原创粉丝点击