人工智能数据处理的小知识

来源:互联网 发布:国债逆回购 知乎 编辑:程序博客网 时间:2024/05/22 06:25

1.打开文件

  • 读文件
pd.read_csv(path)pd.read_excel(path)pd.read_txt(path)#图片plt.imread(path)#mat文件from scipy.io import loadmatdata1=loadmat(path)#二进制方式读取with open(file_path,mode='rb') as file:        data = pickle.load(file,encoding='ISO-8859-1')
  • 写文件
df.to_excel(path)
  • 连接数据库
#导入模块import sqlite3 as sqlite3# 跟数据库建立连接connection = sqlite3.connect('dbpath')# 读取数据库文件data = pd.read_sql("SQL语句",connection)#操作数据库connection.execute(SQL语句)# 写入数据库data.to_sql('dbpath',connection)

2.分割样本数据,生成训练数据和测试数据

#用于切割训练数据和样本数据from sklearn.model_selection import train_test_splitX_train,x_test,Y_train,y_true = train_test_split(data,target,test_size=0.2)

3.将DataFrame中字符串列转为数字

#定义函数def transform(items):    unique_list = datas[items].unique()    def change_string(item):        return np.argwhere(item==unique_list)[0][0]    datas[items]=datas[items].map(change_string)#遍历列,对非数字列使用函数for i in datas.columns[datas.dtypes=='object']:    transform(i)

4.归一化处理

for i in datas.loc[:,col]:    datas[i]/= datas[i].sum()

5.过滤异常数据

samples = datas[(np.abs(datas-datas.mean(axis=0))<= 2*(datas.std(axis=0))).all(axis=1)]

6.循环训练模型

# 使用机器学习模型进行预测sklearn_model_dic = {    'KNN':KNeighborsRegressor(),    'Ridge':Ridge(),    'Lasso':Lasso(),    'Linear':LinearRegression()}# 分别使用各种机器学习模型训练并预测数据,把预测结果保存到一个字典里,用每个算法的名称做键,保留各个算法的预测值predict_y_dic = {}for key,model in sklearn_model_dic.items():    model.fit(X_train,y_train)    preidct_y_ = model.predict(x_test)    predict_y_dic[key] = preidct_y_

7.循环展示图片

plt.figure(figsize=(12,18))for i in range(100):    plt.subplot(10,10,i+1)    plt.imshow(x_test[i].reshape(8,8))    plt.axis('off')    title = 'KNN:'+ str(knn_y_[i]) + '\nLOGIC:' + str(logistic_y_[i]) + '\nTrue:' + str(y_true[i])    plt.title(title)

8.网格化数据处理

# 获取x\y轴的取值范围xmin,xmax = train[:,0].min()-0.5 , train[:,0].max()+0.5ymin,ymax = train[:,1].min()-0.5 , train[:,1].max()+0.5# 生成x、y两个列表做网格化处理x = np.arange(xmin,xmax,0.1)y = np.arange(ymin,ymax,0.1)xx,yy = np.meshgrid(x,y)x_test = np.c_[xx.ravel(),yy.ravel()]

9.给算法打分

# 测量线性回归模型的分数from sklearn.metrics import r2_scorer2_score(y_true,y_pre)#测量算法得分knn.score(x_test,y_true)

10.数据降维处理

PCA 用于数据降维,减少运算时间,避免过拟合
n_components参数设置需要保留特征的数量,如果是小数,则表示保留特征的比例

  • 导入模块
#主成分分析(principal components analysis),主要用于数据降维的from sklearn.decomposition import PCA
  • 创建pca对象
pca = PCA(n_components=150,whiten=True)
  • 使用pca训练数据
pca.fit(X_train,y_train)
  • 对数据进行降维处理
X_train_pca = pca.transform(X_train)x_test_pca = pca.transform(x_test)

结果将由原来的784个特征变为了150个特征

11.使用GridSearchCV来调参

C = [1,3,5,7,9]gamma = [0.0001,0.0005,0.001,0.005,0.01,0.05]#创建GridSearchCV对象,estimator参数是需要进行调参处理的机器学习模型clf = GridSearchCV(svc,param_grid={'C':C,'gamma':gamma})#开始调参(理解数据,确定哪种参数更合适)clf.fit(X_train_pca,y_train)#best_params_来查看选中的最优参数解clf.best_params_#预测结果,查看评分y_pre = clf.predict(x_test_pca)clf_score = clf.score(x_test_pca,y_true)clf_score
原创粉丝点击