当前位置:首页>python>AI最前沿|2026年Python+AI学习路线完整指南:从零基础到实战专家

AI最前沿|2026年Python+AI学习路线完整指南:从零基础到实战专家

  • 2026-03-22 14:52:53
AI最前沿|2026年Python+AI学习路线完整指南:从零基础到实战专家
   

🚀 AI FRONTIER

   

2026年Python+AI学习路线完整指南:从零基础到实战专家

   

2026年03月07日 18时 · 来源:CSDN

           
Python已成为人工智能领域最主流的编程语言,根据Stack Overflow 2024年开发者调查,Python在AI/ML领域的使用率超过85%。

Python已成为人工智能领域最主流的编程语言,根据Stack Overflow 2024年开发者调查,Python在AI/ML领域的使用率超过85%。

了解AI各领域的占比,帮助你更好地规划学习重点:

下图展示了从零基础到AI专家的完整学习路线:

🟢 阶段0:Python基础(2-4周)


学习目标:掌握Python核心语法和编程思维

list, dict, tuple, set

# 传统方式squares=[]foriinrange(10):squares.append(i**2)# Pythonic方式squares=[i**2foriinrange(10)]# 带条件的列表推导式even_squares=[i**2foriinrange(10)ifi%2==0]print(even_squares)# [0, 4, 16, 36, 64]

# 字典推导式word_count="hello world hello python"counts={word:word_count.split().count(word)forwordinset(word_count.split())}print(counts)# {'hello': 2, 'world': 1, 'python': 1}# defaultdict使用fromcollectionsimportdefaultdict counts=defaultdict(int)forwordinword_count.split():counts[word]+=1

# 正确的文件操作方式withopen('data.txt','r',encoding='utf-8')asf:content=f.read()# 自动关闭文件,即使发生异常# 自定义上下文管理器fromcontextlibimportcontextmanager@contextmanagerdeftimer():importtime start=time.time()yieldprint(f"耗时:{time.time()-start:.2f}秒")withtimer():sum(range(1000000))

🔵 阶段1:数据科学基础(4-6周)


学习目标:掌握数据处理、分析和可视化技能

importnumpyasnp# 数组创建arr=np.array([[1,2,3],[4,5,6]])zeros=np.zeros((3,4))random=np.random.randn(3,3)# 数组运算print(arr*2)# 元素级乘法print(arr @ arr.T)# 矩阵乘法print(np.dot(arr,arr.T))# 矩阵乘法# 广播机制a=np.array([[1,2,3],[4,5,6]])# (2, 3)b=np.array([10,20,30])# (3,)print(a+b)# b广播到(2, 3)# 实用函数print(np.mean(arr,axis=1))# 按行求均值print(np.argmax(arr,axis=1))# 按行找最大值索引

importpandasaspd# 创建DataFramedata={'name':['张三','李四','王五','赵六'],'age':[25,30,35,28],'city':['北京','上海','深圳','杭州'],'salary':[15000,20000,25000,18000]}df=pd.DataFrame(data)# 数据筛选high_salary=df[df['salary']>18000]beijing=df[df['city']=='北京']# 数据分组city_stats=df.groupby('city').agg({'salary':['mean','max','count']})# 数据排序df_sorted=df.sort_values('salary',ascending=False)# 数据合并df2=pd.DataFrame({'name':['张三','李四'],'department':['技术','产品']})merged=pd.merge(df,df2,on='name',how='left')print(city_stats)

importmatplotlib.pyplotaspltimportseabornassns# 设置中文字体plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False# 创建子图fig,axes=plt.subplots(2,2,figsize=(12,10))# 1. 柱状图axes[0,0].bar(df['name'],df['salary'])axes[0,0].set_title('薪资对比')axes[0,0].set_xlabel('姓名')axes[0,0].set_ylabel('薪资')# 2. 散点图axes[0,1].scatter(df['age'],df['salary'],s=100,alpha=0.6)axes[0,1].set_title('年龄与薪资关系')axes[0,1].set_xlabel('年龄')axes[0,1].set_ylabel('薪资')# 3. 饼图(城市分布)city_counts=df['city'].value_counts()axes[1,0].pie(city_counts,labels=city_counts.index,autopct='%1.1f%%')axes[1,0].set_title('城市分布')# 4. 箱线图axes[1,1].boxplot(df['salary'])axes[1,1].set_title('薪资分布')plt.tight_layout()plt.savefig('visualization.png',dpi=300)plt.show()

🟡 阶段2:机器学习(6-8周)


学习目标:理解ML原理,掌握Scikit-learn实战

importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_splitfromsklearn.linear_modelimportLinearRegressionfromsklearn.metricsimportmean_squared_error,r2_scorefromsklearn.preprocessingimportStandardScaler# 生成模拟数据np.random.seed(42)n_samples=1000# 特征:面积、房间数、房龄X=np.random.randn(n_samples,3)X[:,0]=X[:,0]*50+100# 面积:50-150㎡X[:,1]=np.abs(X[:,1])*2+1# 房间数:1-5间X[:,2]=np.abs(X[:,2])*10+1# 房龄:1-30年# 真实价格 = 面积*1000 + 房间数*50000 - 房龄*2000 + 噪声y=(X[:,0]*1000+X[:,1]*50000-X[:,2]*2000+np.random.randn(n_samples)*50000)# 划分数据集X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)# 特征标准化scaler=StandardScaler()X_train_scaled=scaler.fit_transform(X_train)X_test_scaled=scaler.transform(X_test)# 训练模型model=LinearRegression()model.fit(X_train_scaled,y_train)# 预测y_pred=model.predict(X_test_scaled)# 评估mse=mean_squared_error(y_test,y_pred)r2=r2_score(y_test,y_pred)print(f"均方误差 MSE:{mse:.2f}")print(f"决定系数 R²:{r2:.4f}")print(f"系数:{model.coef_}")print(f"截距:{model.intercept_:.2f}")# 可视化预测结果plt.figure(figsize=(10,6))plt.scatter(y_test,y_pred,alpha=0.5)plt.plot([y.min(),y.max()],[y.min(),y.max()],'r--',lw=2)plt.xlabel('真实价格')plt.ylabel('预测价格')plt.title('房价预测:真实值 vs 预测值')plt.grid(True,alpha=0.3)plt.show()

fromsklearn.datasetsimportmake_classificationfromsklearn.model_selectionimportcross_val_scorefromsklearn.linear_modelimportLogisticRegressionfromsklearn.svmimportSVCfromsklearn.treeimportDecisionTreeClassifierfromsklearn.ensembleimportRandomForestClassifierfromsklearn.naive_bayesimportGaussianNBfromsklearn.neighborsimportKNeighborsClassifier# 生成分类数据X,y=make_classification(n_samples=1000,n_features=20,n_informative=15,n_redundant=5,n_classes=3,random_state=42)# 定义模型models={'逻辑回归':LogisticRegression(max_iter=1000),'SVM':SVC(),'决策树':DecisionTreeClassifier(),'随机森林':RandomForestClassifier(n_estimators=100),'朴素贝叶斯':GaussianNB(),'KNN':KNeighborsClassifier()}# 交叉验证评估results={}forname,modelinmodels.items():scores=cross_val_score(model,X,y,cv=5,scoring='accuracy')results[name]={'mean':scores.mean(),'std':scores.std()}print(f"{name}:{scores.mean():.4f}(+/-{scores.std():.4f})")# 可视化对比plt.figure(figsize=(12,6))names=list(results.keys())means=[results[name]['mean']fornameinnames]stds=[results[name]['std']fornameinnames]plt.bar(names,means,yerr=stds,alpha=0.8,capsize=5)plt.ylabel('准确率')plt.title('不同分类算法性能对比(5折交叉验证)')plt.ylim(0.7,1.0)plt.grid(axis='y',alpha=0.3)plt.xticks(rotation=15)plt.show()

fromsklearn.clusterimportKMeans,DBSCANfromsklearn.datasetsimportmake_blobsfromsklearn.metricsimportsilhouette_score# 生成聚类数据X,_=make_blobs(n_samples=500,centers=4,cluster_std=1.5,random_state=42)# K-Means聚类(需要指定簇数)kmeans=KMeans(n_clusters=4,random_state=42,n_init=10)kmeans_labels=kmeans.fit_predict(X)kmeans_silhouette=silhouette_score(X,kmeans_labels)# DBSCAN聚类(自动发现簇数)dbscan=DBSCAN(eps=1.5,min_samples=10)dbscan_labels=dbscan.fit_predict(X)n_clusters=len(set(dbscan_labels))-(1if-1indbscan_labelselse0)print(f"K-Means: 发现4个簇, 轮廓系数={kmeans_silhouette:.3f}")print(f"DBSCAN: 发现{n_clusters}个簇")# 肘部法则确定最佳K值inertias=[]K_range=range(2,11)forKinK_range:kmeans=KMeans(n_clusters=K,random_state=42,n_init=10)kmeans.fit(X)inertias.append(kmeans.inertia_)plt.figure(figsize=(12,5))# 肘部图plt.subplot(1,2,1)plt.plot(K_range,inertias,'bo-')plt.xlabel('K值')plt.ylabel('惯性(Inertia)')plt.title('肘部法则确定最佳K值')plt.grid(True,alpha=0.3)# 聚类结果可视化plt.subplot(1,2,2)plt.scatter(X[:,0],X[:,1],c=kmeans_labels,cmap='viridis',alpha=0.6)plt.scatter(kmeans.cluster_centers_[:,0],kmeans.cluster_centers_[:,1],c='red',s=200,marker='X',label='质心')plt.title('K-Means聚类结果')plt.legend()plt.tight_layout()plt.show()

🟠 阶段3:深度学习(8-12周)


学习目标:掌握PyTorch,理解深度学习原理

importtorchimporttorch.nnasnnimporttorch.optimasoptimfromtorch.utils.dataimportDataLoader,TensorDatasetimportmatplotlib.pyplotasplt# 检查CUDA可用性device=torch.device('cuda'iftorch.cuda.is_available()else'cpu')print(f"使用设备:{device}")# 定义神经网络classNeuralNetwork(nn.Module):def__init__(self,input_size,hidden_size,num_classes):super(NeuralNetwork,self).__init__()self.layer1=nn.Linear(input_size,hidden_size)self.relu=nn.ReLU()self.layer2=nn.Linear(hidden_size,hidden_size//2)self.layer3=nn.Linear(hidden_size//2,num_classes)self.dropout=nn.Dropout(0.2)defforward(self,x):out=self.layer1(x)out=self.relu(out)out=self.dropout(out)out=self.layer2(out)out=self.relu(out)out=self.dropout(out)out=self.layer3(out)returnout# 超参数input_size=784# MNIST图像28x28hidden_size=256num_classes=10num_epochs=10batch_size=100learning_rate=0.001# 初始化模型model=NeuralNetwork(input_size,hidden_size,num_classes).to(device)# 损失函数和优化器criterion=nn.CrossEntropyLoss()optimizer=optim.Adam(model.parameters(),lr=learning_rate)# 模拟数据X_train=torch.randn(1000,input_size).to(device)y_train=torch.randint(0,num_classes,(1000,)).to(device)train_dataset=TensorDataset(X_train,y_train)train_loader=DataLoader(train_dataset,batch_size=batch_size,shuffle=True)# 训练循环train_losses=[]forepochinrange(num_epochs):model.train()epoch_loss=0fori,(images,labels)inenumerate(train_loader):# 前向传播outputs=model(images)loss=criterion(outputs,labels)# 反向传播和优化optimizer.zero_grad()loss.backward()optimizer.step()epoch_loss+=loss.item()avg_loss=epoch_loss/len(train_loader)train_losses.append(avg_loss)print(f'Epoch [{epoch+1}/{num_epochs}], Loss:{avg_loss:.4f}')# 绘制训练曲线plt.figure(figsize=(10,5))plt.plot(train_losses,marker='o')plt.xlabel('Epoch')plt.ylabel('Loss')plt.title('训练损失曲线')plt.grid(True,alpha=0.3)plt.show()

importtorchimporttorch.nnasnnimporttorch.nn.functionalasFclassCNN(nn.Module):def__init__(self,num_classes=10):super(CNN,self).__init__()# 第一个卷积块self.conv1=nn.Conv2d(1,32,kernel_size=3,padding=1)self.bn1=nn.BatchNorm2d(32)self.conv2=nn.Conv2d(32,32,kernel_size=3,padding=1)self.bn2=nn.BatchNorm2d(32)self.pool1=nn.MaxPool2d(2,2)# 第二个卷积块self.conv3=nn.Conv2d(32,64,kernel_size=3,padding=1)self.bn3=nn.BatchNorm2d(64)self.conv4=nn.Conv2d(64,64,kernel_size=3,padding=1)self.bn4=nn.BatchNorm2d(64)self.pool2=nn.MaxPool2d(2,2)# 全连接层self.fc1=nn.Linear(64*7*7,256)self.dropout=nn.Dropout(0.5)self.fc2=nn.Linear(256,num_classes)defforward(self,x):# 第一个卷积块x=F.relu(self.bn1(self.conv1(x)))x=F.relu(self.bn2(self.conv2(x)))x=self.pool1(x)# 第二个卷积块x=F.relu(self.bn3(self.conv3(x)))x=F.relu(self.bn4(self.conv4(x)))x=self.pool2(x)# 展平x=x.view(-1,64*7*7)# 全连接层x=F.relu(self.fc1(x))x=self.dropout(x)x=self.fc2(x)returnx# 模型结构可视化model=CNN()print(model)# 统计参数量total_params=sum(p.numel()forpinmodel.parameters())trainable_params=sum(p.numel()forpinmodel.parameters()ifp.requires_grad)print(f"总参数量:{total_params:,}")print(f"可训练参数量:{trainable_params:,}")

3. Transformer注意力机制

importtorchimporttorch.nnasnnimportmathclassMultiHeadAttention(nn.Module):def__init__(self,d_model,num_heads):super(MultiHeadAttention,self).__init__()assertd_model%num_heads==0self.d_model=d_model self.num_heads=num_heads self.d_k=d_model//num_heads self.W_q=nn.Linear(d_model,d_model)self.W_k=nn.Linear(d_model,d_model)self.W_v=nn.Linear(d_model,d_model)self.W_o=nn.Linear(d_model,d_model)defscaled_dot_product_attention(self,Q,K,V,mask=None):scores=torch.matmul(Q,K.transpose(-2,-1))/math.sqrt(self.d_k)ifmaskisnotNone:scores=scores.masked_fill(mask==0,-1e9)attention_weights=F.softmax(scores,dim=-1)output=torch.matmul(attention_weights,V)returnoutput,attention_weightsdefforward(self,query,key,value,mask=None):batch_size=query.size(0)# 线性变换并分割成多头Q=self.W_q(query).view(batch_size,-1,self.num_heads,self.d_k).transpose(1,2)K=self.W_k(key).view(batch_size,-1,self.num_heads,self.d_k).transpose(1,2)V=self.W_v(value).view(batch_size,-1,self.num_heads,self.d_k).transpose(1,2)# 计算注意力x,attention_weights=self.scaled_dot_product_attention(Q,K,V,mask)# 拼接多头x=x.transpose(1,2).contiguous().view(batch_size,-1,self.d_model)# 最终线性变换output=self.W_o(x)returnoutput,attention_weights# 使用示例d_model=512num_heads=8seq_length=10batch_size=4# 创建模拟输入x=torch.randn(batch_size,seq_length,d_model)# 创建注意力层mha=MultiHeadAttention(d_model,num_heads)output,attention=mha(x,x,x)print(f"输入形状:{x.shape}")print(f"输出形状:{output.shape}")print(f"注意力权重形状:{attention.shape}")

🔴 阶段4:NLP与LLM应用(6-8周)


学习目标:掌握现代NLP技术,熟练使用大语言模型

2023GPT-4/Llama2

fromtransformersimportpipeline,AutoTokenizer,AutoModelForSequenceClassificationimporttorch# 情感分析sentiment_pipeline=pipeline("sentiment-analysis",model="distilbert-base-uncased-finetuned-sst-2-english")texts=["I love this product! It's amazing!","This is the worst experience ever.","It's okay, nothing special."]results=sentiment_pipeline(texts)fortext,resultinzip(texts,results):print(f"文本:{text}")print(f"情感:{result['label']}, 置信度:{result['score']:.4f}\n")# 文本分类tokenizer=AutoTokenizer.from_pretrained("bert-base-chinese")model=AutoModelForSequenceClassification.from_pretrained("bert-base-chinese",num_labels=3# 正面、中性、负面)# 编码文本text="这家餐厅的菜品味道很好,服务也很周到!"inputs=tokenizer(text,return_tensors="pt",padding=True,truncation=True)# 预测withtorch.no_grad():outputs=model(**inputs)predictions=torch.nn.functional.softmax(outputs.logits,dim=-1)predicted_class=torch.argmax(predictions).item()labels=["负面","中性","正面"]print(f"预测类别:{labels[predicted_class]}")print(f"置信度:{predictions[0][predicted_class]:.4f}")

fromlangchain.document_loadersimportTextLoaderfromlangchain.text_splitterimportRecursiveCharacterTextSplitterfromlangchain.embeddingsimportHuggingFaceEmbeddingsfromlangchain.vectorstoresimportFAISSfromlangchain.chainsimportRetrievalQAfromlangchain.llmsimportOpenAIfromlangchain.promptsimportPromptTemplate# 1. 加载文档loader=TextLoader('knowledge_base.txt')documents=loader.load()# 2. 文本切分text_splitter=RecursiveCharacterTextSplitter(chunk_size=500,chunk_overlap=50,length_function=len)splits=text_splitter.split_documents(documents)# 3. 创建向量存储embeddings=HuggingFaceEmbeddings(model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")vectorstore=FAISS.from_documents(splits,embeddings)# 4. 创建检索器retriever=vectorstore.as_retriever(search_type="similarity",search_kwargs={"k":3})# 5. 自定义提示模板prompt_template="""使用以下上下文信息来回答问题。如果不知道答案,就说不知道,不要编造答案。 上下文信息: {context} 问题: {question} 答案:"""PROMPT=PromptTemplate(template=prompt_template,input_variables=["context","question"])# 6. 创建QA链qa_chain=RetrievalQA.from_chain_type(llm=OpenAI(temperature=0),chain_type="stuff",retriever=retriever,return_source_documents=True,chain_type_kwargs={"prompt":PROMPT})# 7. 查询query="如何办理社保卡?"result=qa_chain({"query":query})print(f"问题:{query}")print(f"答案:{result['result']}")print("\n参考文档:")fordocinresult['source_documents']:print(f"-{doc.page_content[:100]}...")

3. 简单的ChatGLM对话示例

fromtransformersimportAutoTokenizer,AutoModelimporttorch# 加载模型tokenizer=AutoTokenizer.from_pretrained("THUDM/chatglm3-6b",trust_remote_code=True)model=AutoModel.from_pretrained("THUDM/chatglm3-6b",trust_remote_code=True).half().cuda()model=model.eval()# 对话历史history=[]response="你好!我是智能助手小政,有什么可以帮助您的吗?"print(f"助手:{response}")whileTrue:user_input=input("\n用户: ")ifuser_input.lower()in['退出','exit','quit']:break# 添加政务系统人设system_prompt="你是一个政务服务大厅的智能引导员,名叫'小政'。"response,history=model.chat(tokenizer,f"{system_prompt}\n用户:{user_input}",history=history,max_length=2048,temperature=0.7)print(f"小政:{response}")history.append((user_input,response))

🟣 阶段5:实战项目(持续进行)

端到端项目示例:智能文档问答系统


# project_structure.txt""" 智能文档问答系统 │ ├── data/ # 数据目录 │ ├── documents/ # 原始文档 │ └── vectorstore/ # 向量存储 │ ├── src/ # 源代码 │ ├── config.py # 配置文件 │ ├── loader.py # 文档加载 │ ├── embeddings.py # 向量化 │ ├── retriever.py # 检索器 │ ├── generator.py # 生成器 │ └── api.py # API接口 │ ├── app.py # 主应用 ├── requirements.txt # 依赖 └── README.md # 说明文档 """# config.pyimportosfromdataclassesimportdataclassfromtypingimportOptional@dataclassclassConfig:# API密钥OPENAI_API_KEY:str=os.getenv("OPENAI_API_KEY","")# 模型配置EMBEDDING_MODEL:str="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2"LLM_MODEL:str="gpt-3.5-turbo"LLM_TEMPERATURE:float=0.7LLM_MAX_TOKENS:int=1000# 向量存储配置CHUNK_SIZE:int=500CHUNK_OVERLAP:int=50VECTOR_DB_PATH:str="data/vectorstore"# 检索配置TOP_K:int=3SIMILARITY_THRESHOLD:float=0.7# API配置API_HOST:str="0.0.0.0"API_PORT:int=8000# loader.pyfromtypingimportListfromlangchain.document_loadersimport(TextLoader,PyPDFLoader,DirectoryLoader)fromlangchain.text_splitterimportRecursiveCharacterTextSplitterfromlangchain.schemaimportDocumentclassDocumentLoader:def__init__(self,chunk_size:int=500,chunk_overlap:int=50):self.text_splitter=RecursiveCharacterTextSplitter(chunk_size=chunk_size,chunk_overlap=chunk_overlap,length_function=len,separators=["\n\n","\n","。","!","?",".","!","?"," ",""])defload_text(self,file_path:str)->List[Document]:"""加载文本文件"""loader=TextLoader(file_path,encoding='utf-8')documents=loader.load()returnself.text_splitter.split_documents(documents)defload_pdf(self,file_path:str)->List[Document]:"""加载PDF文件"""loader=PyPDFLoader(file_path)documents=loader.load()returnself.text_splitter.split_documents(documents)defload_directory(self,directory:str,glob:str="**/*.txt")->List[Document]:"""加载目录下的所有文档"""loader=DirectoryLoader(directory,glob=glob)documents=loader.load()returnself.text_splitter.split_documents(documents)# api.pyfromfastapiimportFastAPI,HTTPExceptionfrompydanticimportBaseModelfromtypingimportList,Optionalimportuvicorn app=FastAPI(title="智能文档问答系统",version="1.0.0")classQueryRequest(BaseModel):question:strtop_k:Optional[int]=3classQueryResponse(BaseModel):answer:strsources:List[str]confidence:float@app.get("/")asyncdefroot():return{"message":"智能文档问答系统API","version":"1.0.0","endpoints":{"/query":"POST - 问答接口","/health":"GET - 健康检查"}}@app.get("/health")asyncdefhealth_check():return{"status":"healthy"}@app.post("/query",response_model=QueryResponse)asyncdefquery(request:QueryRequest):try:# 这里调用实际的问答逻辑# result = qa_chain({"query": request.question})returnQueryResponse(answer="这是示例回答",sources=["来源1","来源2"],confidence=0.95)exceptExceptionase:raiseHTTPException(status_code=500,detail=str(e))if__name__=="__main__":uvicorn.run("api:app",host="0.0.0.0",port=8000,reload=True)

""" 项目:预测客户是否会购买理财产品 数据集:模拟银行客户数据 """importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassnsfromsklearn.model_selectionimporttrain_test_split,cross_val_score,GridSearchCVfromsklearn.preprocessingimportStandardScaler,LabelEncoderfromsklearn.ensembleimportRandomForestClassifier,GradientBoostingClassifierfromsklearn.linear_modelimportLogisticRegressionfromsklearn.metricsimportclassification_report,confusion_matrix,roc_auc_score,roc_curvefromsklearn.pipelineimportPipelineimportwarnings warnings.filterwarnings('ignore')# 设置中文字体plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False# ========== 1. 数据生成 ==========np.random.seed(42)n_samples=5000data={'年龄':np.random.randint(18,70,n_samples),'收入':np.random.randint(3000,50000,n_samples),'存款':np.random.randint(0,1000000,n_samples),'债务':np.random.randint(0,500000,n_samples),'信用评分':np.random.randint(300,850,n_samples),'已购买产品数':np.random.randint(0,10,n_samples),'上次购买天数':np.random.randint(30,3650,n_samples),'职业':np.random.choice(['学生','上班族','个体户','退休','自由职业'],n_samples),'婚姻状况':np.random.choice(['单身','已婚','离异'],n_samples),'学历':np.random.choice(['高中','本科','硕士','博士'],n_samples),}df=pd.DataFrame(data)# 生成目标变量(基于特征组合)defcalc_purchase_prob(row):score=0if25<=row['年龄']<=55:score+=20ifrow['收入']>15000:score+=20ifrow['存款']>100000:score+=20ifrow['信用评分']>650:score+=15ifrow['职业']in['上班族','个体户']:score+=15returnmin(score+np.random.randint(-10,10),100)/100df['购买概率']=df.apply(calc_purchase_prob,axis=1)df['是否购买']=(df['购买概率']>0.5).astype(int)# ========== 2. 数据探索 ==========print("="*50)print("数据集基本信息")print("="*50)print(df.info())print("\n目标变量分布:")print(df['是否购买'].value_counts())print(f"购买率:{df['是否购买'].mean():.2%}")# 可视化fig,axes=plt.subplots(2,3,figsize=(15,10))# 年龄分布axes[0,0].hist(df[df['是否购买']==0]['年龄'],bins=30,alpha=0.5,label='未购买')axes[0,0].hist(df[df['是否购买']==1]['年龄'],bins=30,alpha=0.5,label='购买')axes[0,0].set_xlabel('年龄')axes[0,0].set_ylabel('人数')axes[0,0].legend()axes[0,0].set_title('年龄与购买关系')# 收入分布axes[0,1].hist(df[df['是否购买']==0]['收入'],bins=30,alpha=0.5,label='未购买')axes[0,1].hist(df[df['是否购买']==1]['收入'],bins=30,alpha=0.5,label='购买')axes[0,1].set_xlabel('收入')axes[0,1].legend()axes[0,1].set_title('收入与购买关系')# 信用评分分布axes[0,2].hist(df[df['是否购买']==0]['信用评分'],bins=30,alpha=0.5,label='未购买')axes[0,2].hist(df[df['是否购买']==1]['信用评分'],bins=30,alpha=0.5,label='购买')axes[0,2].set_xlabel('信用评分')axes[0,2].legend()axes[0,2].set_title('信用评分与购买关系')# 职业分布career_purchase=df.groupby('职业')['是否购买'].mean()axes[1,0].bar(career_purchase.index,career_purchase.values)axes[1,0].set_ylabel('购买率')axes[1,0].set_title('不同职业的购买率')# 学历分布edu_purchase=df.groupby('学历')['是否购买'].mean()axes[1,1].bar(edu_purchase.index,edu_purchase.values)axes[1,1].set_ylabel('购买率')axes[1,1].set_title('不同学历的购买率')# 相关性热图numeric_cols=['年龄','收入','存款','债务','信用评分','已购买产品数','上次购买天数','是否购买']correlation=df[numeric_cols].corr()sns.heatmap(correlation,annot=True,fmt='.2f',cmap='coolwarm',center=0,ax=axes[1,2])axes[1,2].set_title('特征相关性热图')plt.tight_layout()plt.savefig('data_exploration.png',dpi=300)plt.show()# ========== 3. 特征工程 ==========# 编码分类变量le=LabelEncoder()df['职业编码']=le.fit_transform(df['职业'])df['婚姻编码']=le.fit_transform(df['婚姻状况'])df['学历编码']=le.fit_transform(df['学历'])# 创建新特征df['债务收入比']=df['债务']/(df['收入']*12+1)df['存款收入比']=df['存款']/(df['收入']*12+1)df['净资产']=df['存款']-df['债务']# 选择特征feature_cols=['年龄','收入','存款','债务','信用评分','已购买产品数','上次购买天数','职业编码','婚姻编码','学历编码','债务收入比','存款收入比','净资产']X=df[feature_cols]y=df['是否购买']# 划分数据集X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42,stratify=y)# ========== 4. 模型训练与评估 ==========# 定义模型models={'逻辑回归':Pipeline([('scaler',StandardScaler()),('model',LogisticRegression(max_iter=1000,random_state=42))]),'随机森林':RandomForestClassifier(n_estimators=100,random_state=42),'梯度提升':GradientBoostingClassifier(random_state=42)}# 训练和评估results={}forname,modelinmodels.items():print(f"\n训练{name}...")model.fit(X_train,y_train)# 预测y_pred=model.predict(X_test)y_pred_proba=model.predict_proba(X_test)[:,1]# 评估results[name]={'model':model,'predictions':y_pred,'probabilities':y_pred_proba,'accuracy':model.score(X_test,y_test),'roc_auc':roc_auc_score(y_test,y_pred_proba)}print(f"准确率:{results[name]['accuracy']:.4f}")print(f"AUC:{results[name]['roc_auc']:.4f}")# ========== 5. 最佳模型分析 ==========best_model_name=max(results,key=lambdax:results[x]['roc_auc'])best_model=results[best_model_name]['model']print(f"\n最佳模型:{best_model_name}")print("="*50)print("\n分类报告:")print(classification_report(y_test,results[best_model_name]['predictions']))# 混淆矩阵cm=confusion_matrix(y_test,results[best_model_name]['predictions'])plt.figure(figsize=(8,6))sns.heatmap(cm,annot=True,fmt='d',cmap='Blues')plt.xlabel('预测标签')plt.ylabel('真实标签')plt.title(f'{best_model_name}- 混淆矩阵')plt.show()# ROC曲线plt.figure(figsize=(10,6))forname,resultinresults.items():fpr,tpr,_=roc_curve(y_test,result['probabilities'])plt.plot(fpr,tpr,label=f"{name}(AUC ={result['roc_auc']:.3f})")plt.plot([0,1],[0,1],'k--',label='随机分类器')plt.xlabel('假正率')plt.ylabel('真正率')plt.title('ROC曲线对比')plt.legend()plt.grid(alpha=0.3)plt.show()# 特征重要性(树模型)ifhasattr(best_model,'feature_importances_'):feature_importance=pd.DataFrame({'feature':feature_cols,'importance':best_model.feature_importances_}).sort_values('importance',ascending=False)plt.figure(figsize=(10,6))plt.barh(feature_importance['feature'],feature_importance['importance'])plt.xlabel('重要性')plt.title('特征重要性')plt.tight_layout()plt.show()print("\n特征重要性排序:")print(feature_importance)print("\n"+"="*50)print("项目完成!")print("="*50)

┌─────────────────────────────────────────────────────┐ │ Python编程 │ │ - 《Python编程:从入门到实践》 │ │ - 《流畅的Python》 │ │ │ │ 数据科学 │ │ - 《利用Python进行数据分析》 │ │ - 《Python数据科学手册》 │ │ │ │ 机器学习 │ │ - 《机器学习》(周志华) │ │ - 《统计学习方法》(李航) │ │ - 《西瓜书》 │ │ │ │ 深度学习 │ │ - 《深度学习》(花书) │ │ - 《动手学深度学习》 │ │ │ │ NLP与LLM │ │ - 《自然语言处理综论》 │ │ - 《注意力机制》 │ └─────────────────────────────────────────────────────┘

官方文档:Python官方文档NumPy文档Pandas文档PyTorch文档Transformers文档

学习平台:Kaggle- 数据科学竞赛Papers with Code- 论文与代码Hugging Face- 预训练模型GitHub- 开源项目

Papers with Code- 论文与代码

Hugging Face- 预训练模型

Q1: 没有编程基础,能学Python+AI吗?


答: 完全可以!Python是公认最适合初学者的语言。建议学习路径:

Q2: 数学基础不好,能学AI吗?


答: 可以,但需要补充必要的数学知识:

建议:边做项目边补数学,遇到不懂的再学。

关键:项目经验 > 理论知识,一定要做项目!

云平台:Google Colab(免费GPU)Kaggle Notebooks(免费)AutoDL(便宜)

Google Colab(免费GPU)

Kaggle Notebooks(免费)

优化技巧:# 减小batch sizebatch_size=16# 而不是64# 使用混合精度训练fromtorch.cuda.ampimportautocast,GradScaler scaler=GradScaler()# 梯度累积accumulation_steps=4

# 减小batch sizebatch_size=16# 而不是64# 使用混合精度训练fromtorch.cuda.ampimportautocast,GradScaler scaler=GradScaler()# 梯度累积accumulation_steps=4

模型压缩:量化(Quantization)剪枝(Pruning)知识蒸馏(Distillation)

量化(Quantization)

知识蒸馏(Distillation)

关注前沿:arXiv.org(论文预印本)Hugging Face(新模型)Twitter/X(大佬动态)

arXiv.org(论文预印本)

Hugging Face(新模型)

实践导向:每月做一个小项目参与Kaggle竞赛贡献开源项目

社区交流:加入技术Discord/微信群参加线下meetup写技术博客

循序渐进:不要急于求成,按阶段学习

项目驱动:理论结合实践,多做项目

持续学习:AI技术更新快,保持学习热情

社区参与:加入社区,与他人交流学习

定期复盘:总结经验,形成自己的知识体系

“学习Python+AI是一场马拉松,不是短跑。重要的是保持持续学习和实践,不要害怕犯错。每一个错误都是学习的机会。”

“学习Python+AI是一场马拉松,不是短跑。重要的是保持持续学习和实践,不要害怕犯错。每一个错误都是学习的机会。”

祝你学习顺利,早日成为AI工程师!🚀

# 1. 安装Anaconda(推荐)# 下载:https://www.anaconda.com/# 2. 创建虚拟环境conda create-nai_envpython=3.10# 3. 激活环境conda activate ai_env# 4. 安装核心库pipinstallnumpy pandas matplotlib seaborn pipinstallscikit-learn xgboost lightgbm pipinstalltorch torchvision torchaudio pipinstalltransformers langchain pipinstalljupyter lab# 5. 启动Jupyterjupyter lab

# Jupyter相关jupyter notebook# 启动notebookjupyter lab# 启动labjupyter nbconvert# 转换notebook格式# Git相关gitclone# 克隆仓库gitadd.# 添加更改gitcommit-m"msg"# 提交gitpush# 推送# Conda相关condaenvlist# 列出环境condainstall# 安装包condaenvremove-n# 删除环境

能用Matplotlib绘制图表

能使用Scikit-learn建模

理解CNN/RNN/Transformer

熟练使用Transformers

✍️ 坚持用清晰易懂的图解+可落地的代码,让每个知识点都简单直观!💡座右铭:“道路是曲折的,前途是光明的!”

✍️ 坚持用清晰易懂的图解+可落地的代码,让每个知识点都简单直观!

💡座右铭:“道路是曲折的,前途是光明的!”

💡座右铭:“道路是曲折的,前途是光明的!”

   
   

━━━━━━━━━━━━━━━

   

📌 来源:CSDN

   

⚠️ 本文内容转载自第三方平台,版权归原作者所有

   

内容由闪闪整理,仅供学习参考,侵删请联系

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-28 06:41:29 HTTP/2.0 GET : https://f.mffb.com.cn/a/479172.html
  2. 运行时间 : 0.239877s [ 吞吐率:4.17req/s ] 内存消耗:4,493.88kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=31583e368d9fbcb7afb543876b979481
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000886s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001805s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000766s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000859s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001658s ]
  6. SELECT * FROM `set` [ RunTime:0.002304s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001958s ]
  8. SELECT * FROM `article` WHERE `id` = 479172 LIMIT 1 [ RunTime:0.006543s ]
  9. UPDATE `article` SET `lasttime` = 1774651289 WHERE `id` = 479172 [ RunTime:0.002978s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000676s ]
  11. SELECT * FROM `article` WHERE `id` < 479172 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001385s ]
  12. SELECT * FROM `article` WHERE `id` > 479172 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001672s ]
  13. SELECT * FROM `article` WHERE `id` < 479172 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.012823s ]
  14. SELECT * FROM `article` WHERE `id` < 479172 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.015809s ]
  15. SELECT * FROM `article` WHERE `id` < 479172 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004646s ]
0.244110s