Keras实现一个简单的Regression回归

这里写图片描述

linux平台下运行,使用Keras框架,其中构建神经网络很简单,例子中指构造了一层神经网络
通过深度学习,将图中的点回归成线性模型,学习直线的W和b

#import various of packages
import numpy as np

np.random.seed(1337)
from keras.models import Sequential
from keras.layers import Dense
import matplotlib.pyplot as plt

#create some data
X=np.linspace(-1,1,200)
np.random.shuffle(X)
//最后训练出的结果W越接近0.5,b越接近2则效果越好
Y=0.5*X+2+np.random.normal(0,0.05,(200,))

#plot data
plt.scatter(X,Y)
plt.show()

//前160个数据作为训练样本,用于训练模型
X_train,Y_train=X[:160],Y[:160]
X_test,Y_test=X[160:],Y[160:]

#build a neural network
model=Sequential()
//Dense为全连接层,设定输入和输出的维度,因为每次输入的是一个点,所以维度为1,输出也是一个点,所以维度也为1.
model.add(Dense(output_dim=1,input_dim=1))

#choose loss function and optimizer
//训练之前,编译,设置随时函数,和优化函数
model.compile(loss='mse',optimizer='sgd')


#training
//训练步骤,300次,每100次返回一个损失值
print('Training---------------')
for step in range(301):
//每次训练batch大小的数据量
    cost=model.train_on_batch(X_train,Y_train)
    if step%100==0:
        print('train cost:',cost)


#test
print('\nTesting---------------')
cost=model.evaluate(X_test,Y_test,batch_size=40)
print('test cost:',cost)
//返回权重项和偏置项
W,b=model.layers[0].get_weights()
print('Weight=',W,'\nbiases=',b)


#plotting the prediction
//图形化的形式,显示出来
Y_pred=model.predict(X_test)
plt.scatter(X_test,Y_test)
plt.plot(X_test,Y_pred)
plt.show()

运行结果:

这里写图片描述
最后训练结果W=0.49222, b=1.99950

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您的问题是如何不使用Keras实现泰坦尼克号旅客生存概率预测。下面我将给出一个使用Python和Scikit-learn库的简单示例,具体实现如下: 首先,我们需要加载泰坦尼克号数据集,可以使用Scikit-learn库提供的load_breast_cancer()函数进行加载。然后,我们可以对数据进行处理,包括数据清洗、特征工程等。具体来说,我们可以对缺失数据进行填充,对分类变量进行独热编码等。 接着,我们可以使用Scikit-learn库提供的模型训练函数,如逻辑回归、决策树等,对数据进行训练。在训练过程中,我们可以使用交叉验证等方法对模型进行评估和调优。 最后,我们可以使用训练好的模型对新的数据进行预测,以得到旅客生存概率。 下面是一个简单的示例代码: ```python from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.preprocessing import OneHotEncoder from sklearn.linear_model import LogisticRegression # 加载数据集 data = load_breast_cancer() # 数据预处理 X = data.data y = data.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) enc = OneHotEncoder() X_train = enc.fit_transform(X_train) X_test = enc.transform(X_test) # 模型训练 model = LogisticRegression() model.fit(X_train, y_train) # 模型评估 score = model.score(X_test, y_test) print("Accuracy:", score) # 预测新数据 new_data = [[14.0, 12.0, 5.0, 3.0, 2.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0]] new_data = enc.transform(new_data) pred = model.predict_proba(new_data) print("Survival probability:", pred[0][1]) ``` 在上面的代码中,我们使用逻辑回归模型对数据进行训练和预测。在预测新数据时,我们使用predict_proba()函数来得到旅客生存概率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值