Titanic 泰坦尼克号预测-Tensorflow 方法-【Kaggle 比赛】

本文介绍Kaggle入门比赛Titanic泰坦尼克号幸存预测的解题思路,使用的是神经网络和Tensorflow框架。提交代码附在本文的最后部分。

基本思路为:

  1. 导入数据集
  2. 对数据预处理
  3. 训练
  4. 预测并输出结果

一、入门介绍

1. 比赛介绍

        Kaggle是一个数据建模和数据分析竞赛平台。

        泰坦尼克号幸存预测是Kaggle上的一个入门级比赛,利于平台给的数据集,预测泰坦尼克号上不同乘客的幸存情况,并熟悉机器学习基础知识。

2. 板块介绍

Titanic比赛的主页-Kaggle
Titanic比赛的主页-Kaggle

比赛地址:Titanic - Machine Learning from Disaster

Titanic - Machine Learning from Disasterhttps://www.kaggle.com/competitions/titanic

Kaggle的主页面如上,我们主要关注 Overview、Data 和 Submit Predictions 三个板块

  • Overview: 比赛的基本介绍
  • Data: 数据集的结构和字段介绍,在这里可以下载所需要的数据集
  • Submit Predictions: 提交预测结果,并查看本次比赛的分数

其他板块如 Code 可以查看其他团队分享的代码,Discussion 是解题思路的分享,Leaderboard 是分数排行榜。

3. 平台提交流程

  1. 首先在 data 板块中点击“Download All”下载训练集和测试集
  2. 训练集附带真实结果,而测试集是用来做预测并提交结果
  3. 编写代码预测后,按照要求的格式在 Submit Predictions 上传结果,并查看本次提交的分数与排名

二、方法介绍

1.理解需求

比赛很简单:创建一个模型,预测哪些乘客在泰坦尼克号沉船中幸存下来。
下载下来的数据包括三个文件:训练集(train.csv), 测试集(test.csv), 提交示例(gender_submission.csv)

  • 训练集(train.csv):用于神经网络进行训练的数据集,包含真实结果列(Survival)
  • 测试集(test.csv):训练好模型后,用此文件中数据进行预测得到结果
  • 提交示例(gender_submission.csv):最终提交结果的格式示例,包含 PassengerId 和 Survived 两列

2.数据预处理

  • 可以用各种工具(pandas、Excel 和 Kaggle 自带表格等)分析训练集的数据,判断每一列的数据类型和是否有空缺等情况
  • 去除对结果不影响的列
  • 对空缺的单元进行填充

3.构建模型

  • 使用 keras 的 Sequence 模型
  • 隐藏层使用 relu 激活函数

4.模型评估

  • 使用 keras 的 compile, fit, evaluate 方法进行训练和评估
  • 使用 keras 的 predict 方法预测结果,并将结果按提交示例形成 csv 文件输出

三、编码过程

  • 首先在 data 板块中点击“Download All”下载训练集和测试集

1.导入数据 load_data

  • 使用 pandas 的 read_csv 方法,导入数据 load_data
# 提前将所有包引入
import pandas as pd
import numpy as np
import tensorflow as tf
from tensorflow.python.keras import activations
import matplotlib.pyplot as plt
from tensorflow.keras import regularizers
import datetime# 导入数据
def load_data(path_url, test_path_url):raw_train_dataset = pd.read_csv(path_url)raw_test_dataset = pd.read_csv(test_path_url)return raw_train_dataset, raw_test_datasetif __name__ == "__main__":# 1. 导入数据path_url = r"kaggle\titanic\train.csv"test_path_url = r"kaggle\titanic\test.csv"raw_train_dataset, raw_test_dataset = load_data(path_url, test_path_url)

2.数据预处理 preprocess

  • 首先我们确定数据集 features_test

    训练集 train.csv 中共包含 12 列,分别是 passengerId,survival,pclass,name,sex,Age,sibsp,parch,ticket,fare,cabin,embarked。

    通过分析可知对预测结果有影响的列为 Pclass,Sex,Fare,Age,SibSp,Parch,Embarked,而Survived为真实标签列。PassengerId在测试集中会用到。

    根据以上分析确定所需的列,形成features_test,将训练集裁剪为所需列。

  • 接下来对数据的缺失值进行填补

    用pandas的describe()和isnull().sum()方法可以对训练集进行数值统计,考虑以中位数来替代缺失值。其中缺失较多的列为Age和Fare列。

  • 数据类型统一为数字编码
    考虑Sex和Embarked列是字符串,将其修改为每一个可能性字符单独一列,并去除原列。

  • 归一化输入(标准化)
    第一步是零均值化,每个训练数据𝑥减去均值𝜇。第二步是归一化方差。

  • 分别处理训练集和测试集
    对于训练集,我们要把Survived列单独提出来作为标签,即真实值。

    对于测试集,对比提交示例(gender_submission.csv)文件,我们保留PassengerId列作为索引id。

# 数据预处理的基础方法
def preprocess(raw_dataset, features, train=True):"""用于predict的数据预处理Args:input: dataset = pandas.DataFrame对象"""# 以中位数来替代if "Age" in features:raw_dataset["Age"].fillna(raw_dataset["Age"].median(), inplace=True)raw_dataset["Fare"].fillna(raw_dataset["Fare"].median(), inplace=True)# Embarked也可以为最多值raw_dataset["Embarked"].fillna(raw_dataset["Fare"].median(), inplace=True)dataset = raw_dataset[features]dataset = dataset.copy()# 由于 embarked=登船港口, Port of Embarkation	C = Cherbourg, Q = Queenstown, S = SouthamptonEmbarked = dataset.pop("Embarked")# 根据 embarked 列来写入新的 3 个列dataset["S"] = (Embarked == "S") * 1.0dataset["C"] = (Embarked == "C") * 1.0dataset["Q"] = (Embarked == "Q") * 1.0# 根据 sex 列来写入新的 2 个列Sex = dataset.pop("Sex")dataset["Male"] = (Sex == "male") * 1.0dataset["Female"] = (Sex == "female") * 1.0dataset_withoutna = datasetif train:labels = dataset_withoutna["Survived"]dataset_withoutna.pop("PassengerId")dataset_withoutna.pop("Survived")# 标准化,归一化输入train_stats = dataset_withoutna.describe()train_stats = train_stats.transpose()normed_train_data = (dataset_withoutna - train_stats["mean"]) / train_stats["std"]return np.array(normed_train_data), np.array(labels)else:labels = dataset.pop("PassengerId")dataset.fillna(0, inplace=True)test_stats = dataset.describe()test_stats = test_stats.transpose()normed_test_data = (dataset - test_stats["mean"]) / test_stats["std"]return np.array(normed_test_data), np.array(labels)if __name__ == "__main__":# 1. 导入数据path_url = r"kaggle\titanic\train.csv"test_path_url = r"kaggle\titanic\test.csv"raw_train_dataset, raw_test_dataset = load_data(path_url, test_path_url)# 2. 数据预处理features_test = ["PassengerId","Pclass","Sex","Fare","Age","SibSp","Parch","Embarked",]features_train = features_test + ["Survived"]# 获取预处理后的训练集和标签train_dataset, labels = preprocess(raw_train_dataset, features_train)

3.训练 train 

  • 采用Sequential构建网络模型
    通过Kera 提供的网络容器Sequential生成网络模型,模型的深度为4层,分别有64、32、16和1个的神经单元,前三层使用relu激活函数并应用𝐿2正则化。

  • compile,fit,evaluate和predict
    在Sequential搭建好网络结构后,compile,fit,evaluate和predict是常用的keras训练和验证的方法。

    首先是compile,即模型装配。用于设置网络使用的优化器对象、损失函数类型,评价指标等设定。这里我们选定Adam优化器,binary_crossentropy损失函数,设置测量指标为准确率。

    接下来是fit,即模型训练。模型装配完成后,即可通过 fit()函数送入待训练的数据集和验证用的数据集,这一步称为模型训练。此处可选定epochs数量,并设定从训练集中切分出的验证集的比例。

    evaluate,即模型测试,测试在训练所有样本上的性能表现。

    predict,即模型预测,可使用训练好的模型去预测新样本的标签信息。predict方法将在下一节预测输出中使用。

    evaluate和predict的区别是,evaluate是用已有的真实结果进行检测,而predict是单纯输出预测结果。

# 训练
def train(train_dataset, labels, epochs=120, batch_size=512, is_plot=False):model = tf.keras.Sequential([# 1. input_shape = 输入形状# ND 张量的形状:. 最常见的情况是带有 shape 的 2D 输入。# (batch_size, ..., input_dim)(batch_size, input_dim)# train_dataset.shape[1] = 4# 现在模型就会以尺寸为 (*, 4) 的数组作为输入,# 2. kernel_regularizer = 应用于kernel权重矩阵的正则化函数。# 𝐿2正则化:范数的平方tf.keras.layers.Dense(64,activation="relu",input_shape=(train_dataset.shape[1],),kernel_regularizer=regularizers.l2(0.001),),tf.keras.layers.Dense(32, activation="relu", kernel_regularizer=regularizers.l2(0.001)),tf.keras.layers.Dense(16, activation="relu"),tf.keras.layers.Dense(1, name="prediction"),])# 在 Keras 中提供了 compile()和 fit()函数方便实现逻辑。# compile:首先通过compile 函数指定网络使用的优化器对象、损失函数类型,评价指标等设定,这一步称为装配# fit: 模型装配完成后,即可通过 fit()函数送入待训练的数据集和验证用的数据集model.compile(# Adam的学习律默认为0.001optimizer=tf.keras.optimizers.Adam(),# BinaryCrossentropy:计算真实标签和预测标签之间的交叉熵损失loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),# 设置测量指标为准确率metrics=["accuracy"],)# early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)# 模型装配完成后,即可通过 fit()函数送入待训练的数据集和验证用的数据集,这一步称为模型训练# fit函数的参数:# x = Input data# y = Target data# verbose = 'auto'、0、1 或 2 详细模式。# 0 = 静音,1 = 进度条,2 = 每个 epoch 一行。'auto' 在大多数情况下默认为 1history = model.fit(x=train_dataset,y=labels,epochs=epochs,validation_split=0.01,batch_size=batch_size,verbose="auto",# callbacks=[early_stop])# 显示训练情况if is_plot:plot_history(history)# 可以通过 Model.evaluate(db)循环测试完 db 数据集上所有样本loss, accuracy = model.evaluate(train_dataset, labels, verbose=2)print("Accuracy:", accuracy)return modelif __name__ == "__main__":# 1. 导入数据path_url = r"kaggle\titanic\train.csv"test_path_url = r"kaggle\titanic\test.csv"raw_train_dataset, raw_test_dataset = load_data(path_url, test_path_url)# 2. 数据预处理features_test = ["PassengerId","Pclass","Sex","Fare","Age","SibSp","Parch","Embarked",]features_train = features_test + ["Survived"]# 获取预处理后的训练集和标签train_dataset, labels = preprocess(raw_train_dataset, features_train)# 3. 训练model = train(train_dataset, labels, epochs=256, is_plot=True)

4.真实预测并输出csv predict_out

  • 使用predict进行预测
  • 将大于0.5的值设置为1,反之设置为0
  • 输出提交的csv文件
    参考提交示例(gender_submission.csv)文件,第一列为PassengerId,第二列为预测结果,并使用to_csv方法输出csv文件。
# 真实预测并输出csv
def predict_out(model, csv_path):# model.evaluate 和 model.predict 的区别# https://blog.csdn.net/DoReAGON/article/details/88552348# 两者差异:# 1# 输入输出不同# model.evaluate输入数据(data)和金标准(label),然后将预测结果与金标准相比较,得到两者误差并输出.# model.predict输入数据(data),输出预测结果# 2# 是否需要真实标签(金标准)# model.evaluate需要,因为需要比较预测结果与真实标签的误差# model.predict不需要,只是单纯输出预测结果,全程不需要金标准的参与.predictions = model.predict(test_dataset)# 通过astype()方法可以强制转换数据的类型。predictions = (tf.sigmoid(predictions).numpy().flatten() > 0.5).astype(int)print(predictions.shape, predictions)# 输出结果output = pd.DataFrame({"PassengerId": passenger_id, "Survived": predictions})# index=False 不保存行索引,index=是否保留行索引output.to_csv(csv_path, index=False)print(f"您的提交文件保存成功! 位置在{csv_path}")return predictionsif __name__ == "__main__":# 1. 导入数据path_url = r"kaggle\titanic\train.csv"test_path_url = r"kaggle\titanic\test.csv"raw_train_dataset, raw_test_dataset = load_data(path_url, test_path_url)# 2. 数据预处理features_test = ["PassengerId","Pclass","Sex","Fare","Age","SibSp","Parch","Embarked",]features_train = features_test + ["Survived"]# 获取预处理后的训练集和标签train_dataset, labels = preprocess(raw_train_dataset, features_train)# 3. 训练model = train(train_dataset, labels, epochs=256, is_plot=True)# 获取预处理后的测试集和序号test_dataset, passenger_id = preprocess(raw_test_dataset, features_test, train=False)csv_path = f"./submission_{get_time()}.csv"prediction = predict_out(model, csv_path)

 5.其他工具方法

  • 显示训练情况 plot_history

    使用model.fit的返回值History.history即训练数据记录,读取accuracy和val_accuracy来绘制准确率曲线。

    # 显示训练情况
    def plot_history(history):# histoty的返回值# A History object. Its History.history attribute is a record of training loss values and metrics values at successive epochs, as well as validation loss values and validation metrics values (if applicable).# 一个历史对象。它的 History.history 属性是连续 epoch 的训练损失值和指标值的记录,# 以及验证损失值和验证指标值(如果适用)。# history.history:loss、accuracy、val loss、val accuracyhist = pd.DataFrame(history.history)hist["epoch"] = history.epochplt.figure()plt.xlabel("Num of Epochs")plt.ylabel("value")# plt.plot(hist["epoch"], hist["loss"], label="Loss")# plt.plot(hist["epoch"], hist["val_loss"], label="val_loss")plt.plot(hist["epoch"], hist["accuracy"], label="accuracy")plt.plot(hist["epoch"], hist["val_accuracy"], label="val_accuracy")plt.ylim([0, 1])plt.legend()plt.show()
    
  • 获取年月日时分秒 get_time

    在输出预测结果csv的时候附上时间,方便区别。

# 获取年月日时分秒
def get_time():return datetime.datetime.now().strftime("%Y%m%d%H%M")
  • 主函数 main
# #### Titanic - Machine Learning from Disasterif __name__ == "__main__":# 1. 导入数据path_url = r"kaggle\titanic\train.csv"test_path_url = r"kaggle\titanic\test.csv"raw_train_dataset, raw_test_dataset = load_data(path_url, test_path_url)# 2. 数据预处理features_test = ["PassengerId","Pclass","Sex","Fare","Age","SibSp","Parch","Embarked",]features_train = features_test + ["Survived"]# 获取预处理后的训练集和标签train_dataset, labels = preprocess(raw_train_dataset, features_train)# 3. 训练model = train(train_dataset, labels, epochs=256, is_plot=True)# 获取预处理后的测试集和序号test_dataset, passenger_id = preprocess(raw_test_dataset, features_test, train=False)csv_path = f"./submission_{get_time()}.csv"prediction = predict_out(model, csv_path)# 验证与原始数据raw_test_dataset长度是否一致if prediction.shape[0] == raw_test_dataset.shape[0]:print(f"--预测长度={prediction.shape[0]}校验通过 √")else:print(f"--预测长度与raw_test_dataset长度不一致 ×,prediction.shape={prediction.shape},raw_test_dataset.shape={raw_test_dataset.shape}")

四、总结

调整validation_split的比例为0.01后,最后最高分数为0.78947,排名前8%。基本达到学习完成Titanic泰坦尼克号幸存预测比赛的程度。

比赛中比较重要的是需要对数据进行仔细分析,可以利用Excel和pandas等工具分析数据,提取出有用的数据列,并对缺失值进行填补。

五、参考资料

1. 机器学习项目实战(一): Kaggle Titanic机器学习项目实战(一): Kaggle Titanichttps://wangxin1248.github.io/machinelearning/2018/10/titanic.html

2. Kaggle入门系列(三)Titanic初试身手

https://zhuanlan.zhihu.com/p/29086614http://xn--kaggletitanic-130u340bnvcfd1366ar7zf4cucvpmny2bdk67bza

3. Titanic Tutorial

Titanic Tutorialhttps://www.kaggle.com/code/alexisbcook/titanic-tutorial

4. 用TensorFlow完成Kaggle Titanic竞赛

用TensorFlow完成Kaggle Titanic竞赛https://www.jianshu.com/p/f5a7487e6ff2

六、代码原文

titanic_predict.py

import pandas as pd
import numpy as np
import tensorflow as tf
from tensorflow.python.keras import activations
import matplotlib.pyplot as plt
from tensorflow.keras import regularizers
import datetime# 显示训练情况
def plot_history(history):# histoty的返回值# 一个历史对象。它的 History.history 属性是连续 epoch 的训练损失值和指标值的记录,以及验证损失值和验证指标值(如果适用)。# history.history:loss、accuracy、val loss、val accuracyhist = pd.DataFrame(history.history)hist["epoch"] = history.epochplt.figure()plt.xlabel("Num of Epochs")plt.ylabel("value")plt.plot(hist["epoch"], hist["accuracy"], label="accuracy")plt.plot(hist["epoch"], hist["val_accuracy"], label="val_accuracy")plt.ylim([0, 1])plt.legend()plt.show()# 导入数据
def load_data(path_url, test_path_url):raw_train_dataset = pd.read_csv(path_url)raw_test_dataset = pd.read_csv(test_path_url)return raw_train_dataset, raw_test_dataset# 数据预处理的基础方法
def preprocess(raw_dataset, features, train=True):"""用于predict的数据预处理Args:input: dataset = pandas.DataFrame对象"""# 以中位数来替代if "Age" in features:raw_dataset["Age"].fillna(raw_dataset["Age"].median(), inplace=True)raw_dataset["Fare"].fillna(raw_dataset["Fare"].median(), inplace=True)raw_dataset["Embarked"].fillna(raw_dataset["Fare"].median(), inplace=True)dataset = raw_dataset[features]dataset = dataset.copy()# 由于 embarked=登船港口, Port of Embarkation	C = Cherbourg, Q = Queenstown, S = SouthamptonEmbarked = dataset.pop("Embarked")# 根据 embarked 列来写入新的 3 个列dataset["S"] = (Embarked == "S") * 1.0dataset["C"] = (Embarked == "C") * 1.0dataset["Q"] = (Embarked == "Q") * 1.0# 根据 sex 列来写入新的 2 个列Sex = dataset.pop("Sex")dataset["Male"] = (Sex == "male") * 1.0dataset["Female"] = (Sex == "female") * 1.0dataset_withoutna = datasetif train:labels = dataset_withoutna["Survived"]dataset_withoutna.pop("PassengerId")dataset_withoutna.pop("Survived")# 标准化train_stats = dataset_withoutna.describe()train_stats = train_stats.transpose()normed_train_data = (dataset_withoutna - train_stats["mean"]) / train_stats["std"]return np.array(normed_train_data), np.array(labels)else:labels = dataset.pop("PassengerId")dataset.fillna(0, inplace=True)test_stats = dataset.describe()test_stats = test_stats.transpose()normed_test_data = (dataset - test_stats["mean"]) / test_stats["std"]return np.array(normed_test_data), np.array(labels)# 训练
def train(train_dataset, labels, epochs=120, batch_size=512, is_plot=False):model = tf.keras.Sequential([# 1. input_shape = 输入形状# ND 张量的形状:. 最常见的情况是带有 shape 的 2D 输入。# 2. kernel_regularizer = 应用于kernel权重矩阵的正则化函数。# 𝐿2正则化:范数的平方tf.keras.layers.Dense(64,activation="relu",input_shape=(train_dataset.shape[1],),kernel_regularizer=regularizers.l2(0.001),),tf.keras.layers.Dense(32, activation="relu", kernel_regularizer=regularizers.l2(0.001)),tf.keras.layers.Dense(16, activation="relu"),tf.keras.layers.Dense(1, name="prediction"),])# 在 Keras 中提供了 compile()和 fit()函数方便实现逻辑。# compile:首先通过compile 函数指定网络使用的优化器对象、损失函数类型,评价指标等设定,这一步称为装配# fit: 模型装配完成后,即可通过 fit()函数送入待训练的数据集和验证用的数据集model.compile(# Adam的学习律默认为0.001optimizer=tf.keras.optimizers.Adam(),# BinaryCrossentropy:计算真实标签和预测标签之间的交叉熵损失loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),# 设置测量指标为准确率metrics=["accuracy"],)# 模型装配完成后,即可通过 fit()函数送入待训练的数据集和验证用的数据集,这一步称为模型训练# verbose = 'auto'、0、1 或 2 详细模式。# 0 = 静音,1 = 进度条,2 = 每个 epoch 一行。'auto' 在大多数情况下默认为 1history = model.fit(x=train_dataset,y=labels,epochs=epochs,validation_split=0.3,batch_size=batch_size,verbose="auto",# callbacks=[early_stop])# 显示训练情况if is_plot:plot_history(history)# 可以通过 Model.evaluate(db)循环测试完 db 数据集上所有样本loss, accuracy = model.evaluate(train_dataset, labels, verbose=2)print("Accuracy:", accuracy)return model# 真实预测并输出csv
def predict_out(model, csv_path):# model.evaluate 和 model.predict 的区别# https://blog.csdn.net/DoReAGON/article/details/88552348# 两者差异:# 1# 输入输出不同# model.evaluate输入数据(data)和金标准(label),然后将预测结果与金标准相比较,得到两者误差并输出.# model.predict输入数据(data),输出预测结果# 2# 是否需要真实标签(金标准)# model.evaluate需要,因为需要比较预测结果与真实标签的误差# model.predict不需要,只是单纯输出预测结果,全程不需要金标准的参与.predictions = model.predict(test_dataset)# 通过astype()方法可以强制转换数据的类型。predictions = (tf.sigmoid(predictions).numpy().flatten() > 0.5).astype(int)print(predictions.shape, predictions)# 输出结果output = pd.DataFrame({"PassengerId": passenger_id, "Survived": predictions})# index=False 不保存行索引,index=是否保留行索引output.to_csv(csv_path, index=False)print(f"您的提交文件保存成功! 位置在{csv_path}")return predictions# 获取年月日时分秒
def get_time():return datetime.datetime.now().strftime("%Y%m%d%H%M")# #### Titanic - Machine Learning from Disasterif __name__ == "__main__":# 1. 导入数据path_url = r"kaggle\titanic\train.csv"test_path_url = r"kaggle\titanic\test.csv"raw_train_dataset, raw_test_dataset = load_data(path_url, test_path_url)# 2. 数据预处理features_test = ["PassengerId","Pclass","Sex","Fare","Age","SibSp","Parch","Embarked",]features_train = features_test + ["Survived"]# 获取预处理后的训练集和标签train_dataset, labels = preprocess(raw_train_dataset, features_train)# 3. 训练model = train(train_dataset, labels, epochs=256, is_plot=True)# 获取预处理后的测试集和序号test_dataset, passenger_id = preprocess(raw_test_dataset, features_test, train=False)# 输出预测结果csv_path = f"./submission_{get_time()}.csv"prediction = predict_out(model, csv_path)# 验证与原始数据raw_test_dataset长度是否一致if prediction.shape[0] == raw_test_dataset.shape[0]:print(f"--预测长度={prediction.shape[0]}校验通过 √")else:print(f"--预测长度与raw_test_dataset长度不一致 ×,prediction.shape={prediction.shape},raw_test_dataset.shape={raw_test_dataset.shape}")

依赖库 requirements.txt

pandas==1.4.3
numpy==1.20.3
matplotlib==3.4.3
tensorflow-cpu==2.9.1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/12127.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

霍金

伟大的物理学家去世了,他的事迹将永远停留在这一页。请让我问您沉痛哀悼。。。

热重分析(TG)基本原理与实战分析

TG的基本原理? 热重分析(thermogravimetric analysis, TG或者TGA)是指在程序控温条件下测量待测样品的质量与温度变化关系的一种热分析技术,可以用来研究材料的热稳定性和组分。 注:之所以定义为质量的变化而非重量变化是基于在磁场作用下&a…

思维模型 霍金斯能量场(能量层级)

本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知 1 模型故事 霍金斯能量场-组织 科学家发现,在任何一个组织里面,霍金斯能量场 这个规律也是完全适用的。少数高层级的人的意识能量可以抵消绝大多数人的意识负能量。…

Kaggle系列(一):Spaceship Titanic(太空飞船泰坦尼克)

开坑开坑Kaggle系列(通过kaggel练习机器学习与数据分析能力) 2022年3月9日,这是第一个版本的太空泰坦尼克任务 我的Github中发布了本任务包含的相应源码与思路分析讲解,欢迎来⭐。 本文主要记录如何对数据进行分析的过程。 开…

霍金-现代最伟大的物理学家之一、20世纪享有国际盛誉的伟人之一

据 BBC 等多家外媒报道,知名物理学家史蒂芬霍金已经去世,享年 76 岁。 霍金的家人在周三凌晨发表声明,证实他已在剑桥的家中死亡。霍金的孩子 Lucy , Robert 和Tim 在一份声明中说:“我们亲爱的父亲今天去世了!我们感到…

刚刚,霍金的一个预言成真了,这次吓坏不少人!

1 刚刚去世的霍金,对于人工智能,曾有这样的预言: 如果有人设计计算机病毒,那么就有人设计不断自我完善、直到最终超越人类的人工智能,其结果将是一种新的生命形式。 你可能并不是一个讨厌蚂蚁的人,但也会无…

霍金与硅谷:你不知道的故事

硅谷Live / 实地探访 / 热点探秘 / 深度探讨 “我的名字是斯蒂芬霍金,在过去的50年中,我到全世界进行演讲和学习,给大众普及关于时间和空间的奥秘,还有那掌握全宇宙的法则。” Welcome to my world。 2012年,6月19日晚…

细数霍金关于AI的五大预言,向伟大的科学巨人致敬

今天,我们这个时代最著名的物理学家之一斯蒂芬霍金去世了,享年76岁。这位英国科学家以其在黑洞和相对论方面的开创性著作而闻名,并撰写了几部畅销书。 2017年,霍金宣布将他在1966年,也就是24岁时撰写的博士论文上传到剑…

霍金去世 但他对人工智能的预言时刻提醒着人类!【附霍金一生大事记】

▼ 点击上方蓝字 关注网易智能 为你解读AI领域大公司大事件,新观点新应用 【网易智能讯 3月14日消息】据英国天空新闻等多家媒体报道,世界著名物理学家史蒂芬霍金去世,享年76岁。 让我们回顾下霍金的一生: 1968年 霍金与乔治艾利斯…

《时代》专访ChatGPT之父:人工智能影响经济还需要很多年

划重点: ① OpenAI的首席执行官山姆奥特曼(Sam Altman)曾表示,如果使用不当,人工智能会让所有人都消亡。 ② 在倡导人工智能可能性的同时,奥特曼敦促政策制定者制定规则和通过监管来减轻人工智能可能带来的…

知识就是力量,图谱路在何方 | ChatGPT冲击下,招商银行如何“抢救”知识图谱?

“知识就是力量”我们耳熟能详,但培根的这句话其实还有后半句“更重要的是运用知识的技能”。对于人工智能来说,知识图谱就是其如何对知识进行运用的技能体现。在金融领域,如何运用这一技能更好地理解客户需求,提高业务效率和客户…

可以免费使用的ChatGPT-4,微软开放Bing Chat功能,供用户体验

微软Bing取消了 Bing Chat的等待名单,现在用户可以通过使用 Edge 浏览器并使用微软帐户登录就可以使用Bing Chat了。 ▐ 入口 打开Bing首页,用户点击 "聊天/Chat" 即可进入Bing Chat界面。目前Bing Chat提供了三种响应风格(更有创…

ChatGPT vs. Bing vs. Bard

随着 2022 年 ChatGTP 的推出,人工智能聊天机器人的世界突然走上了一条新道路。如今,密切关注 AI 的人都知道,不同公司推出了几款产品。从谷歌拥有自己的 Bard AI,到微软发布新的 Bing AI Chat,再到 OpenAI 发布GPT-4。…

嗯?大火的ChatGPT和new bing都离不开它?

概述:本文是对 WhalePaper 向量检索领域第一次直播活动内容的文字版,会对向量检索这个 ChatGPT 和 new bing 都离不开的技术进行介绍,结合了 ChatGPT 以及 new bing 的应用场景进行讲解,相信被标题骗进来的你还真能有所收获的&…

微软再次挑战谷歌搜索市场,Bing已经深度整合OpenAI,你会用 Bing 的 ChatGPT 做些什么?

输入特定关键字并努力寻找所需信息的日子已经一去不复返了 输入特定关键字并努力寻找所需信息的日子已经一去不复返了。Microsoft Bing 即将发布其 ChatGPT 集成,这将允许用户以自然的方式提问并获得量身定制的搜索体验,这将重塑我们探索互联网的方式。 我预览了 Bing 的 C…

New bing带着chatGPT来啦

话不多说,随着chatGPT的到来,GPT-4的升级,AI时代真的要来啦。现在微软浏览器 bing 已经接入最新的GPT版本,而且是免费,重要的事情说三遍,免费使用GPT,免费使用GPT,免费使用GPT&#…

ChatHub | 卧龙和凤雏!同时对话ChatGPT和新Bing!~

1写在前面 最近忙的不行,根本没有时间打开电脑。💻 随着GPT-4和new bing的发布,真的可以说是AI的iphone时刻到来了。🤩 现在也是越来越多的网站接入了AI,以后人人都可以是程序员了。😚 New Bing在GPT-4的加…

chatGPT 商业会员系统开源

前言 本项目是一个商用版服务平台,基于Java语言实现服务端功能,前端使用React框架,底层使用官方的ChatGPT API。用户可以通过一键部署方便地使用本平台。除了支持chat对话模型外,还支持openai官方所有api,包括余额查询…

2023最新ChatGPT商用源码+支持ai绘画(Midjourney)+GPT4.0+Dall-E2绘画+支持Mind思维导图生成

目录 1.系统演示 1.1 GPT模型提问 1.3 Midjourney专业绘画 1.4 mind思维导图 1.5 AI绘画广场 2.SparkAi商用系统介绍 2.1前台演示站点 2.2 SparkAi源码下载 2.3 源码部署教程 3.开始搭建 3.1基础env环境配置 4.环境安装 4.1 Node版本 4.2 安装pnpm模块 4.3 安装…

2023最新ChatGPT商用网站源码V4.8.4+支持MJ绘画+GPT4.0

2023最新ChatGPT商用网站源码V4.8.4支持MJ绘画GPT4.0 可同时、单独、开启或者关闭GPT3.5和GPT4.0两种ChatGPT提问模型,用户可切换,次数套餐也是分开的。支持手机电脑不同布局页面自适应。 一、程序 下载:ChatGPT商业运营网站系统支持GTP4支持…